예제 #1
0
 def test_find_usage(self):
     with patch('%s._update_limits_from_api' % pb) as mock_update:
         cls = _IamService(21, 43)
         assert cls._have_usage is False
         cls.find_usage()
     assert mock_update.mock_calls == [call()]
     assert cls._have_usage is True
예제 #2
0
 def test_find_usage(self):
     with patch('%s._update_limits_from_api' % pb) as mock_update:
         cls = _IamService(21, 43)
         assert cls._have_usage is False
         cls.find_usage()
     assert mock_update.mock_calls == [call()]
     assert cls._have_usage is True
예제 #3
0
 def test_get_limits_again(self):
     """test that existing limits dict is returned on subsequent calls"""
     mock_limits = Mock()
     cls = _IamService(21, 43)
     cls.limits = mock_limits
     res = cls.get_limits()
     assert res == mock_limits
예제 #4
0
 def test_get_limits_again(self):
     """test that existing limits dict is returned on subsequent calls"""
     mock_limits = Mock()
     cls = _IamService(21, 43)
     cls.limits = mock_limits
     res = cls.get_limits()
     assert res == mock_limits
예제 #5
0
 def test_init(self):
     """test __init__()"""
     cls = _IamService(21, 43)
     assert cls.service_name == 'IAM'
     assert cls.api_name == 'iam'
     assert cls.conn is None
     assert cls.warning_threshold == 21
     assert cls.critical_threshold == 43
예제 #6
0
 def test_init(self):
     """test __init__()"""
     cls = _IamService(21, 43)
     assert cls.service_name == 'IAM'
     assert cls.api_name == 'iam'
     assert cls.conn is None
     assert cls.warning_threshold == 21
     assert cls.critical_threshold == 43
예제 #7
0
 def test_get_limits(self):
     cls = _IamService(21, 43)
     cls.limits = {}
     res = cls.get_limits()
     assert sorted(res.keys()) == sorted([
         'Groups',
         'Users',
         'Roles',
         'Instance profiles',
         'Server certificates',
         'Policies',
         'Policy Versions In Use',
     ])
     for name, limit in res.items():
         assert limit.service == cls
         assert limit.def_warning_threshold == 21
         assert limit.def_critical_threshold == 43
예제 #8
0
 def test_get_limits(self):
     cls = _IamService(21, 43)
     cls.limits = {}
     res = cls.get_limits()
     assert sorted(res.keys()) == sorted([
         'Groups',
         'Users',
         'Roles',
         'Instance profiles',
         'Server certificates',
         'Policies',
         'Policy Versions In Use',
     ])
     for name, limit in res.items():
         assert limit.service == cls
         assert limit.def_warning_threshold == 21
         assert limit.def_critical_threshold == 43
예제 #9
0
    def test_update_limits_from_api(self):
        mock_summary = Mock(
            summary_map=result_fixtures.IAM.test_update_limits_from_api
        )
        mock_conn = Mock()
        mock_conn.AccountSummary.return_value = mock_summary
        with patch('%s.logger' % pbm) as mock_logger:
            with patch('%s.connect_resource' % pb) as mock_connect:
                cls = _IamService(21, 43)
                cls.resource_conn = mock_conn
                cls._update_limits_from_api()
        assert mock_connect.mock_calls == [call()]
        assert mock_conn.mock_calls == [call.AccountSummary()]

        assert call.debug('Ignoring IAM AccountSummary attribute: %s',
                          'GroupsPerUserQuota') in mock_logger.mock_calls

        lim = cls.limits['Groups']
        assert lim.api_limit == 100
        assert lim.get_current_usage()[0].get_value() == 25

        lim = cls.limits['Users']
        assert lim.api_limit == 5000
        assert lim.get_current_usage()[0].get_value() == 152

        lim = cls.limits['Roles']
        assert lim.api_limit == 501
        assert lim.get_current_usage()[0].get_value() == 375

        lim = cls.limits['Instance profiles']
        assert lim.api_limit == 500
        assert lim.get_current_usage()[0].get_value() == 394

        lim = cls.limits['Server certificates']
        assert lim.api_limit == 101
        assert lim.get_current_usage()[0].get_value() == 55

        lim = cls.limits['Policies']
        assert lim.api_limit == 1000
        assert lim.get_current_usage()[0].get_value() == 17

        lim = cls.limits['Policy Versions In Use']
        assert lim.api_limit == 10000
        assert lim.get_current_usage()[0].get_value() == 53
예제 #10
0
    def test_update_limits_from_api(self):
        mock_summary = Mock(
            summary_map=result_fixtures.IAM.test_update_limits_from_api)
        mock_conn = Mock()
        mock_conn.AccountSummary.return_value = mock_summary
        with patch('%s.logger' % pbm) as mock_logger:
            with patch('%s.connect_resource' % pb) as mock_connect:
                cls = _IamService(21, 43)
                cls.resource_conn = mock_conn
                cls._update_limits_from_api()
        assert mock_connect.mock_calls == [call()]
        assert mock_conn.mock_calls == [call.AccountSummary()]

        assert call.debug('Ignoring IAM AccountSummary attribute: %s',
                          'GroupsPerUserQuota') in mock_logger.mock_calls

        lim = cls.limits['Groups']
        assert lim.api_limit == 100
        assert lim.get_current_usage()[0].get_value() == 25

        lim = cls.limits['Users']
        assert lim.api_limit == 5000
        assert lim.get_current_usage()[0].get_value() == 152

        lim = cls.limits['Roles']
        assert lim.api_limit == 501
        assert lim.get_current_usage()[0].get_value() == 375

        lim = cls.limits['Instance profiles']
        assert lim.api_limit == 500
        assert lim.get_current_usage()[0].get_value() == 394

        lim = cls.limits['Server certificates']
        assert lim.api_limit == 101
        assert lim.get_current_usage()[0].get_value() == 55

        lim = cls.limits['Policies']
        assert lim.api_limit == 1000
        assert lim.get_current_usage()[0].get_value() == 17

        lim = cls.limits['Policy Versions In Use']
        assert lim.api_limit == 10000
        assert lim.get_current_usage()[0].get_value() == 53
예제 #11
0
 def test_required_iam_permissions(self):
     cls = _IamService(21, 43)
     assert cls.required_iam_permissions() == [
         'iam:GetAccountSummary'
     ]
예제 #12
0
 def test_required_iam_permissions(self):
     cls = _IamService(21, 43)
     assert cls.required_iam_permissions() == ['iam:GetAccountSummary']