Ejemplo n.º 1
0
 def get_backups(self):
     backup_names = self.listdir(self.storage_directory)
     backups = []
     for backup_name in backup_names:
         backup_dir = utils.path_join(self.storage_directory, backup_name)
         timestamps = self.listdir(backup_dir)
         for timestamp in timestamps:
             increments = self.listdir(utils.path_join(backup_dir, timestamp))
             backups.extend(storage.Backup.parse_backups(increments))
     return backups
Ejemplo n.º 2
0
 def find_all(self, hostname_backup_name):
     backups = []
     backup_dir = utils.path_join(self.storage_directory,
                                  hostname_backup_name)
     utils.create_dir_tree(backup_dir)
     timestamps = self.listdir(backup_dir)
     for timestamp in timestamps:
         increments = \
             self.listdir(utils.path_join(backup_dir, timestamp))
         backups.extend(base.Backup.parse_backups(increments, self))
     return backups
Ejemplo n.º 3
0
 def _zero_backup_dir(self, backup):
     """
     :param backup:
     :type backup: freezer.storage.Backup
     :return:
     """
     return utils.path_join(self.storage_directory, backup.hostname_backup_name, backup.full_backup.timestamp)
Ejemplo n.º 4
0
 def download_meta_file(self, backup):
     """
     :type backup: freezer.storage.Backup
     :param backup:
     :return:
     """
     utils.create_dir(self.work_dir)
     if backup.level == 0:
         return utils.path_join(self.work_dir, backup.tar())
     meta_backup = backup.full_backup.increments[backup.level - 1]
     zero_backup = self._zero_backup_dir(backup)
     from_path = utils.path_join(zero_backup, meta_backup.tar())
     to_path = utils.path_join(self.work_dir, meta_backup.tar())
     if os.path.exists(to_path):
         os.remove(to_path)
     self.get_file(from_path, to_path)
     return to_path
Ejemplo n.º 5
0
    def backup_to_file_path(self, backup):
        """

        :param backup:
        :type backup: freezer.storage.base.Backup
        :return:
        """
        return utils.path_join(self._zero_backup_dir(backup), backup)
Ejemplo n.º 6
0
 def rmtree(self, path):
     files = self.ftp.listdir(path=path)
     for f in files:
         filepath = utils.path_join(path, f)
         if self._is_dir(filepath):
             self.rmtree(filepath)
         else:
             self.ftp.remove(filepath)
     self.ftp.rmdir(path)
Ejemplo n.º 7
0
    def upload_meta_file(self, backup, meta_file):
        """

        :param backup:
        :type backup: freezer.storage.base.Backup
        :param meta_file:
        :return:
        """
        zero_backup = self._zero_backup_dir(backup)
        to_path = utils.path_join(zero_backup, backup.tar())
        self.put_file(meta_file, to_path)
Ejemplo n.º 8
0
 def download_meta_file(self, backup):
     """
     Downloads meta_data to work_dir of previous backup.
     :type backup: freezer.storage.base.Backup
     :param backup: A backup or increment. Current backup is incremental,
     that means we should download tar_meta for detection new files and
     changes. If backup.tar_meta is false, raise Exception
     :return:
     """
     utils.create_dir(self.work_dir)
     if backup.level == 0:
         return utils.path_join(self.work_dir, backup.tar())
     meta_backup = backup.full_backup.increments[backup.level - 1]
     if not meta_backup.tar_meta:
         raise ValueError('Latest update have no tar_meta')
     to_path = utils.path_join(self.work_dir, meta_backup.tar())
     if os.path.exists(to_path):
         os.remove(to_path)
     meta_backup.storage.get_file(
         meta_backup.storage.meta_file_abs_path(meta_backup), to_path)
     return to_path
Ejemplo n.º 9
0
 def upload_meta_file(self, backup, meta_file):
     zero_backup = self._zero_backup_dir(backup)
     to_path = utils.path_join(zero_backup, backup.tar())
     self.put_file(meta_file, to_path)
Ejemplo n.º 10
0
 def backup_to_file_path(self, backup):
     return utils.path_join(self._zero_backup_dir(backup), backup)
Ejemplo n.º 11
0
 def meta_file_abs_path(self, backup):
     zero_backup = self._zero_backup_dir(backup)
     return utils.path_join(zero_backup, backup.tar())