Merge "Delete network quotas"
This commit is contained in:
commit
c34a0599fd
tempest
@ -362,6 +362,25 @@ class NovaQuotaService(BaseService):
|
|||||||
self.data['compute_quotas'] = quotas['absolute']
|
self.data['compute_quotas'] = quotas['absolute']
|
||||||
|
|
||||||
|
|
||||||
|
class NetworkQuotaService(BaseService):
|
||||||
|
def __init__(self, manager, **kwargs):
|
||||||
|
super(NetworkQuotaService, self).__init__(kwargs)
|
||||||
|
self.client = manager.network_quotas_client
|
||||||
|
|
||||||
|
def delete(self):
|
||||||
|
client = self.client
|
||||||
|
try:
|
||||||
|
client.reset_quotas(self.project_id)
|
||||||
|
except Exception:
|
||||||
|
LOG.exception("Delete Network Quotas exception for 'project %s'.",
|
||||||
|
self.project_id)
|
||||||
|
|
||||||
|
def dry_run(self):
|
||||||
|
resp = [quota for quota in self.client.list_quotas()['quotas']
|
||||||
|
if quota['project_id'] == self.project_id]
|
||||||
|
self.data['network_quotas'] = resp
|
||||||
|
|
||||||
|
|
||||||
# Begin network service classes
|
# Begin network service classes
|
||||||
class BaseNetworkService(BaseService):
|
class BaseNetworkService(BaseService):
|
||||||
def __init__(self, manager, **kwargs):
|
def __init__(self, manager, **kwargs):
|
||||||
@ -1048,6 +1067,7 @@ def get_resource_cleanup_services():
|
|||||||
resource_cleanup_services.append(NetworkService)
|
resource_cleanup_services.append(NetworkService)
|
||||||
resource_cleanup_services.append(NetworkSecGroupService)
|
resource_cleanup_services.append(NetworkSecGroupService)
|
||||||
resource_cleanup_services.append(NetworkSubnetPoolsService)
|
resource_cleanup_services.append(NetworkSubnetPoolsService)
|
||||||
|
resource_cleanup_services.append(NetworkQuotaService)
|
||||||
if IS_CINDER:
|
if IS_CINDER:
|
||||||
resource_cleanup_services.append(SnapshotService)
|
resource_cleanup_services.append(SnapshotService)
|
||||||
resource_cleanup_services.append(VolumeService)
|
resource_cleanup_services.append(VolumeService)
|
||||||
|
@ -196,6 +196,7 @@ class BaseCmdServiceTests(MockFunctionsBase):
|
|||||||
is_save_state=is_save_state,
|
is_save_state=is_save_state,
|
||||||
is_preserve=is_preserve,
|
is_preserve=is_preserve,
|
||||||
is_dry_run=is_dry_run,
|
is_dry_run=is_dry_run,
|
||||||
|
project_id='b8e3ece07bb049138d224436756e3b57',
|
||||||
data={},
|
data={},
|
||||||
saved_state_json=self.saved_state
|
saved_state_json=self.saved_state
|
||||||
)
|
)
|
||||||
@ -533,6 +534,135 @@ class TestVolumeService(BaseCmdServiceTests):
|
|||||||
self._test_saved_state_true([(self.get_method, self.response, 200)])
|
self._test_saved_state_true([(self.get_method, self.response, 200)])
|
||||||
|
|
||||||
|
|
||||||
|
class TestVolumeQuotaService(BaseCmdServiceTests):
|
||||||
|
|
||||||
|
service_class = 'VolumeQuotaService'
|
||||||
|
service_name = 'volume_quota_service'
|
||||||
|
response = {
|
||||||
|
"quota_set": {
|
||||||
|
"groups":
|
||||||
|
{"reserved": 0, "limit": 10, "in_use": 0},
|
||||||
|
"per_volume_gigabytes":
|
||||||
|
{"reserved": 0, "limit": -1, "in_use": 0},
|
||||||
|
"volumes":
|
||||||
|
{"reserved": 0, "limit": 10, "in_use": 0},
|
||||||
|
"gigabytes":
|
||||||
|
{"reserved": 0, "limit": 1000, "in_use": 0},
|
||||||
|
"backup_gigabytes":
|
||||||
|
{"reserved": 0, "limit": 1000, "in_use": 0},
|
||||||
|
"snapshots":
|
||||||
|
{"reserved": 0, "limit": 10, "in_use": 0},
|
||||||
|
"volumes_iscsi":
|
||||||
|
{"reserved": 0, "limit": -1, "in_use": 0},
|
||||||
|
"snapshots_iscsi":
|
||||||
|
{"reserved": 0, "limit": -1, "in_use": 0},
|
||||||
|
"backups":
|
||||||
|
{"reserved": 0, "limit": 10, "in_use": 0},
|
||||||
|
"gigabytes_iscsi":
|
||||||
|
{"reserved": 0, "limit": -1, "in_use": 0},
|
||||||
|
"id": "b8e3ece07bb049138d224436756e3b57"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_delete_fail(self):
|
||||||
|
delete_mock = [(self.delete_method, 'error', None),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock, fail=True)
|
||||||
|
|
||||||
|
def test_delete_pass(self):
|
||||||
|
delete_mock = [(self.delete_method, None, 200),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock)
|
||||||
|
|
||||||
|
def test_dry_run(self):
|
||||||
|
dry_mock = [(self.get_method, self.response, 200),
|
||||||
|
(self.delete_method, "delete", None)]
|
||||||
|
self._test_dry_run_true(dry_mock)
|
||||||
|
|
||||||
|
|
||||||
|
class TestNovaQuotaService(BaseCmdServiceTests):
|
||||||
|
|
||||||
|
service_class = 'NovaQuotaService'
|
||||||
|
service_name = 'nova_quota_service'
|
||||||
|
response = {
|
||||||
|
"limits": {
|
||||||
|
"rate": [],
|
||||||
|
"absolute": {
|
||||||
|
"maxServerMeta": 128,
|
||||||
|
"maxPersonality": 5,
|
||||||
|
"totalServerGroupsUsed": 0,
|
||||||
|
"maxImageMeta": 128,
|
||||||
|
"maxPersonalitySize": 10240,
|
||||||
|
"maxTotalKeypairs": 100,
|
||||||
|
"maxSecurityGroupRules": 20,
|
||||||
|
"maxServerGroups": 10,
|
||||||
|
"totalCoresUsed": 0,
|
||||||
|
"totalRAMUsed": 0,
|
||||||
|
"totalInstancesUsed": 0,
|
||||||
|
"maxSecurityGroups": 10,
|
||||||
|
"totalFloatingIpsUsed": 0,
|
||||||
|
"maxTotalCores": 20,
|
||||||
|
"maxServerGroupMembers": 10,
|
||||||
|
"maxTotalFloatingIps": 10,
|
||||||
|
"totalSecurityGroupsUsed": 0,
|
||||||
|
"maxTotalInstances": 10,
|
||||||
|
"maxTotalRAMSize": 51200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_delete_fail(self):
|
||||||
|
delete_mock = [(self.delete_method, 'error', None),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock, fail=True)
|
||||||
|
|
||||||
|
def test_delete_pass(self):
|
||||||
|
delete_mock = [(self.delete_method, None, 202),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock)
|
||||||
|
|
||||||
|
def test_dry_run(self):
|
||||||
|
dry_mock = [(self.get_method, self.response, 200),
|
||||||
|
(self.delete_method, "delete", None)]
|
||||||
|
self._test_dry_run_true(dry_mock)
|
||||||
|
|
||||||
|
|
||||||
|
class TestNetworkQuotaService(BaseCmdServiceTests):
|
||||||
|
|
||||||
|
service_class = 'NetworkQuotaService'
|
||||||
|
service_name = 'network_quota_service'
|
||||||
|
response = {
|
||||||
|
"quotas": [{
|
||||||
|
"subnet": 110,
|
||||||
|
"network": 100,
|
||||||
|
"floatingip": 50,
|
||||||
|
"tenant_id": "81e8490db559474dacb2212fca9cca2d",
|
||||||
|
"subnetpool": -1,
|
||||||
|
"security_group_rule": 100,
|
||||||
|
"trunk": -1,
|
||||||
|
"security_group": 10,
|
||||||
|
"router": 10,
|
||||||
|
"rbac_policy": 10, "project_id":
|
||||||
|
"81e8490db559474dacb2212fca9cca2d", "port": 500
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_delete_fail(self):
|
||||||
|
delete_mock = [(self.delete_method, 'error', None),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock, fail=True)
|
||||||
|
|
||||||
|
def test_delete_pass(self):
|
||||||
|
delete_mock = [(self.delete_method, None, 204),
|
||||||
|
(self.log_method, 'exception', None)]
|
||||||
|
self._test_delete(delete_mock)
|
||||||
|
|
||||||
|
def test_dry_run(self):
|
||||||
|
dry_mock = [(self.get_method, self.response, 200),
|
||||||
|
(self.delete_method, "delete", None)]
|
||||||
|
self._test_dry_run_true(dry_mock)
|
||||||
|
|
||||||
|
|
||||||
# Begin network service classes
|
# Begin network service classes
|
||||||
class TestNetworkService(BaseCmdServiceTests):
|
class TestNetworkService(BaseCmdServiceTests):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user