예제 #1
0
    def test_quota_sets_patch_when_service_is_disabled(self, qc, bc, nc):
        quota_data = dict(cores='15',
                          instances='5',
                          ram='50000',
                          metadata_items='150',
                          injected_files='5',
                          injected_file_content_bytes='10240',
                          floating_ips='50',
                          fixed_ips='5',
                          security_groups='10',
                          security_group_rules='100')

        request = self.mock_rest_request(body='''
            {"cores": "15", "ram": "50000", "instances": "5",
             "metadata_items": "150", "injected_files": "5",
             "injected_file_content_bytes": "10240", "floating_ips": "50",
             "fixed_ips": "5", "security_groups": "10" ,
             "security_group_rules": "100", "volumes": "10"}
        ''')

        qc.get_disabled_quotas.return_value = {}
        qc.NOVA_QUOTA_FIELDS = {n for n in quota_data}
        bc.is_service_enabled.return_value = False

        response = nova.QuotaSets().patch(request, 'spam123')

        self.assertStatusCode(response, 501)
        self.assertEqual(response.content.decode('utf-8'),
                         '"Service Nova is disabled."')
        nc.tenant_quota_update.assert_not_called()
예제 #2
0
    def test_quota_sets_patch(self):
        quota_data = dict(cores='15',
                          instances='5',
                          ram='50000',
                          metadata_items='150',
                          injected_files='5',
                          injected_file_content_bytes='10240',
                          floating_ips='50',
                          fixed_ips='5',
                          security_groups='10',
                          security_group_rules='100')

        request = self.mock_rest_request(body='''
            {"cores": "15", "ram": "50000", "instances": "5",
             "metadata_items": "150", "injected_files": "5",
             "injected_file_content_bytes": "10240", "floating_ips": "50",
             "fixed_ips": "5", "security_groups": "10" ,
             "security_group_rules": "100", "volumes": "10"}
        ''')

        self.mock_get_disabled_quotas.return_value = set()
        self.mock_is_service_enabled.return_value = True
        self.mock_tenant_quota_update.return_value = None

        with mock.patch.object(quotas, 'NOVA_QUOTA_FIELDS',
                               {n
                                for n in quota_data}):
            response = nova.QuotaSets().patch(request, 'spam123')

        self.assertStatusCode(response, 204)
        self.assertEqual(response.content.decode('utf-8'), '')
        self.mock_is_service_enabled.assert_called_once_with(
            request, 'compute')
        self.mock_get_disabled_quotas.assert_called_once_with(request)
        self.mock_tenant_quota_update.assert_called_once_with(
            request, 'spam123', **quota_data)