def upload_apigateway(self): ''' This function is a wrapper for parsing arguments and uploading apigateway :return: ''' logger.info("Started upload command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser( description='upload apigateway', usage='''kerrigan.py apigateway upload_apigateway [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--json', metavar='FILE', required=True, type=lambda x: Misc.is_valid_file(parser, x), help="Which file to upload") parser.add_argument('--dryrun', action="store_true", default=False, help="No changes should be done") args = parser.parse_args(sys.argv[3:]) result = a.upload_apigateway(json=Misc.parse_file_to_json(args.json), dryrun=args.dryrun)
def upload_apigateway(self): ''' This function is a wrapper for parsing arguments and uploading apigateway :return: ''' logger.info("Started upload command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser(description='upload apigateway', usage='''kerrigan.py apigateway upload_apigateway [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--json', metavar='FILE', required=True, type=lambda x: Misc.is_valid_file(parser, x), help="Which file to upload") parser.add_argument('--dryrun', action="store_true",default=False,help="No changes should be done") args = parser.parse_args(sys.argv[3:]) result = a.upload_apigateway(json=Misc.parse_file_to_json(args.json),dryrun=args.dryrun)
def deploy_stack_to_env(self, env, file, dryrun): stack_json = Misc.parse_file_to_json(file=file) from misc import Validator stack_json = Validator.validate_kerrigan_json(stack_data=stack_json, env=env) if 'cloudformation' in stack_json: cloudformation_json = stack_json.pop("cloudformation") from misc import Translater from wrapper.vpc import Vpc from wrapper.cloudformation import Cloudformation vpc = Vpc(session=self.session) cloudformation = Cloudformation(session=self.session) env_vpc = vpc.get_vpc_from_env(env=env) env_cidr = env_vpc['CidrBlock'] ami = self.get_ami_from_tag(puppet_role=stack_json['ami']) else: cloudformation_json = None self.upload_stack_to_dynamodb(item=stack_json) # Do changes from kerrigan if cloudformation_json: logger.info(msg="Doing security group transformations") cloudformation_json = Translater.translate_security_group_ip_address_in_cloudformation( cloudformation_json=cloudformation_json, env_cidr=env_cidr) cloudformation_parameters = Translater.gather_information_for_cloudofrmation_parameters( stack_data=stack_json, vpc=env_vpc, ami=ami) # Do pre kerrigan tasks # Do cloudformation if cloudformation_json: stackname = "%s-%s-%s" % (env, stack_json['puppet_role'], stack_json['xively_service']) if cloudformation.stack_exists(stackname=stackname): cloudformation.update_stack( stackname=stackname, templatebody=cloudformation_json, dryrun=dryrun, parameters=cloudformation_parameters) else: cloudformation.create_stack( stackname=stackname, templatebody=cloudformation_json, dryrun=dryrun, parameters=cloudformation_parameters)