예제 #1
0
    def _create_s3_sections(names, tags):
        # on_time is somehow not feeded from here to S3Limits, so use monkey patch...
        monkeypatch.setattr(
            agent_aws, "NOW",
            dt.strptime("2020-09-28 15:30 UTC", "%Y-%m-%d %H:%M %Z"))

        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("s3_names", names)
        config.add_service_tags("s3_tags", tags)

        fake_s3_client = FakeS3Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        s3_limits_distributor = ResultDistributor()
        s3_summary_distributor = ResultDistributor()

        s3_limits = S3Limits(fake_s3_client, region, config,
                             s3_limits_distributor)
        s3_summary = S3Summary(fake_s3_client, region, config,
                               s3_summary_distributor)
        s3 = S3(fake_cloudwatch_client, region, config)
        s3_requests = S3Requests(fake_cloudwatch_client, region, config)

        s3_limits_distributor.add(s3_summary)
        s3_summary_distributor.add(s3)
        s3_summary_distributor.add(s3_requests)
        return s3_limits, s3_summary, s3, s3_requests
예제 #2
0
    def _create_elb_sections(names, tags):
        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("elb_names", names)
        config.add_service_tags("elb_tags", tags)

        fake_elb_client = FakeELBClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        elb_limits_distributor = ResultDistributor()
        elb_summary_distributor = ResultDistributor()

        elb_limits = ELBLimits(fake_elb_client, region, config, elb_limits_distributor)
        elb_summary = ELBSummaryGeneric(
            fake_elb_client, region, config, elb_summary_distributor, resource="elb"
        )
        elb_labels = ELBLabelsGeneric(fake_elb_client, region, config, resource="elb")
        elb_health = ELBHealth(fake_elb_client, region, config)
        elb = ELB(fake_cloudwatch_client, region, config)

        elb_limits_distributor.add(elb_summary)
        elb_summary_distributor.add(elb_labels)
        elb_summary_distributor.add(elb_health)
        elb_summary_distributor.add(elb)
        return elb_limits, elb_summary, elb_labels, elb_health, elb
예제 #3
0
    def _create_dynamodb_sections(names, tags):

        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("dynamodb_names", names)
        config.add_service_tags("dynamodb_tags", tags)

        fake_dynamodb_client = FakeDynamoDBClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        dynamodb_limits_distributor = ResultDistributor()
        dynamodb_summary_distributor = ResultDistributor()

        dynamodb_limits = DynamoDBLimits(fake_dynamodb_client, region, config,
                                         dynamodb_limits_distributor)
        dynamodb_summary = DynamoDBSummary(fake_dynamodb_client, region,
                                           config,
                                           dynamodb_summary_distributor)
        dynamodb_table = DynamoDBTable(fake_cloudwatch_client, region, config)

        dynamodb_limits_distributor.add(dynamodb_summary)
        dynamodb_summary_distributor.add(dynamodb_table)

        return {
            "dynamodb_limits": dynamodb_limits,
            "dynamodb_summary": dynamodb_summary,
            "dynamodb_table": dynamodb_table,
        }
예제 #4
0
    def _create_dynamodb_sections(names, tags):

        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('dynamodb_names', names)
        config.add_service_tags('dynamodb_tags', tags)

        fake_dynamodb_client = FakeDynamoDBClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        dynamodb_limits_distributor = ResultDistributor()
        dynamodb_summary_distributor = ResultDistributor()

        dynamodb_limits = DynamoDBLimits(fake_dynamodb_client, region, config,
                                         dynamodb_limits_distributor)
        dynamodb_summary = DynamoDBSummary(fake_dynamodb_client, region, config,
                                           dynamodb_summary_distributor)
        dynamodb_table = DynamoDBTable(fake_cloudwatch_client, region, config)

        dynamodb_limits_distributor.add(dynamodb_summary)
        dynamodb_summary_distributor.add(dynamodb_table)

        return {
            'dynamodb_limits': dynamodb_limits,
            'dynamodb_summary': dynamodb_summary,
            'dynamodb_table': dynamodb_table,
        }
예제 #5
0
    def _create_cloudwatch_alarms_sections(alarm_names):
        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('cloudwatch_alarms', alarm_names)

        fake_cloudwatch_client = FakeCloudwatchClient()

        cloudwatch_alarms_limits_distributor = ResultDistributor()

        cloudwatch_alarms_limits = CloudwatchAlarmsLimits(fake_cloudwatch_client, region, config,
                                                          cloudwatch_alarms_limits_distributor)
        cloudwatch_alarms = CloudwatchAlarms(fake_cloudwatch_client, region, config)

        cloudwatch_alarms_limits_distributor.add(cloudwatch_alarms)
        return cloudwatch_alarms_limits, cloudwatch_alarms
