string
- Ext4::infosDir() const
+ Btrfs::snapshotDir(unsigned int num) const
{
- return snapper->subvolumeDir() + "/.snapshots-info";
+ return snapper->subvolumeDir() + "/.snapshots/" + decString(num) + "/snapshot";
}
- string
- Btrfs::snapshotDir(unsigned int num) const
+ void
+ Btrfs::createFilesystemSnapshot(unsigned int num) const
{
- return snapper->subvolumeDir() + "/.snapshots/" + decString(num) + "/snapshot";
+ SystemCmd cmd(BTRFSBIN " subvolume snapshot " + snapper->subvolumeDir() + " " + snapshotDir(num));
+ if (cmd.retcode() != 0)
+ throw CreateSnapshotFailedException();
}
- string
- Ext4::snapshotDir(unsigned int num) const
+ void
+ Btrfs::deleteFilesystemSnapshot(unsigned int num) const
{
- return snapper->subvolumeDir() + "@" + decString(num);
+ SystemCmd cmd(BTRFSBIN " subvolume delete " + snapshotDir(num));
+ if (cmd.retcode() != 0)
+ throw DeleteSnapshotFailedException();
}
void
- Btrfs::createFilesystemSnapshot(unsigned int num) const
+ Btrfs::mountFilesystemSnapshot(unsigned int num) const
{
- SystemCmd cmd(BTRFSBIN " subvolume snapshot " + snapper->subvolumeDir() + " " + snapshotDir(num));
- if (cmd.retcode() != 0)
- throw CreateSnapshotFailedException();
}
void
- Ext4::createFilesystemSnapshot(unsigned int num) const
+ Btrfs::umountFilesystemSnapshot(unsigned int num) const
{
- SystemCmd cmd1(TOUCHBIN " " "/mnt/.snapshots/" + decString(num));
- if (cmd1.retcode() != 0)
- throw CreateSnapshotFailedException();
+ }
- SystemCmd cmd2(CHSNAPBIN " +S " "/mnt/.snapshots/" + decString(num));
- if (cmd2.retcode() != 0)
- throw CreateSnapshotFailedException();
+
+ bool
+ Btrfs::checkFilesystemSnapshot(unsigned int num) const
+ {
+ return checkDir(snapshotDir(num));
}
- void
- Btrfs::deleteFilesystemSnapshot(unsigned int num) const
+ string
+ Ext4::infosDir() const
{
- SystemCmd cmd(BTRFSBIN " subvolume delete " + snapshotDir(num));
- if (cmd.retcode() != 0)
- throw DeleteSnapshotFailedException();
+ return snapper->subvolumeDir() + "/.snapshots-info";
}
- void
- Ext4::deleteFilesystemSnapshot(unsigned int num) const
+ string
+ Ext4::snapshotDir(unsigned int num) const
{
- // TODO
+ return snapper->subvolumeDir() + "@" + decString(num);
}
- void
- Btrfs::mountFilesystemSnapshot(unsigned int num) const
+ string
+ Ext4::snapshotFile(unsigned int num) const
{
+ return snapper->subvolumeDir() + "/.snapshots/" + decString(num);
}
void
- Ext4::mountFilesystemSnapshot(unsigned int num) const
+ Ext4::createFilesystemSnapshot(unsigned int num) const
{
- SystemCmd cmd1(CHSNAPBIN " +n " "/mnt/.snapshots/" + decString(num));
+ SystemCmd cmd1(TOUCHBIN " " + snapshotFile(num));
if (cmd1.retcode() != 0)
throw CreateSnapshotFailedException();
- mkdir(("/mnt@" + decString(num)).c_str(), 0666);
-
- SystemCmd cmd2(MOUNTBIN " -t ext4 -r -o loop,noload " "/mnt/.snapshots/" + decString(num) + " "
- "/mnt@" + decString(num));
+ SystemCmd cmd2(CHSNAPBIN " +S " + snapshotFile(num));
if (cmd2.retcode() != 0)
throw CreateSnapshotFailedException();
}
void
- Btrfs::umountFilesystemSnapshot(unsigned int num) const
+ Ext4::deleteFilesystemSnapshot(unsigned int num) const
{
+ // TODO
}
void
- Ext4::umountFilesystemSnapshot(unsigned int num) const
+ Ext4::mountFilesystemSnapshot(unsigned int num) const
{
- // TODO
+ SystemCmd cmd1(CHSNAPBIN " +n " + snapshotFile(num));
+ if (cmd1.retcode() != 0)
+ throw CreateSnapshotFailedException();
+
+ mkdir(snapshotDir(num).c_str(), 0755);
+
+ SystemCmd cmd2(MOUNTBIN " -t ext4 -r -o loop,noload " + snapshotFile(num) +
+ " " + snapshotDir(num));
+ if (cmd2.retcode() != 0)
+ throw CreateSnapshotFailedException();
}
- bool
- Btrfs::checkFilesystemSnapshot(unsigned int num) const
+ void
+ Ext4::umountFilesystemSnapshot(unsigned int num) const
{
- return checkDir(snapshotDir(num));
+ // TODO
}