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