def test_parse_service_columns_with_services_cloudformation(self): columns = "" keys = Misc.get_supported_columns(service="cloudformation").keys() self.assertListEqual( keys, Misc.parse_service_columns(service="cloudformation", columns=columns))
def report_kinesis(self): ''' This function is a wrapper for parsing arguments and printing for kinesis attribute reports :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser( description='report generation about kinesis', usage='''kerrigan.py kinesis report_kinesis [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument( '--columns', action='store', default=a.service_supported_columns(service="kinesis").keys(), help="Which columns to display") args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(service="kinesis", columns=args.columns) result = a.information_kinesis(columns=columns) logger.output( data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def report_elb(self): ''' This function is a wrapper for parsing arguments and printing for elb attribute reports Tested :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser(description='report generation about elbs', usage='''kerrigan.py elb report_elb [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--columns', action='store', default=a.service_supported_columns(service="elb"), help="Which columns to display") parser.add_argument('--filters', action='store', default=None, help="The filters that should be used, example: key1:value1,key2:value2") args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(columns=args.columns, service="elb") if args.filters: filters = Misc.format_boto3_filter(filters=args.filters) else: filters = None result = a.information_elbs(columns=columns, filters=filters) for res in result: if self.account_information['logger_arguments']['table']: res['AvailabilityZones'] = Misc.list_to_multiline_string(list=res['AvailabilityZones']) res['SecurityGroups'] = Misc.list_to_multiline_string(list=res['SecurityGroups']) res['Instances'] = Misc.list_to_multiline_string(list=res['Instances']) else: res['AvailabilityZones'] = Misc.join_list_to_string(list=res['AvailabilityZones']) res['SecurityGroups'] = Misc.join_list_to_string(list=res['SecurityGroups']) res['Instances'] = Misc.join_list_to_string(list=res['Instances']) logger.output(data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def report_elb(self): ''' This function is a wrapper for parsing arguments and printing for elb attribute reports Tested :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser( description='report generation about elbs', usage='''kerrigan.py elb report_elb [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--columns', action='store', default=a.service_supported_columns(service="elb"), help="Which columns to display") parser.add_argument( '--filters', action='store', default=None, help= "The filters that should be used, example: key1:value1,key2:value2" ) args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(columns=args.columns, service="elb") if args.filters: filters = Misc.format_boto3_filter(filters=args.filters) else: filters = None result = a.information_elbs(columns=columns, filters=filters) for res in result: if self.account_information['logger_arguments']['table']: res['AvailabilityZones'] = Misc.list_to_multiline_string( list=res['AvailabilityZones']) res['SecurityGroups'] = Misc.list_to_multiline_string( list=res['SecurityGroups']) res['Instances'] = Misc.list_to_multiline_string( list=res['Instances']) else: res['AvailabilityZones'] = Misc.join_list_to_string( list=res['AvailabilityZones']) res['SecurityGroups'] = Misc.join_list_to_string( list=res['SecurityGroups']) res['Instances'] = Misc.join_list_to_string( list=res['Instances']) logger.output( data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def report_apigateway(self): ''' This function is a wrapper for parsing arguments and printing for apigateway attribute reports :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser(description='report generation about apigateway', usage='''kerrigan.py apigateway report_apigateway [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--columns', action='store', default=a.service_supported_columns(service="sg").keys(), help="Which columns to display") args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(service="apigateway", columns=args.columns) result = a.information_apigateway(columns=columns) logger.output(data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def report_ami(self): ''' This function is a wrapper for parsing arguments and printing for ami attribute reports :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser(description='report generation about ami', usage='''kerrigan.py ami report_ami [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--columns', action='store', default=a.service_supported_columns(service="ami").keys(), help="Which columns to display") parser.add_argument('--filters', action='store', default=None, help="The filters that should be used, example: key1:value1,key2:value2") args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(service="ami", columns=args.columns) if args.filters: filters = Misc.format_boto3_filter(filters=args.filters) else: filters = None result = a.information_ami(columns=columns, filters=filters) logger.output(data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def report_ec2_instances(self): ''' This function is a wrapper for parsing arguments and printing for ec2 instance attribute reports Tested :return: ''' logger.info("Started report generation command") a = awsrequests(session=self.account_information['session']) parser = argparse.ArgumentParser(description='report generation about ec2 instances', usage='''kerrigan.py ec2 report_ec2_instances [<args>]] ''' + self.global_options, formatter_class=argparse.ArgumentDefaultsHelpFormatter, prog="kerrigan") parser.add_argument('--columns', action='store', default=a.service_supported_columns(service="ec2").keys(), help="Which columns to display") parser.add_argument('--filters', action='store', default=None, help="The filters that should be used, example: key1:value1,key2:value2") args = parser.parse_args(sys.argv[3:]) columns = Misc.parse_service_columns(service="ec2", columns=args.columns) if args.filters: filters = Misc.format_boto3_filter(filters=args.filters) else: filters = None result = a.information_ec2_instances(columns=columns, filters=filters) logger.output(data=result, csvvar=self.account_information['logger_arguments']['csv'], tablevar=self.account_information['logger_arguments']['table'])
def test_parse_service_columns_with_services_elb(self): columns = "" keys = Misc.get_supported_columns(service="elb").keys() self.assertListEqual(keys, Misc.parse_service_columns(service="elb",columns=columns))
def test_parse_service_columns_with_services_cloudformation(self): columns = "" keys = Misc.get_supported_columns(service="cloudformation").keys() self.assertListEqual(keys, Misc.parse_service_columns(service="cloudformation",columns=columns))
def test_parse_service_columns_all_column(self): keys = Misc.ec2_columns.keys() columns = ",".join(keys) self.assertListEqual(keys, Misc.parse_service_columns(service="ec2",columns=columns))
def test_parse_service_columns_2_column(self): columns = "id,vpc_id,notexist" keys = ["id", "vpc_id"] self.assertListEqual(keys, Misc.parse_service_columns(service="ec2",columns=columns))
def test_parse_service_columns_empty(self): columns = "" keys = Misc.ec2_columns.keys() self.assertListEqual(keys, Misc.parse_service_columns(service="ec2",columns=columns))
def test_parse_service_columns_with_services_elb(self): columns = "" keys = Misc.get_supported_columns(service="elb").keys() self.assertListEqual( keys, Misc.parse_service_columns(service="elb", columns=columns))
def test_parse_service_columns_all_column(self): keys = Misc.ec2_columns.keys() columns = ",".join(keys) self.assertListEqual( keys, Misc.parse_service_columns(service="ec2", columns=columns))
def test_parse_service_columns_2_column(self): columns = "id,vpc_id,notexist" keys = ["id", "vpc_id"] self.assertListEqual( keys, Misc.parse_service_columns(service="ec2", columns=columns))
def test_parse_service_columns_empty(self): columns = "" keys = Misc.ec2_columns.keys() self.assertListEqual( keys, Misc.parse_service_columns(service="ec2", columns=columns))