def backup_config(self): """ create a backup of encfs config file into local config folder so in cases of the config file get deleted or corrupt user can restore it from there """ cfg = self.get_config_file() if not os.path.isfile(cfg): logger.warning('No encfs config in %s. Skip backup of config file.' %cfg, self) return backup_folder = self.config.get_encfsconfig_backup_folder(self.profile_id) tools.make_dirs(backup_folder) old_backups = os.listdir(backup_folder) old_backups.sort(reverse = True) if len(old_backups): last_backup = os.path.join(backup_folder, old_backups[0]) #don't create a new backup if config hasn't changed if tools._get_md5sum_from_path(cfg) == \ tools._get_md5sum_from_path(last_backup): logger.debug('Encfs config did not change. Skip backup', self) return new_backup_file = '.'.join((os.path.basename(cfg), datetime.now().strftime('%Y%m%d%H%M') )) new_backup = os.path.join(backup_folder, new_backup_file) logger.debug('Create backup of encfs config %s to %s' %(cfg, new_backup), self) shutil.copy2(cfg, new_backup)
def backup_config(self): """ create a backup of encfs config file into local config folder so in cases of the config file get deleted or corrupt user can restore it from there """ cfg = self.get_config_file() if not os.path.isfile(cfg): logger.warning( 'No encfs config in %s. Skip backup of config file.' % cfg, self) return backup_folder = self.config.get_encfsconfig_backup_folder( self.profile_id) tools.make_dirs(backup_folder) old_backups = os.listdir(backup_folder) old_backups.sort(reverse=True) if len(old_backups): last_backup = os.path.join(backup_folder, old_backups[0]) #don't create a new backup if config hasn't changed if tools._get_md5sum_from_path(cfg) == \ tools._get_md5sum_from_path(last_backup): logger.debug('Encfs config did not change. Skip backup', self) return new_backup_file = '.'.join( (os.path.basename(cfg), datetime.now().strftime('%Y%m%d%H%M'))) new_backup = os.path.join(backup_folder, new_backup_file) logger.debug( 'Create backup of encfs config %s to %s' % (cfg, new_backup), self) shutil.copy2(cfg, new_backup)
def test_get_md5sum_from_path(self): with NamedTemporaryFile() as f: f.write(b'foo') f.flush() self.assertEqual(tools._get_md5sum_from_path(f.name), 'acbd18db4cc2f85cedef654fccc4a4d8')