예제 #1
0
    def test_build_filter_params_with_identical_keys(self):
        from botocross import build_filter_params

        args = ["tag:Name=boto", "tag:Name=botocross"]
        params = build_filter_params(args)
        self.assertEquals(1, len(params))
        for k, v in params.iteritems():
            self.assertTrue(isinstance(v, list))
            self.assertEquals(2, len(v))
예제 #2
0
    def test_build_filter_params_with_identical_keys(self):
        from botocross import build_filter_params

        args = ["tag:Name=boto", "tag:Name=botocross"]
        params = build_filter_params(args)
        self.assertEquals(1, len(params))
        for k, v in params.iteritems():
            self.assertTrue(isinstance(v, list))
            self.assertEquals(2, len(v))
예제 #3
0
    def test_build_filter_params_with_no_keys(self):
        from botocross import build_filter_params

        args = None
        params = build_filter_params(args)
        self.assertEquals(None, params)
예제 #4
0
    description='Describe AWS resource tags in all/some available EC2 regions',
    parents=[bc.build_region_parser(),
             bc.build_common_parser()])
parser.add_argument(
    "-f",
    "--filter",
    action="append",
    help="An AWS resource filter. [can be used multiple times]")
args = parser.parse_args()

# process common command line arguments
log = logging.getLogger('botocross')
bc.configure_logging(log, args.log_level)
credentials = bc.parse_credentials(args)
regions = bc.filter_regions(boto.ec2.regions(), args.region)
filters = bc.build_filter_params(args.filter)

# execute business logic
log.info("Describing AWS resource tags:")

for region in regions:
    try:
        ec2 = boto.connect_ec2(region=region, **credentials)
        resources = ec2.get_all_tags(filters=filters)
        print region.name + ": " + str(len(resources)) + " resources with tags"
        for resource in resources:
            if args.verbose:
                pprint(vars(resource))
            else:
                print "type: " + resource.res_type + ", id: " + resource.res_id + ", key: " + resource.name + ", value: " + resource.value
    except boto.exception.BotoServerError, e:
예제 #5
0
import boto.ec2
import botocross as bc
import logging

# configure command line argument parsing
parser = argparse.ArgumentParser(description='Describe AWS resource tags in all/some available EC2 regions',
                                 parents=[bc.build_region_parser(), bc.build_common_parser()])
parser.add_argument("-f", "--filter", action="append", help="An AWS resource filter. [can be used multiple times]")
args = parser.parse_args()

# process common command line arguments
log = logging.getLogger('botocross')
bc.configure_logging(log, args.log_level)
credentials = bc.parse_credentials(args)
regions = bc.filter_regions(boto.ec2.regions(), args.region)
filters = bc.build_filter_params(args.filter)

# execute business logic
log.info("Describing AWS resource tags:")


for region in regions:
    try:
        ec2 = boto.connect_ec2(region=region, **credentials)
        resources = ec2.get_all_tags(filters=filters)
        print region.name + ": " + str(len(resources)) + " resources with tags"
        for resource in resources:
            if args.verbose:
                pprint(vars(resource))
            else:
                print "type: " + resource.res_type + ", id: " + resource.res_id + ", key: " + resource.name + ", value: " + resource.value
예제 #6
0
    def test_build_filter_params_with_no_keys(self):
        from botocross import build_filter_params

        args = None
        params = build_filter_params(args)
        self.assertEquals(None, params)