Example #1
0
 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))
Example #2
0
 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'])
Example #3
0
 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'])
Example #4
0
 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'])
Example #5
0
 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'])
Example #6
0
 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'])
Example #7
0
 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'])
Example #8
0
 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))
Example #9
0
 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))
Example #10
0
 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))
Example #11
0
 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))
Example #12
0
 def test_parse_service_columns_empty(self):
     columns = ""
     keys = Misc.ec2_columns.keys()
     self.assertListEqual(keys, Misc.parse_service_columns(service="ec2",columns=columns))
Example #13
0
 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))
Example #14
0
 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))
Example #15
0
 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))
Example #16
0
 def test_parse_service_columns_empty(self):
     columns = ""
     keys = Misc.ec2_columns.keys()
     self.assertListEqual(
         keys, Misc.parse_service_columns(service="ec2", columns=columns))