Exemplo n.º 1
0
 def __init__(self):
     # system logger
     FORMAT = "%(asctime)s %(process)s %(thread)s: %(message)s"
     logging.basicConfig(format=FORMAT)
     logging.info("Initialize logger")
     self.logger = logging.getLogger()
     self.logger.setLevel(logging.INFO)
     self.aws_request_id = 0
     self.lambda_wait_iteration = 0
     self.lambda_payload = None
     self.lambda_context = None
     self.account_id = AwsHelper.local_account_id()
     self.region = AwsHelper.local_region()
     self.snspublisher = ShelveryNotification(
         RuntimeConfig.get_sns_topic(self))
Exemplo n.º 2
0
    def cross_account_copy(self, new_backup_id):
        backup = copy.deepcopy(self)

        # backup name and retention type are copied
        backup.backup_id = new_backup_id
        backup.region = AwsHelper.local_region()
        backup.account_id = AwsHelper.local_account_id()

        tag_prefix = self.tags['shelvery:tag_name']
        backup.tags[f"{tag_prefix}:region"] = backup.region
        backup.tags[f"{tag_prefix}:date_copied"] =  datetime.utcnow().strftime(self.TIMESTAMP_FORMAT)
        backup.tags[f"{tag_prefix}:dst_account"] = backup.account_id
        backup.tags[f"{tag_prefix}:src_region"] = self.region
        backup.tags[f"{tag_prefix}:region"] = backup.region
        backup.tags[f"{tag_prefix}:dr_copy"] = 'false'
        backup.tags[f"{tag_prefix}:cross_account_copy"] = 'true'
        backup.tags[f"{tag_prefix}:dr_regions"] = ''
        backup.tags[f"{tag_prefix}:dr_copies"] = ''
        return backup
Exemplo n.º 3
0
 def get_remote_bucket_name(cls, account_id, remote_region=None):
     if remote_region is None:
         remote_region = AwsHelper.local_region()
     bucket_name = f"shelvery.data.{account_id}-{remote_region}.base2tools"
     return bucket_name