コード例 #1
0
    def test_update_limits_from_api_low_max_instances(self):
        fixtures = result_fixtures.VPC()
        response = fixtures.test_update_limits_from_api_low_max_instances

        mock_conn = Mock()
        mock_client_conn = Mock()
        mock_client_conn.describe_account_attributes.return_value = response

        cls = _VpcService(21, 43)
        cls.resource_conn = mock_conn
        cls.conn = mock_client_conn
        with patch('awslimitchecker.services.vpc.logger') as mock_logger:
            cls._update_limits_from_api()
        assert mock_conn.mock_calls == []
        assert mock_client_conn.mock_calls == [
            call.describe_account_attributes()
        ]
        assert mock_logger.mock_calls == [
            call.info("Querying EC2 DescribeAccountAttributes for limits"),
            call.debug('Done setting limits from API')
        ]

        limit_name = 'Network interfaces per Region'
        assert cls.limits[limit_name].api_limit is None
        assert cls.limits[limit_name].get_limit() == DEFAULT_ENI_LIMIT
コード例 #2
0
ファイル: test_vpc.py プロジェクト: jantman/awslimitchecker
    def test_update_limits_from_api_low_max_instances(self):
        fixtures = result_fixtures.VPC()
        response = fixtures.test_update_limits_from_api_low_max_instances

        mock_conn = Mock()
        mock_client_conn = Mock()
        mock_client_conn.describe_account_attributes.return_value = response

        cls = _VpcService(21, 43)
        cls.resource_conn = mock_conn
        cls.conn = mock_client_conn
        with patch('awslimitchecker.services.vpc.logger') as mock_logger:
            cls._update_limits_from_api()
        assert mock_conn.mock_calls == []
        assert mock_client_conn.mock_calls == [
            call.describe_account_attributes()
        ]
        assert mock_logger.mock_calls == [
            call.info("Querying EC2 DescribeAccountAttributes for limits"),
            call.debug('Done setting limits from API')
        ]

        limit_name = 'Network interfaces per Region'
        assert cls.limits[limit_name].api_limit is None
        assert cls.limits[limit_name].get_limit() == DEFAULT_ENI_LIMIT
コード例 #3
0
    def test_update_limits_from_api(self):
        data = fixtures.test_update_limits_from_api
        mock_conn = Mock()
        mock_client_conn = Mock()
        mock_client_conn.describe_account_attributes.return_value = data

        cls = _Ec2Service(21, 43)
        cls.resource_conn = mock_conn
        cls.conn = mock_client_conn
        with patch('awslimitchecker.services.ec2.logger') as mock_logger:
            cls._update_limits_from_api()
        assert mock_conn.mock_calls == []
        assert mock_client_conn.mock_calls == [
            call.describe_account_attributes()
        ]
        assert mock_logger.mock_calls == [
            call.info("Querying EC2 DescribeAccountAttributes for limits"),
            call.debug('Done setting limits from API')
        ]
        assert cls.limits['Elastic IP addresses (EIPs)'].api_limit == 40
        assert cls.limits['Running On-Demand EC2 instances'].api_limit == 400
        assert cls.limits['VPC Elastic IP addresses (EIPs)'].api_limit == 200
        assert cls.limits['VPC security groups per elastic '
                          'network interface'].api_limit == 5
コード例 #4
0
    def test_update_limits_from_api(self):
        data = fixtures.test_update_limits_from_api
        mock_conn = Mock()
        mock_client_conn = Mock()
        mock_client_conn.describe_account_attributes.return_value = data

        cls = _Ec2Service(21, 43)
        cls.resource_conn = mock_conn
        cls.conn = mock_client_conn
        with patch('awslimitchecker.services.ec2.logger') as mock_logger:
            cls._update_limits_from_api()
        assert mock_conn.mock_calls == []
        assert mock_client_conn.mock_calls == [
            call.describe_account_attributes()
        ]
        assert mock_logger.mock_calls == [
            call.info("Querying EC2 DescribeAccountAttributes for limits"),
            call.debug('Done setting limits from API')
        ]
        assert cls.limits['Elastic IP addresses (EIPs)'].api_limit == 40
        assert cls.limits['Running On-Demand EC2 instances'].api_limit == 400
        assert cls.limits['VPC Elastic IP addresses (EIPs)'].api_limit == 200
        assert cls.limits['VPC security groups per elastic '
                          'network interface'].api_limit == 5
