Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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)