예제 #6
0
    def _create_rds_sections():
        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('rds_names', None)
        config.add_service_tags('rds_tags', (None, None))

        fake_rds_client = FakeRDSClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        rds_summary_distributor = ResultDistributor()

        rds_limits = RDSLimits(FakeRDSClient(), region, config)
        rds_summary = RDSSummary(fake_rds_client, region, config, rds_summary_distributor)
        rds = RDS(fake_cloudwatch_client, region, config)

        rds_summary_distributor.add(rds)
        return rds_limits, rds_summary, rds
예제 #7
0
    def _create_rds_sections(names, tags):
        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("rds_names", names)
        config.add_service_tags("rds_tags", tags)

        fake_rds_client = FakeRDSClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        rds_summary_distributor = ResultDistributor()

        rds_limits = RDSLimits(FakeRDSClient(), region, config)
        rds_summary = RDSSummary(fake_rds_client, region, config,
                                 rds_summary_distributor)
        rds = RDS(fake_cloudwatch_client, region, config)

        rds_summary_distributor.add(rds)
        return rds_limits, rds_summary, rds
예제 #8
0
    def _create_s3_sections(names, tags):
        region = 'region'
        config = AWSConfig('hostname', (None, None))
        config.add_single_service_config('s3_names', names)
        config.add_service_tags('s3_tags', tags)

        fake_s3_client = FakeS3Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        s3_limits_distributor = ResultDistributor()
        s3_summary_distributor = ResultDistributor()

        s3_limits = S3Limits(fake_s3_client, region, config, s3_limits_distributor)
        s3_summary = S3Summary(fake_s3_client, region, config, s3_summary_distributor)
        s3 = S3(fake_cloudwatch_client, region, config)
        s3_requests = S3Requests(fake_cloudwatch_client, region, config)

        s3_limits_distributor.add(s3_summary)
        s3_summary_distributor.add(s3)
        s3_summary_distributor.add(s3_requests)
        return s3_limits, s3_summary, s3, s3_requests
예제 #9
0
    def _create_glacier_sections(names, tags):
        region = 'eu-central-1'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('glacier_names', names)
        config.add_service_tags('glacier_tags', tags)

        fake_glacier_client = FakeGlacierClient()
        fake_cloudwatch_client = FakeCloudwatchClient()

        glacier_limits_distributor = ResultDistributor()
        glacier_summary_distributor = ResultDistributor()

        glacier_limits = GlacierLimits(fake_glacier_client, region, config,
                                       glacier_limits_distributor)
        glacier_summary = GlacierSummary(fake_glacier_client, region, config,
                                         glacier_summary_distributor)
        glacier = Glacier(fake_cloudwatch_client, region, config)

        glacier_limits_distributor.add(glacier_summary)
        glacier_summary_distributor.add(glacier)
        return glacier_limits, glacier_summary, glacier
예제 #10
0
def create_sections(names, tags, is_regional):

    if is_regional:
        region = "region"
        scope = "REGIONAL"
    else:
        region = "us-east-1"
        scope = "CLOUDFRONT"

    config = AWSConfig("hostname", [], (None, None))
    config.add_single_service_config("wafv2_names", names)
    config.add_service_tags("wafv2_tags", tags)

    fake_wafv2_client = FakeWAFV2Client()
    fake_cloudwatch_client = FakeCloudwatchClient()

    wafv2_limits_distributor = ResultDistributor()
    wafv2_summary_distributor = ResultDistributor()

    wafv2_limits = WAFV2Limits(fake_wafv2_client,
                               region,
                               config,
                               scope,
                               distributor=wafv2_limits_distributor)
    wafv2_summary = WAFV2Summary(fake_wafv2_client,
                                 region,
                                 config,
                                 scope,
                                 distributor=wafv2_summary_distributor)
    wafv2_web_acl = WAFV2WebACL(fake_cloudwatch_client, region, config,
                                is_regional)

    wafv2_limits_distributor.add(wafv2_summary)
    wafv2_summary_distributor.add(wafv2_web_acl)

    return {
        "wafv2_limits": wafv2_limits,
        "wafv2_summary": wafv2_summary,
        "wafv2_web_acl": wafv2_web_acl,
    }
