]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
- work on ext4 code
authorArvin Schnell <aschnell@suse.de>
Fri, 29 Jul 2011 15:44:49 +0000 (17:44 +0200)
committerArvin Schnell <aschnell@suse.de>
Fri, 29 Jul 2011 15:44:49 +0000 (17:44 +0200)
snapper/Filesystem.cc
snapper/Filesystem.h

index d74fcda0c94735229c9144f67270cc1cc8f0947c..431b08a64beb42b5d8c61880afb0105e62eeec0c 100644 (file)
@@ -41,103 +41,110 @@ namespace snapper
 
 
     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
     }
 
 
index 9afd9690a8c4fa628f9f363784879cb57a437e24..92031ff0b01b3e6ec1f375f2ba221d4907cb5335 100644 (file)
@@ -94,6 +94,7 @@ namespace snapper
 
        virtual string infosDir() const;
        virtual string snapshotDir(unsigned int num) const;
+       virtual string snapshotFile(unsigned int num) const;
 
        virtual void createFilesystemSnapshot(unsigned int num) const;
        virtual void deleteFilesystemSnapshot(unsigned int num) const;