Source code for lambda_handlers.door43_deploy_handler

from __future__ import unicode_literals, print_function
from libraries.door43_tools.project_deployer import ProjectDeployer
from libraries.lambda_handlers.handler import Handler


[docs]class Door43DeployHandler(Handler): def _handle(self, event, context): """ :param dict event: :param context: """ if 'Records' in event: # If we got 'Records' that means a template change was uploaded to S3 and we got the trigger for record in event['Records']: # See if it is a notification from an S3 bucket if 's3' in record: bucket_name = record['s3']['bucket']['name'] key = record['s3']['object']['key'] self.deploy(bucket_name, key) elif 'build_log_key' in event: if 'cdn_bucket' in event: self.deploy(event['cdn_bucket'], event['build_log_key']) elif 'cdn_bucket' in event: # this is triggered manually through AWS Lambda console to update all projects cdn_bucket = event['cdn_bucket'] prefix = cdn_bucket[:-(len('cdn.door43.org'))] door43_bucket = '{0}door43.org'.format(prefix) deploy_function = '{0}tx_door43_deploy'.format(prefix) ProjectDeployer(cdn_bucket, door43_bucket).redeploy_all_projects(deploy_function) @staticmethod
[docs] def deploy(bucket_name, key): cdn_bucket = 'cdn.door43.org' door43_bucket = 'door43.org' if '-' in bucket_name: prefix = bucket_name.split('-')[0] + '-' cdn_bucket = '{0}{1}'.format(prefix, cdn_bucket) door43_bucket = '{0}{1}'.format(prefix, door43_bucket) ProjectDeployer(cdn_bucket, door43_bucket).deploy_revision_to_door43(key)