def parse_aws_function(self, function_name, function_data): aws_args = {} # Get function name aws_args['lambda'] = self.parse_lambda_args(function_data) aws_args['lambda']['name'] = function_name aws_services = ['iam', 'cloudwatch', 's3', 'api_gateway', 'batch'] aws_args.update(utils.parse_arg_list(aws_services, function_data)) other_args = [('profile','boto_profile'),'region','execution_mode'] aws_args.update(utils.parse_arg_list(other_args, function_data)) aws = {'aws' : aws_args if aws_args else {}} return aws
def parse_s3_args(self, cmd_args): s3_args = [ 'deployment_bucket', 'input_bucket', 'input_folder', 'output_bucket', 'output_folder', ('bucket', 'input_bucket'), ('bucket_folder', 'input_folder') ] return utils.parse_arg_list(s3_args, cmd_args)
def parse_lambda_args(self, cmd_args): lambda_args = [ 'asynchronous', 'init_script', 'run_script', 'c_args', 'memory', 'time', 'timeout_threshold', 'log_level', 'image', 'image_file', 'description', 'lambda_role', 'extra_payload', ('environment', 'environment_variables') ] return utils.parse_arg_list(lambda_args, cmd_args)
def parse_aws_args(self, cmd_args): aws_args = {} other_args = [('profile', 'boto_profile'), 'region'] self.set_args(aws_args, 'iam', self.parse_iam_args(cmd_args)) self.set_args(aws_args, 'lambda', self.parse_lambda_args(cmd_args)) self.set_args(aws_args, 'cloudwatch', self.parse_cloudwatchlogs_args(cmd_args)) self.set_args(aws_args, 's3', self.parse_s3_args(cmd_args)) self.set_args(aws_args, 'api_gateway', self.parse_api_gateway_args(cmd_args)) aws_args.update(utils.parse_arg_list(other_args, cmd_args)) return {'aws': aws_args}
def parse_scar_args(self, cmd_args): scar_args = [ 'func', 'conf_file', 'json', 'verbose', 'path', ('all', 'delete_all'), 'preheat', 'execution_mode', ] return {'scar': utils.parse_arg_list(scar_args, cmd_args)}
def parse_aws_function(self, function_name, function_data): aws_args = {} # Get function name aws_args['lambda'] = self.parse_lambda_args(function_data) aws_args['lambda']['name'] = function_name if 'iam' in function_data: aws_args['iam'] = function_data['iam'] if 'cloudwatch' in function_data: aws_args['cloudwatch'] = function_data['cloudwatch'] if 's3' in function_data: aws_args['s3'] = function_data['s3'] if 'api_gateway' in function_data: aws_args['api_gateway'] = function_data['api_gateway'] other_args = [('profile', 'boto_profile'), 'region'] aws_args.update(utils.parse_arg_list(other_args, function_data)) aws = {} aws['aws'] = aws_args return aws
def parse_api_gateway_args(self, cmd_args): api_gtw_args = [('api_gateway_name', 'name'), 'parameters', 'data_binary'] return utils.parse_arg_list(api_gtw_args, cmd_args)
def parse_cloudwatchlogs_args(self, cmd_args): cw_log_args = ['log_stream_name', 'request_id'] return utils.parse_arg_list(cw_log_args, cmd_args)
def parse_iam_args(self, cmd_args): iam_args = [('iam_role', 'role')] return utils.parse_arg_list(iam_args, cmd_args)