예제 #11
0
def create_sections(names, tags, is_regional):

    if is_regional:
        region = 'region'
        scope = 'REGIONAL'
    else:
        region = 'us-east-1'
        scope = 'CLOUDFRONT'

    config = AWSConfig('hostname', [], (None, None))
    config.add_single_service_config('wafv2_names', names)
    config.add_service_tags('wafv2_tags', tags)

    fake_wafv2_client = FakeWAFV2Client()
    fake_cloudwatch_client = FakeCloudwatchClient()

    wafv2_limits_distributor = ResultDistributor()
    wafv2_summary_distributor = ResultDistributor()

    wafv2_limits = WAFV2Limits(fake_wafv2_client,
                               region,
                               config,
                               scope,
                               distributor=wafv2_limits_distributor)
    wafv2_summary = WAFV2Summary(fake_wafv2_client,
                                 region,
                                 config,
                                 scope,
                                 distributor=wafv2_summary_distributor)
    wafv2_web_acl = WAFV2WebACL(fake_cloudwatch_client, region, config,
                                is_regional)

    wafv2_limits_distributor.add(wafv2_summary)
    wafv2_summary_distributor.add(wafv2_web_acl)

    return {
        'wafv2_limits': wafv2_limits,
        'wafv2_summary': wafv2_summary,
        'wafv2_web_acl': wafv2_web_acl,
    }
예제 #12
0
    def _create_ebs_sections(names, tags):
        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('ebs_names', names)
        config.add_service_tags('ebs_tags', tags)
        config.add_single_service_config('ec2_names', None)
        config.add_service_tags('ec2_tags', (None, None))

        fake_ec2_client = FakeEC2Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        ec2_summary_distributor = ResultDistributor()
        ebs_limits_distributor = ResultDistributor()
        ebs_summary_distributor = ResultDistributor()

        ec2_summary = EC2Summary(fake_ec2_client, region, config, ec2_summary_distributor)
        ebs_limits = EBSLimits(fake_ec2_client, region, config, ebs_limits_distributor)
        ebs_summary = EBSSummary(fake_ec2_client, region, config, ebs_summary_distributor)
        ebs = EBS(fake_cloudwatch_client, region, config)

        ec2_summary_distributor.add(ebs_summary)
        ebs_limits_distributor.add(ebs_summary)
        ebs_summary_distributor.add(ebs)
        return ec2_summary, ebs_limits, ebs_summary, ebs
예제 #13
0
    def _create_ec2_sections(names, tags, *, skip_entities=None):
        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("ec2_names", names)
        config.add_service_tags("ec2_tags", tags)
        fake_ec2_client = FakeEC2Client(skip_entities)
        fake_cloudwatch_client = FakeCloudwatchClient()
        fake_service_quotas_client = FakeServiceQuotasClient()

        ec2_limits_distributor = ResultDistributor()
        ec2_summary_distributor = ResultDistributor()

        ec2_limits = EC2Limits(
            fake_ec2_client, region, config, ec2_limits_distributor, fake_service_quotas_client
        )
        ec2_summary = EC2Summary(fake_ec2_client, region, config, ec2_summary_distributor)
        ec2_labels = EC2Labels(fake_ec2_client, region, config)
        ec2_security_groups = EC2SecurityGroups(fake_ec2_client, region, config)
        ec2 = EC2(fake_cloudwatch_client, region, config)

        ec2_limits_distributor.add(ec2_summary)
        ec2_summary_distributor.add(ec2_labels)
        ec2_summary_distributor.add(ec2_security_groups)
        ec2_summary_distributor.add(ec2)
        return ec2_limits, ec2_summary, ec2_labels, ec2_security_groups, ec2
