Merge "Adds support for security group/rules quotas."
This commit is contained in:
commit
f37bbae5f6
@ -39,7 +39,8 @@ class QuotaClassSetManager(base.ManagerWithFind):
|
||||
injected_file_content_bytes=None, injected_file_path_bytes=None,
|
||||
volumes=None, gigabytes=None,
|
||||
ram=None, floating_ips=None, instances=None,
|
||||
injected_files=None, cores=None, key_pairs=None):
|
||||
injected_files=None, cores=None, key_pairs=None,
|
||||
security_groups=None, security_group_rules=None):
|
||||
|
||||
body = {'quota_class_set': {
|
||||
'class_name': class_name,
|
||||
@ -53,7 +54,9 @@ class QuotaClassSetManager(base.ManagerWithFind):
|
||||
'floating_ips': floating_ips,
|
||||
'instances': instances,
|
||||
'injected_files': injected_files,
|
||||
'cores': cores}}
|
||||
'cores': cores,
|
||||
'security_groups': security_groups,
|
||||
'security_group_rules': security_group_rules}}
|
||||
|
||||
for key in body['quota_class_set'].keys():
|
||||
if body['quota_class_set'][key] is None:
|
||||
|
@ -40,7 +40,8 @@ class QuotaSetManager(base.ManagerWithFind):
|
||||
injected_file_content_bytes=None, injected_file_path_bytes=None,
|
||||
volumes=None, gigabytes=None,
|
||||
ram=None, floating_ips=None, instances=None,
|
||||
injected_files=None, cores=None, key_pairs=None):
|
||||
injected_files=None, cores=None, key_pairs=None,
|
||||
security_groups=None, security_group_rules=None):
|
||||
|
||||
body = {'quota_set': {
|
||||
'tenant_id': tenant_id,
|
||||
@ -54,7 +55,9 @@ class QuotaSetManager(base.ManagerWithFind):
|
||||
'floating_ips': floating_ips,
|
||||
'instances': instances,
|
||||
'injected_files': injected_files,
|
||||
'cores': cores}}
|
||||
'cores': cores,
|
||||
'security_groups': security_groups,
|
||||
'security_group_rules': security_group_rules}}
|
||||
|
||||
for key in body['quota_set'].keys():
|
||||
if body['quota_set'][key] is None:
|
||||
|
@ -2394,7 +2394,8 @@ def do_ssh(cs, args):
|
||||
_quota_resources = ['instances', 'cores', 'ram', 'volumes', 'gigabytes',
|
||||
'floating_ips', 'metadata_items', 'injected_files',
|
||||
'key_pairs', 'injected_file_content_bytes',
|
||||
'injected_file_path_bytes']
|
||||
'injected_file_path_bytes', 'security_groups',
|
||||
'security_group_rules']
|
||||
|
||||
|
||||
def _quota_show(quotas):
|
||||
@ -2509,6 +2510,16 @@ def do_quota_defaults(cs, args):
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "key-pairs" quota.')
|
||||
@utils.arg('--security-groups',
|
||||
metavar='<security-groups>',
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "security-groups" quota.')
|
||||
@utils.arg('--security-group-rules',
|
||||
metavar='<security-group-rules>',
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "security-group-rules" quota.')
|
||||
def do_quota_update(cs, args):
|
||||
"""Update the quotas for a tenant."""
|
||||
|
||||
@ -2589,6 +2600,16 @@ def do_quota_class_show(cs, args):
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "key-pairs" quota.')
|
||||
@utils.arg('--security-groups',
|
||||
metavar='<security-groups>',
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "security-groups" quota.')
|
||||
@utils.arg('--security-group-rules',
|
||||
metavar='<security-group-rules>',
|
||||
type=int,
|
||||
default=None,
|
||||
help='New value for the "security-group-rules" quota.')
|
||||
def do_quota_class_update(cs, args):
|
||||
"""Update the quotas for a quota class."""
|
||||
|
||||
|
@ -741,7 +741,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
'instances': 1,
|
||||
'injected_files': 1,
|
||||
'cores': 1,
|
||||
'keypairs': 1}})
|
||||
'keypairs': 1,
|
||||
'security_groups': 1,
|
||||
'security_group_rules': 1}})
|
||||
|
||||
def get_os_quota_sets_test_defaults(self):
|
||||
return (200, {'quota_set': {
|
||||
@ -756,7 +758,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
'instances': 1,
|
||||
'injected_files': 1,
|
||||
'cores': 1,
|
||||
'keypairs': 1}})
|
||||
'keypairs': 1,
|
||||
'security_groups': 1,
|
||||
'security_group_rules': 1}})
|
||||
|
||||
def put_os_quota_sets_test(self, body, **kw):
|
||||
assert body.keys() == ['quota_set']
|
||||
@ -774,7 +778,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
'instances': 1,
|
||||
'injected_files': 1,
|
||||
'cores': 1,
|
||||
'keypairs': 1}})
|
||||
'keypairs': 1,
|
||||
'security_groups': 1,
|
||||
'security_group_rules': 1}})
|
||||
|
||||
#
|
||||
# Quota Classes
|
||||
@ -793,7 +799,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
'instances': 1,
|
||||
'injected_files': 1,
|
||||
'cores': 1,
|
||||
'keypairs': 1}})
|
||||
'keypairs': 1,
|
||||
'security_groups': 1,
|
||||
'security_group_rules': 1}})
|
||||
|
||||
def put_os_quota_class_sets_test(self, body, **kw):
|
||||
assert body.keys() == ['quota_class_set']
|
||||
@ -811,7 +819,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
'instances': 1,
|
||||
'injected_files': 1,
|
||||
'cores': 1,
|
||||
'keypairs': 1}})
|
||||
'keypairs': 1,
|
||||
'security_groups': 1,
|
||||
'security_group_rules': 1}})
|
||||
|
||||
#
|
||||
# Security Groups
|
||||
|
Loading…
x
Reference in New Issue
Block a user