summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2012-03-26 20:38:03 +0000
committerVishvananda Ishaya <vishvananda@gmail.com>2012-03-26 21:06:01 +0000
commit1892c2851d33eb2f5e6bb1faf0610c710888cd68 (patch)
tree498d2c4a7d605efa31d46860b9afa3c42aac5cda
parent3433fd65d5f70d83ffa4db013f96c55970ea293e (diff)
Allow self-referential groups to be created
fixes bug 965674 Change-Id: I41db135f6437e1f1cb496528ae4d134c0d9cb744
-rw-r--r--nova/api/openstack/compute/contrib/security_groups.py4
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_security_groups.py9
2 files changed, 6 insertions, 7 deletions
diff --git a/nova/api/openstack/compute/contrib/security_groups.py b/nova/api/openstack/compute/contrib/security_groups.py
index 3c7a0dcbe..0d85c7b87 100644
--- a/nova/api/openstack/compute/contrib/security_groups.py
+++ b/nova/api/openstack/compute/contrib/security_groups.py
@@ -414,10 +414,6 @@ class SecurityGroupRulesController(SecurityGroupControllerBase):
msg = _("Parent or group id is not integer")
raise exception.InvalidInput(reason=msg)
- if parent_group_id == group_id:
- msg = _("Parent group id and group id cannot be same")
- raise exception.InvalidInput(reason=msg)
-
values['group_id'] = group_id
#check if groupId exists
db.security_group_get(context, group_id)
diff --git a/nova/tests/api/openstack/compute/contrib/test_security_groups.py b/nova/tests/api/openstack/compute/contrib/test_security_groups.py
index a9422cd26..0cf66ec6e 100644
--- a/nova/tests/api/openstack/compute/contrib/test_security_groups.py
+++ b/nova/tests/api/openstack/compute/contrib/test_security_groups.py
@@ -784,11 +784,14 @@ class TestSecurityGroupRules(test.TestCase):
req, {'security_group_rule': rule})
def test_create_with_same_group_parent_id_and_group_id(self):
- rule = security_group_rule_template(group_id=2)
+ rule = security_group_rule_template(group_id=1, parent_group_id=1)
req = fakes.HTTPRequest.blank('/v2/fake/os-security-group-rules')
- self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
- req, {'security_group_rule': rule})
+ res_dict = self.controller.create(req, {'security_group_rule': rule})
+ security_group_rule = res_dict['security_group_rule']
+ self.assertNotEquals(security_group_rule['id'], 0)
+ self.assertEquals(security_group_rule['parent_group_id'], 1)
+ self.assertEquals(security_group_rule['id'], 1)
def _test_create_with_no_ports_and_no_group(self, proto):
rule = {'ip_protocol': proto, 'parent_group_id': '2'}