예제 #14
0
    def _create_elbv2_sections(names, tags):
        region = "region"
        config = AWSConfig("hostname", [], (None, None))
        config.add_single_service_config("elbv2_names", names)
        config.add_service_tags("elbv2_tags", tags)

        fake_elbv2_client = FakeELBv2Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        elbv2_limits_distributor = ResultDistributor()
        elbv2_summary_distributor = ResultDistributor()

        elbv2_limits = ELBv2Limits(fake_elbv2_client, region, config,
                                   elbv2_limits_distributor)
        elbv2_summary = ELBSummaryGeneric(fake_elbv2_client,
                                          region,
                                          config,
                                          elbv2_summary_distributor,
                                          resource="elbv2")
        elbv2_labels = ELBLabelsGeneric(fake_elbv2_client,
                                        region,
                                        config,
                                        resource="elbv2")
        elbv2_target_groups = ELBv2TargetGroups(fake_elbv2_client, region,
                                                config)
        elbv2_application = ELBv2Application(fake_cloudwatch_client, region,
                                             config)
        elbv2_application_target_groups_http = ELBv2ApplicationTargetGroupsHTTP(
            fake_cloudwatch_client, region, config)
        elbv2_application_target_groups_lambda = ELBv2ApplicationTargetGroupsLambda(
            fake_cloudwatch_client, region, config)
        elbv2_network = ELBv2Network(fake_cloudwatch_client, region, config)

        elbv2_limits_distributor.add(elbv2_summary)
        elbv2_summary_distributor.add(elbv2_labels)
        elbv2_summary_distributor.add(elbv2_target_groups)
        elbv2_summary_distributor.add(elbv2_application)
        elbv2_summary_distributor.add(elbv2_application_target_groups_http)
        elbv2_summary_distributor.add(elbv2_application_target_groups_lambda)
        elbv2_summary_distributor.add(elbv2_network)
        return {
            "elbv2_limits":
            elbv2_limits,
            "elbv2_summary":
            elbv2_summary,
            "elbv2_labels":
            elbv2_labels,
            "elbv2_target_groups":
            elbv2_target_groups,
            "elbv2_application": (
                elbv2_application,
                elbv2_application_target_groups_http,
                elbv2_application_target_groups_lambda,
            ),
            "elbv2_network":
            elbv2_network,
        }
예제 #15
0
    def _create_elbv2_sections(names, tags):
        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('elbv2_names', names)
        config.add_service_tags('elbv2_tags', tags)

        fake_elbv2_client = FakeELBv2Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        elbv2_limits_distributor = ResultDistributor()
        elbv2_summary_distributor = ResultDistributor()

        elbv2_limits = ELBv2Limits(fake_elbv2_client, region, config, elbv2_limits_distributor)
        elbv2_summary = ELBSummaryGeneric(fake_elbv2_client,
                                          region,
                                          config,
                                          elbv2_summary_distributor,
                                          resource='elbv2')
        elbv2_labels = ELBLabelsGeneric(fake_elbv2_client, region, config, resource='elbv2')
        elbv2_target_groups = ELBv2TargetGroups(fake_elbv2_client, region, config)
        elbv2_application = ELBv2Application(fake_cloudwatch_client, region, config)
        elbv2_application_target_groups_http = ELBv2ApplicationTargetGroupsHTTP(
            fake_cloudwatch_client, region, config)
        elbv2_application_target_groups_lambda = ELBv2ApplicationTargetGroupsLambda(
            fake_cloudwatch_client, region, config)
        elbv2_network = ELBv2Network(fake_cloudwatch_client, region, config)

        elbv2_limits_distributor.add(elbv2_summary)
        elbv2_summary_distributor.add(elbv2_labels)
        elbv2_summary_distributor.add(elbv2_target_groups)
        elbv2_summary_distributor.add(elbv2_application)
        elbv2_summary_distributor.add(elbv2_application_target_groups_http)
        elbv2_summary_distributor.add(elbv2_application_target_groups_lambda)
        elbv2_summary_distributor.add(elbv2_network)
        return {
            'elbv2_limits': elbv2_limits,
            'elbv2_summary': elbv2_summary,
            'elbv2_labels': elbv2_labels,
            'elbv2_target_groups': elbv2_target_groups,
            'elbv2_application': (elbv2_application, elbv2_application_target_groups_http,
                                  elbv2_application_target_groups_lambda),
            'elbv2_network': elbv2_network
        }
예제 #16
0
    def _create_ec2_sections(names, tags):
        region = 'region'
        config = AWSConfig('hostname', [], (None, None))
        config.add_single_service_config('ec2_names', names)
        config.add_service_tags('ec2_tags', tags)

        fake_ec2_client = FakeEC2Client()
        fake_cloudwatch_client = FakeCloudwatchClient()

        ec2_limits_distributor = ResultDistributor()
        ec2_summary_distributor = ResultDistributor()

        ec2_limits = EC2Limits(fake_ec2_client, region, config,
                               ec2_limits_distributor)
        ec2_summary = EC2Summary(fake_ec2_client, region, config,
                                 ec2_summary_distributor)
        ec2_labels = EC2Labels(fake_ec2_client, region, config)
        ec2_security_groups = EC2SecurityGroups(fake_ec2_client, region,
                                                config)
        ec2 = EC2(fake_cloudwatch_client, region, config)

        ec2_limits_distributor.add(ec2_summary)
        ec2_summary_distributor.add(ec2_labels)
        ec2_summary_distributor.add(ec2_security_groups)
        ec2_summary_distributor.add(ec2)
        return ec2_limits, ec2_summary, ec2_labels, ec2_security_groups, ec2