示例#1
0
文件: __init__.py 项目: russellb/snap
    def restore(self):
        '''
        perform the restore operation, restoring packages and files recorded
        '''
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Restoring Snapshot")

        self.check_permission()

        # temp directory used to extract tarball
        construct_dir = tempfile.mkdtemp()
        FileManager.make_dir(construct_dir)

        SnapFile(snapfile=config.options.snapfile,
                 snapdirectory=construct_dir,
                 encryption_password=config.options.encryption_password).extract()

        backends = self.load_backends()
        configured_targets = backends.keys()
        for target in SnapshotTarget.BACKENDS: # load from SnapShotTarget to preserve order
          if target in configured_targets:
            backend = backends[target]
            backend.restore(construct_dir)

        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Restore completed")

        FileManager.rm_dir(construct_dir)
示例#2
0
文件: __init__.py 项目: russellb/snap
    def backup(self):
        '''
        peform the backup operation, recording installed packages and copying new/modified files
        '''
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Creating snapshot")

        self.check_permission()

        # temp directory used to construct tarball 
        construct_dir = tempfile.mkdtemp()
        FileManager.make_dir(construct_dir)

        backends = self.load_backends()
        configured_targets = backends.keys()
        for target in SnapshotTarget.BACKENDS: # load from SnapshotTarget to preserve order
          if target in configured_targets:
            backend = backends[target]
            includes = config.options.target_includes[target]
            excludes = config.options.target_excludes[target]
            backend.backup(construct_dir, include=includes, exclude=excludes)

        SnapFile(snapfile=config.options.snapfile,
                 snapdirectory=construct_dir,
                 encryption_password=config.options.encryption_password).compress()
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Snapshot completed")

        FileManager.rm_dir(construct_dir)
示例#3
0
    def backup(self):
        '''
        peform the backup operation, recording installed packages and copying new/modified files
        '''
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Creating snapshot")

        self.check_permission()

        # temp directory used to construct tarball
        construct_dir = tempfile.mkdtemp()
        FileManager.make_dir(construct_dir)

        backends = self.load_backends()
        configured_targets = backends.keys()
        for target in SnapshotTarget.BACKENDS:  # load from SnapshotTarget to preserve order
            if target in configured_targets:
                backend = backends[target]
                includes = config.options.target_includes[target]
                excludes = config.options.target_excludes[target]
                backend.backup(construct_dir,
                               include=includes,
                               exclude=excludes)

        SnapFile(
            snapfile=config.options.snapfile,
            snapdirectory=construct_dir,
            encryption_password=config.options.encryption_password).compress()
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Snapshot completed")

        FileManager.rm_dir(construct_dir)
示例#4
0
    def restore(self):
        '''
        perform the restore operation, restoring packages and files recorded
        '''
        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Restoring Snapshot")

        self.check_permission()

        # temp directory used to extract tarball
        construct_dir = tempfile.mkdtemp()
        FileManager.make_dir(construct_dir)

        SnapFile(
            snapfile=config.options.snapfile,
            snapdirectory=construct_dir,
            encryption_password=config.options.encryption_password).extract()

        backends = self.load_backends()
        configured_targets = backends.keys()
        for target in SnapshotTarget.BACKENDS:  # load from SnapShotTarget to preserve order
            if target in configured_targets:
                backend = backends[target]
                backend.restore(construct_dir)

        if config.options.log_level_at_least('normal'):
            callback.snapcallback.message("Restore completed")

        FileManager.rm_dir(construct_dir)
示例#5
0
    def testMakeDirAndExists(self):
        temp_dir_path = os.path.join(os.path.dirname(__file__), "data", "temp-dir")

        FileManager.make_dir(temp_dir_path)
        self.assertTrue(os.path.exists(temp_dir_path))
        self.assertTrue(os.path.isdir(temp_dir_path))
        self.assertTrue(FileManager.exists(temp_dir_path))
        
        os.removedirs(temp_dir_path)
        self.assertFalse(os.path.exists(temp_dir_path))
        self.assertFalse(FileManager.exists(temp_dir_path))
示例#6
0
    def testMakeDirAndExists(self):
        temp_dir_path = os.path.join(os.path.dirname(__file__), "data",
                                     "temp-dir")

        FileManager.make_dir(temp_dir_path)
        self.assertTrue(os.path.exists(temp_dir_path))
        self.assertTrue(os.path.isdir(temp_dir_path))
        self.assertTrue(FileManager.exists(temp_dir_path))

        os.removedirs(temp_dir_path)
        self.assertFalse(os.path.exists(temp_dir_path))
        self.assertFalse(FileManager.exists(temp_dir_path))