75 lines
2.9 KiB
Python
75 lines
2.9 KiB
Python
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||
|
# not use this file except in compliance with the License. You may obtain
|
||
|
# a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
# License for the specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
|
||
|
from novaclient.tests.functional.v2.legacy import test_quotas
|
||
|
|
||
|
|
||
|
class TestQuotasNovaClient2_35(test_quotas.TestQuotasNovaClient):
|
||
|
"""Nova quotas functional tests."""
|
||
|
|
||
|
COMPUTE_API_VERSION = "2.35"
|
||
|
|
||
|
_quota_resources = ['instances', 'cores', 'ram',
|
||
|
'floating_ips', 'fixed_ips', 'metadata_items',
|
||
|
'injected_files', 'injected_file_content_bytes',
|
||
|
'injected_file_path_bytes', 'key_pairs',
|
||
|
'security_groups', 'security_group_rules',
|
||
|
'server_groups', 'server_group_members']
|
||
|
|
||
|
def test_quotas_update(self):
|
||
|
# `nova quota-update` requires tenant-id.
|
||
|
tenant_id = self._get_project_id(self.cli_clients.tenant_name)
|
||
|
|
||
|
self.addCleanup(self.client.quotas.delete, tenant_id)
|
||
|
|
||
|
original_quotas = self.client.quotas.get(tenant_id)
|
||
|
|
||
|
difference = 10
|
||
|
params = [tenant_id]
|
||
|
for quota_name in self._quota_resources:
|
||
|
params.append("--%(name)s %(value)s" % {
|
||
|
"name": quota_name.replace("_", "-"),
|
||
|
"value": getattr(original_quotas, quota_name) + difference})
|
||
|
|
||
|
self.nova("quota-update", params=" ".join(params))
|
||
|
|
||
|
updated_quotas = self.client.quotas.get(tenant_id)
|
||
|
|
||
|
for quota_name in self._quota_resources:
|
||
|
self.assertEqual(getattr(original_quotas, quota_name),
|
||
|
getattr(updated_quotas, quota_name) - difference)
|
||
|
|
||
|
|
||
|
class TestQuotasNovaClient2_36(TestQuotasNovaClient2_35):
|
||
|
"""Nova quotas functional tests."""
|
||
|
|
||
|
COMPUTE_API_VERSION = "2.36"
|
||
|
|
||
|
# The 2.36 microversion stops proxying network quota resources like
|
||
|
# floating/fixed IPs and security groups/rules.
|
||
|
_quota_resources = ['instances', 'cores', 'ram',
|
||
|
'metadata_items', 'injected_files',
|
||
|
'injected_file_content_bytes',
|
||
|
'injected_file_path_bytes', 'key_pairs',
|
||
|
'server_groups', 'server_group_members']
|
||
|
|
||
|
|
||
|
class TestQuotasNovaClient2_57(TestQuotasNovaClient2_35):
|
||
|
"""Nova quotas functional tests."""
|
||
|
|
||
|
COMPUTE_API_VERSION = "2.latest"
|
||
|
|
||
|
# The 2.57 microversion deprecates injected_file* quotas.
|
||
|
_quota_resources = ['instances', 'cores', 'ram',
|
||
|
'metadata_items', 'key_pairs',
|
||
|
'server_groups', 'server_group_members']
|