Beispiel #1
0
    def execute(self):
        # remove backups by freezer admin action
        backup_media = self.conf.backup_media
        if backup_media == 'cindernative':
            admin_os = admin.AdminOs(self.conf.client_manager)
            admin_os.del_off_limit_fullbackup(self.conf.cindernative_vol_id,
                                              self.conf.fullbackup_rotation)
            return {}
        if self.conf.remove_from_date:
            timestamp = utils.date_to_timestamp(self.conf.remove_from_date)
        else:
            timestamp = datetime.datetime.now() - \
                datetime.timedelta(days=float(self.conf.remove_older_than))
            timestamp = int(time.mktime(timestamp.timetuple()))

        if self.conf.backup_media == 'cinder':
            if self.conf.cinder_vol_id:
                old_backups = self.get_cinder_old_backups(
                    timestamp, self.conf.cinder_vol_id)
                self.remove_backup_dirs(old_backups, self.conf.cinder_vol_id)
                return {}

            else:
                for instance_id in self.cinder_vol_ids:
                    old_backups = self.get_cinder_old_backups(
                        timestamp, instance_id)
                    self.remove_backup_dirs(old_backups, instance_id)
                    return {}
        hostname_backup_name_set = set()

        if self.conf.backup_media == 'nova':
            if self.conf.project_id:
                instance_ids = self.engine.get_nova_tenant(
                    self.conf.project_id)
                for instance_id in instance_ids:
                    hostname_backup_name = os.path.join(
                        self.conf.hostname_backup_name, instance_id)
                    hostname_backup_name_set.add(hostname_backup_name)

            elif self.conf.nova_inst_id:
                hostname_backup_name = os.path.join(
                    self.conf.hostname_backup_name, self.conf.nova_inst_id)
                hostname_backup_name_set.add(hostname_backup_name)

            else:
                for instance_id in self.nova_instance_ids:
                    hostname_backup_name = os.path.join(
                        self.conf.hostname_backup_name, instance_id)
                    hostname_backup_name_set.add(hostname_backup_name)
        else:
            hostname_backup_name_set.add(self.conf.hostname_backup_name)

        for backup_name in hostname_backup_name_set:
            self.storage.remove_older_than(self.engine, timestamp, backup_name)
        return {}
Beispiel #2
0
 def setUp(self):
     super(TestAdmin, self).setUp()
     self.backup_opt = commons.BackupOpt1()
     self.admin_os = admin.AdminOs(self.backup_opt.client_manager)
     self.client_manager = self.backup_opt.client_manager