コード例 #5
0
ファイル: test_rds.py プロジェクト: tkim443/awslimitchecker
    def test_update_limits_from_api(self):
        response = result_fixtures.RDS.test_update_limits_from_api

        mock_conn = Mock()
        mock_conn.describe_account_attributes.return_value = response
        with patch('%s.logger' % self.pbm) as mock_logger:
            with patch('%s.connect' % self.pb) as mock_connect:
                cls = _RDSService(21, 43, {}, None)
                cls.conn = mock_conn
                # limits that we still calculate usage for
                cls.limits['Max auths per security group']._add_current_usage(
                    1)
                cls.limits['Subnets per Subnet Group']._add_current_usage(1)
                cls.limits['Read replicas per master']._add_current_usage(1)
                usage_auths = cls.limits[
                    'Max auths per security group'].get_current_usage()
                usage_subnets = cls.limits[
                    'Subnets per Subnet Group'].get_current_usage()
                usage_replicas = cls.limits[
                    'Read replicas per master'].get_current_usage()
                cls._update_limits_from_api()
        assert mock_connect.mock_calls == [call()]
        assert mock_conn.mock_calls == [call.describe_account_attributes()]
        assert mock_logger.mock_calls == [
            call.info('Querying RDS DescribeAccountAttributes for limits'),
            call.info(
                'RDS DescribeAccountAttributes returned unknown'
                'limit: %s (max: %s; used: %s)', 'Foo', 98, 99),
            call.debug('Done setting limits from API.')
        ]

        lim = cls.limits['DB instances']
        assert lim.api_limit == 200
        assert lim.get_current_usage()[0].get_value() == 124

        lim = cls.limits['Reserved Instances']
        assert lim.api_limit == 201
        assert lim.get_current_usage()[0].get_value() == 96

        lim = cls.limits['Storage quota (GB)']
        assert lim.api_limit == 100000
        assert lim.get_current_usage()[0].get_value() == 8320

        lim = cls.limits['DB security groups']
        assert lim.api_limit == 25
        assert lim.get_current_usage()[0].get_value() == 15

        lim = cls.limits['Max auths per security group']
        assert lim.api_limit == 20
        assert lim.get_current_usage() == usage_auths

        lim = cls.limits['DB parameter groups']
        assert lim.api_limit == 50
        assert lim.get_current_usage()[0].get_value() == 39

        lim = cls.limits['DB snapshots per user']
        assert lim.api_limit == 150
        assert lim.get_current_usage()[0].get_value() == 76

        lim = cls.limits['Event Subscriptions']
        assert lim.api_limit == 21
        assert lim.get_current_usage()[0].get_value() == 1

        lim = cls.limits['Subnet Groups']
        assert lim.api_limit == 202
        assert lim.get_current_usage()[0].get_value() == 89

        lim = cls.limits['Option Groups']
        assert lim.api_limit == 22
        assert lim.get_current_usage()[0].get_value() == 2

        lim = cls.limits['Subnets per Subnet Group']
        assert lim.api_limit == 23
        assert lim.get_current_usage() == usage_subnets

        lim = cls.limits['Read replicas per master']
        assert lim.api_limit == 5
        assert lim.get_current_usage() == usage_replicas

        lim = cls.limits['DB Clusters']
        assert lim.api_limit == 40
        assert lim.get_current_usage()[0].get_value() == 3

        lim = cls.limits['DB Cluster Parameter Groups']
        assert lim.api_limit == 51
        assert lim.get_current_usage()[0].get_value() == 6
コード例 #6
0
    def test_update_limits_from_api(self):
        response = result_fixtures.RDS.test_update_limits_from_api

        mock_conn = Mock()
        mock_conn.describe_account_attributes.return_value = response
        with patch('%s.logger' % self.pbm) as mock_logger:
            with patch('%s.connect' % self.pb) as mock_connect:
                cls = _RDSService(21, 43)
                cls.conn = mock_conn
                # limits that we still calculate usage for
                cls.limits['Max auths per security group']._add_current_usage(1)
                cls.limits['Subnets per Subnet Group']._add_current_usage(1)
                cls.limits['Read replicas per master']._add_current_usage(1)
                usage_auths = cls.limits[
                    'Max auths per security group'].get_current_usage()
                usage_subnets = cls.limits[
                    'Subnets per Subnet Group'].get_current_usage()
                usage_replicas = cls.limits[
                    'Read replicas per master'].get_current_usage()
                cls._update_limits_from_api()
        assert mock_connect.mock_calls == [call()]
        assert mock_conn.mock_calls == [
            call.describe_account_attributes()
        ]
        assert mock_logger.mock_calls == [
            call.info('Querying RDS DescribeAccountAttributes for limits'),
            call.info(
                'RDS DescribeAccountAttributes returned unknown'
                'limit: %s (max: %s; used: %s)',
                'Foo', 98, 99
            ),
            call.debug('Done setting limits from API.')
        ]

        lim = cls.limits['DB instances']
        assert lim.api_limit == 200
        assert lim.get_current_usage()[0].get_value() == 124

        lim = cls.limits['Reserved Instances']
        assert lim.api_limit == 201
        assert lim.get_current_usage()[0].get_value() == 96

        lim = cls.limits['Storage quota (GB)']
        assert lim.api_limit == 100000
        assert lim.get_current_usage()[0].get_value() == 8320

        lim = cls.limits['DB security groups']
        assert lim.api_limit == 25
        assert lim.get_current_usage()[0].get_value() == 15

        lim = cls.limits['Max auths per security group']
        assert lim.api_limit == 20
        assert lim.get_current_usage() == usage_auths

        lim = cls.limits['DB parameter groups']
        assert lim.api_limit == 50
        assert lim.get_current_usage()[0].get_value() == 39

        lim = cls.limits['DB snapshots per user']
        assert lim.api_limit == 150
        assert lim.get_current_usage()[0].get_value() == 76

        lim = cls.limits['Event Subscriptions']
        assert lim.api_limit == 21
        assert lim.get_current_usage()[0].get_value() == 1

        lim = cls.limits['Subnet Groups']
        assert lim.api_limit == 202
        assert lim.get_current_usage()[0].get_value() == 89

        lim = cls.limits['Option Groups']
        assert lim.api_limit == 22
        assert lim.get_current_usage()[0].get_value() == 2

        lim = cls.limits['Subnets per Subnet Group']
        assert lim.api_limit == 23
        assert lim.get_current_usage() == usage_subnets

        lim = cls.limits['Read replicas per master']
        assert lim.api_limit == 5
        assert lim.get_current_usage() == usage_replicas

        lim = cls.limits['DB Clusters']
        assert lim.api_limit == 40
        assert lim.get_current_usage()[0].get_value() == 3

        lim = cls.limits['DB Cluster Parameter Groups']
        assert lim.api_limit == 51
        assert lim.get_current_usage()[0].get_value() == 6