示例#1
0
    def calculate_expire_date(self, engine, custom_retention_types=None):
        """Determine expire date, based on 'retention_type' tag"""
        if self.retention_type == BackupResource.RETENTION_DAILY:
            expire_date = self.date_created + timedelta(
                days=RuntimeConfig.get_keep_daily(self.entity_resource_tags(),
                                                  engine))
        elif self.retention_type == BackupResource.RETENTION_WEEKLY:
            expire_date = self.date_created + relativedelta(
                weeks=RuntimeConfig.get_keep_weekly(
                    self.entity_resource_tags(), engine))
        elif self.retention_type == BackupResource.RETENTION_MONTHLY:
            expire_date = self.date_created + relativedelta(
                months=RuntimeConfig.get_keep_monthly(
                    self.entity_resource_tags(), engine))
        elif self.retention_type == BackupResource.RETENTION_YEARLY:
            expire_date = self.date_created + relativedelta(
                years=RuntimeConfig.get_keep_yearly(
                    self.entity_resource_tags(), engine))
        elif self.retention_type in custom_retention_types:
            expire_date = self.date_created + timedelta(
                seconds=custom_retention_types[self.retention_type])
        else:
            # We don't want backups existing forever
            raise Exception(
                f"Unknown retention period '{self.retention_type}' for backup '{self.backup_id}'"
            )

        self.expire_date = expire_date
 def calculate_expire_date(self, engine):
     """Determine expire date, based on 'retention_type' tag"""
     if self.retention_type == BackupResource.RETENTION_DAILY:
         expire_date = self.date_created + timedelta(
             days=RuntimeConfig.get_keep_daily(self.entity_resource_tags(), engine))
     elif self.retention_type == BackupResource.RETENTION_WEEKLY:
         expire_date = self.date_created + relativedelta(
             weeks=RuntimeConfig.get_keep_weekly(self.entity_resource_tags(), engine))
     elif self.retention_type == BackupResource.RETENTION_MONTHLY:
         expire_date = self.date_created + relativedelta(
             months=RuntimeConfig.get_keep_monthly(self.entity_resource_tags(), engine))
     elif self.retention_type == BackupResource.RETENTION_YEARLY:
         expire_date = self.date_created + relativedelta(
             years=RuntimeConfig.get_keep_yearly(self.entity_resource_tags(), engine))
     else:
         # in case there is no retention tag on backup, we want it kept forever
         expire_date = datetime.utcnow() + relativedelta(years=10)
     
     self.expire_date = expire_date