Calculate default security group into quota usage
Create the related quota usage when creating the default security group for user. Change-Id: Ide1de160814a5937f71e07f3ab10ce2bba8886f1 Closes-bug: 1271381
This commit is contained in:
parent
65150a6e11
commit
af2dc1a977
|
@ -3806,6 +3806,24 @@ def security_group_ensure_default(context):
|
|||
'project_id': context.project_id}
|
||||
default_group = _security_group_create(context, values,
|
||||
session=session)
|
||||
usage = model_query(context, models.QuotaUsage,
|
||||
read_deleted="no", session=session).\
|
||||
filter_by(project_id=context.project_id).\
|
||||
filter_by(user_id=context.user_id).\
|
||||
filter_by(resource='security_groups')
|
||||
# Create quota usage for auto created default security group
|
||||
if not usage.first():
|
||||
elevated = context.elevated()
|
||||
_quota_usage_create(elevated,
|
||||
context.project_id,
|
||||
context.user_id,
|
||||
'security_groups',
|
||||
1, 0,
|
||||
None,
|
||||
session=session)
|
||||
else:
|
||||
usage.update({'in_use': int(usage.first().in_use) + 1})
|
||||
|
||||
default_rules = _security_group_rule_get_default_query(context,
|
||||
session=session).all()
|
||||
for default_rule in default_rules:
|
||||
|
|
|
@ -449,7 +449,7 @@ class CloudTestCase(test.TestCase):
|
|||
|
||||
def test_security_group_quota_limit(self):
|
||||
self.flags(quota_security_groups=10)
|
||||
for i in range(1, CONF.quota_security_groups + 1):
|
||||
for i in range(1, CONF.quota_security_groups):
|
||||
name = 'test name %i' % i
|
||||
descript = 'test description %i' % i
|
||||
create = self.cloud.create_security_group
|
||||
|
|
|
@ -272,7 +272,7 @@ class TestSecurityGroups(test.TestCase):
|
|||
|
||||
def test_create_security_group_quota_limit(self):
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups')
|
||||
for num in range(1, CONF.quota_security_groups + 1):
|
||||
for num in range(1, CONF.quota_security_groups):
|
||||
name = 'test%s' % num
|
||||
sg = security_group_template(name=name)
|
||||
res_dict = self.controller.create(req, {'security_group': sg})
|
||||
|
|
|
@ -1313,6 +1313,8 @@ class SecurityGroupTestCase(test.TestCase, ModelsObjectComparatorMixin):
|
|||
self.assertEqual(expected, real)
|
||||
|
||||
def test_security_group_ensure_default(self):
|
||||
self.ctxt.project_id = 'fake'
|
||||
self.ctxt.user_id = 'fake'
|
||||
self.assertEqual(0, len(db.security_group_get_by_project(
|
||||
self.ctxt,
|
||||
self.ctxt.project_id)))
|
||||
|
@ -1326,6 +1328,12 @@ class SecurityGroupTestCase(test.TestCase, ModelsObjectComparatorMixin):
|
|||
self.assertEqual(1, len(security_groups))
|
||||
self.assertEqual("default", security_groups[0]["name"])
|
||||
|
||||
usage = db.quota_usage_get(self.ctxt,
|
||||
self.ctxt.project_id,
|
||||
'security_groups',
|
||||
self.ctxt.user_id)
|
||||
self.assertEqual(1, usage.in_use)
|
||||
|
||||
def test_security_group_update(self):
|
||||
security_group = self._create_security_group({})
|
||||
new_values = {
|
||||
|
|
Loading…
Reference in New Issue