GET /security-groups now responds with rules
RM11427 Updates the views for security groups to always include the rules rather than lists of rule ids.
This commit is contained in:
@@ -156,7 +156,7 @@ def _make_security_group_dict(security_group, fields=None):
|
|||||||
"name": security_group.get("name"),
|
"name": security_group.get("name"),
|
||||||
"tenant_id": security_group.get("tenant_id")}
|
"tenant_id": security_group.get("tenant_id")}
|
||||||
res["security_group_rules"] = [
|
res["security_group_rules"] = [
|
||||||
r.id for r in security_group["rules"]]
|
_make_security_group_rule_dict(r) for r in security_group["rules"]]
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class TestQuarkGetSecurityGroups(test_quark_plugin.TestQuarkPlugin):
|
|||||||
rule_mods = []
|
rule_mods = []
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
r = models.SecurityGroupRule()
|
r = models.SecurityGroupRule()
|
||||||
r.update(dict(id=rule))
|
r.update(rule)
|
||||||
rule_mods.append(r)
|
rule_mods.append(r)
|
||||||
return rule_mods
|
return rule_mods
|
||||||
|
|
||||||
@@ -49,8 +49,10 @@ class TestQuarkGetSecurityGroups(test_quark_plugin.TestQuarkPlugin):
|
|||||||
yield
|
yield
|
||||||
|
|
||||||
def test_get_security_groups_list(self):
|
def test_get_security_groups_list(self):
|
||||||
|
rule = {"ethertype": protocols.ETHERTYPES["IPv4"],
|
||||||
|
"protocol": protocols.PROTOCOLS["tcp"]}
|
||||||
group = {"name": "foo", "description": "bar",
|
group = {"name": "foo", "description": "bar",
|
||||||
"tenant_id": self.context.tenant_id, "rules": [1]}
|
"tenant_id": self.context.tenant_id, "rules": [rule]}
|
||||||
with self._stubs([group]):
|
with self._stubs([group]):
|
||||||
result = self.plugin.get_security_groups(self.context, {})
|
result = self.plugin.get_security_groups(self.context, {})
|
||||||
group = result[0]
|
group = result[0]
|
||||||
@@ -58,18 +60,23 @@ class TestQuarkGetSecurityGroups(test_quark_plugin.TestQuarkPlugin):
|
|||||||
self.assertEqual("foo", group["name"])
|
self.assertEqual("foo", group["name"])
|
||||||
self.assertEqual("bar", group["description"])
|
self.assertEqual("bar", group["description"])
|
||||||
rule = group["security_group_rules"][0]
|
rule = group["security_group_rules"][0]
|
||||||
self.assertEqual(1, rule)
|
self.assertEqual("IPv4", rule["ethertype"])
|
||||||
|
self.assertEqual("TCP", rule["protocol"])
|
||||||
|
|
||||||
def test_get_security_group(self):
|
def test_get_security_group(self):
|
||||||
|
rule = {"ethertype": protocols.ETHERTYPES["IPv4"],
|
||||||
|
"protocol": protocols.PROTOCOLS["tcp"]}
|
||||||
|
|
||||||
group = {"name": "foo", "description": "bar",
|
group = {"name": "foo", "description": "bar",
|
||||||
"tenant_id": self.context.tenant_id, "rules": [1]}
|
"tenant_id": self.context.tenant_id, "rules": [rule]}
|
||||||
with self._stubs(group):
|
with self._stubs(group):
|
||||||
result = self.plugin.get_security_group(self.context, 1)
|
result = self.plugin.get_security_group(self.context, 1)
|
||||||
self.assertEqual("fake", result["tenant_id"])
|
self.assertEqual("fake", result["tenant_id"])
|
||||||
self.assertEqual("foo", result["name"])
|
self.assertEqual("foo", result["name"])
|
||||||
self.assertEqual("bar", result["description"])
|
self.assertEqual("bar", result["description"])
|
||||||
rule = result["security_group_rules"][0]
|
rule = result["security_group_rules"][0]
|
||||||
self.assertEqual(1, rule)
|
self.assertEqual("IPv4", rule["ethertype"])
|
||||||
|
self.assertEqual("TCP", rule["protocol"])
|
||||||
|
|
||||||
def test_get_security_group_group_not_found_fails(self):
|
def test_get_security_group_group_not_found_fails(self):
|
||||||
with self._stubs(security_groups=None):
|
with self._stubs(security_groups=None):
|
||||||
@@ -133,8 +140,10 @@ class TestQuarkGetSecurityGroupRules(test_quark_plugin.TestQuarkPlugin):
|
|||||||
|
|
||||||
class TestQuarkUpdateSecurityGroup(test_quark_plugin.TestQuarkPlugin):
|
class TestQuarkUpdateSecurityGroup(test_quark_plugin.TestQuarkPlugin):
|
||||||
def test_update_security_group(self):
|
def test_update_security_group(self):
|
||||||
|
rule_dict = {"ethertype": protocols.ETHERTYPES["IPv4"],
|
||||||
|
"protocol": protocols.PROTOCOLS["tcp"]}
|
||||||
rule = models.SecurityGroupRule()
|
rule = models.SecurityGroupRule()
|
||||||
rule.update(dict(id=1))
|
rule.update(rule_dict)
|
||||||
group = {"name": "foo", "description": "bar",
|
group = {"name": "foo", "description": "bar",
|
||||||
"tenant_id": self.context.tenant_id, "rules": [rule]}
|
"tenant_id": self.context.tenant_id, "rules": [rule]}
|
||||||
updated_group = group.copy()
|
updated_group = group.copy()
|
||||||
|
|||||||
Reference in New Issue
Block a user