summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-04-02 03:47:30 +0000
committerGerrit Code Review <review@openstack.org>2014-04-02 03:47:30 +0000
commit8ff28fc52f56fb1fceb5a71098293fd838a679e5 (patch)
tree087911d6e1a33a86a0d1f9cac917a1ccdb9d0dcd
parent46464a0a3cac1ba3f8b71fa8cae6c75ecb5b273c (diff)
parentb9507417fe7d40a7023d85131a73e56b87390672 (diff)
downloadpython-troveclient-8ff28fc52f56fb1fceb5a71098293fd838a679e5.tar.gz
Merge "Fix create call for security group rules"
-rw-r--r--troveclient/tests/test_secgroups.py22
-rw-r--r--troveclient/utils.py7
-rw-r--r--troveclient/v1/security_groups.py23
-rw-r--r--troveclient/v1/shell.py16
4 files changed, 29 insertions, 39 deletions
diff --git a/troveclient/tests/test_secgroups.py b/troveclient/tests/test_secgroups.py
index 3d28ebf..ecb6464 100644
--- a/troveclient/tests/test_secgroups.py
+++ b/troveclient/tests/test_secgroups.py
@@ -82,32 +82,28 @@ class SecGroupRuleTest(testtools.TestCase):
self.security_group_rule.from_port = 80
self.security_group_rule.to_port = 80
self.security_group_rule.cidr = "0.0.0.0//0"
- representation = \
- "<SecurityGroupRule: ( \
- Security Group id: %d, \
- Protocol: %s, \
- From_Port: %d, \
- To_Port: %d, \
- CIDR: %s )>" % (1, "tcp", 80, 80, "0.0.0.0//0")
+ representation = (
+ "<SecurityGroupRule: "
+ "( Security Group id: %d, "
+ "Protocol: %s, From_Port: %d, "
+ "To_Port: %d, CIDR: %s )>"
+ % (1, "tcp", 80, 80, "0.0.0.0//0")
+ )
self.assertEqual(representation,
self.security_group_rule.__repr__())
def test_create(self):
- def side_effect_func(path, body, inst):
+ def side_effect_func(path, body, inst, return_raw=True):
return path, body, inst
self.security_group_rules._create = mock.Mock(
side_effect=side_effect_func
)
- p, b, i = self.security_group_rules.create(1, "tcp",
- 80, 80, "0.0.0.0//0")
+ p, b, i = self.security_group_rules.create(1, "0.0.0.0//0")
self.assertEqual("/security-group-rules", p)
self.assertEqual("security_group_rule", i)
self.assertEqual(1, b["security_group_rule"]["group_id"])
- self.assertEqual("tcp", b["security_group_rule"]["protocol"])
- self.assertEqual(80, b["security_group_rule"]["from_port"])
- self.assertEqual(80, b["security_group_rule"]["to_port"])
self.assertEqual("0.0.0.0//0", b["security_group_rule"]["cidr"])
def test_delete(self):
diff --git a/troveclient/utils.py b/troveclient/utils.py
index 328bc13..b5e3965 100644
--- a/troveclient/utils.py
+++ b/troveclient/utils.py
@@ -138,7 +138,7 @@ def _print(pt, order):
print(strutils.safe_encode(pt.get_string(sortby=order)))
-def print_list(objs, fields, formatters={}, order_by=None):
+def print_list(objs, fields, formatters={}, order_by=None, obj_is_dict=False):
try:
_output_override(objs, 'list')
return
@@ -158,7 +158,10 @@ def print_list(objs, fields, formatters={}, order_by=None):
field_name = field.replace(' ', '_')
else:
field_name = field.lower().replace(' ', '_')
- data = getattr(o, field_name, '')
+ if not obj_is_dict:
+ data = getattr(o, field_name, '')
+ else:
+ data = o.get(field_name, '')
row.append(data)
pt.add_row(row)
diff --git a/troveclient/v1/security_groups.py b/troveclient/v1/security_groups.py
index f22c70c..86be637 100644
--- a/troveclient/v1/security_groups.py
+++ b/troveclient/v1/security_groups.py
@@ -23,6 +23,7 @@ class SecurityGroup(base.Resource):
"""
Security Group is a resource used to hold security group information.
"""
+
def __repr__(self):
return "<SecurityGroup: %s>" % self.name
@@ -57,15 +58,14 @@ class SecurityGroupRule(base.Resource):
Security Group Rule is a resource used to hold security group
rule related information.
"""
+
def __repr__(self):
- return \
- "<SecurityGroupRule: ( \
- Security Group id: %d, \
- Protocol: %s, \
- From_Port: %d, \
- To_Port: %d, \
- CIDR: %s )>" % (self.group_id, self.protocol, self.from_port,
- self.to_port, self.cidr)
+ return ("<SecurityGroupRule: "
+ "( Security Group id: %d, "
+ "Protocol: %s, From_Port: %d, "
+ "To_Port: %d, CIDR: %s )>"
+ % (self.group_id, self.protocol,
+ self.from_port, self.to_port, self.cidr))
class SecurityGroupRules(base.ManagerWithFind):
@@ -74,19 +74,16 @@ class SecurityGroupRules(base.ManagerWithFind):
"""
resource_class = SecurityGroupRule
- def create(self, group_id, protocol, from_port, to_port, cidr):
+ def create(self, group_id, cidr):
"""
Create a new security group rule.
"""
body = {"security_group_rule": {
"group_id": group_id,
- "protocol": protocol,
- "from_port": from_port,
- "to_port": to_port,
"cidr": cidr
}}
return self._create("/security-group-rules", body,
- "security_group_rule")
+ "security_group_rule", return_raw=True)
def delete(self, security_group_rule):
"""
diff --git a/troveclient/v1/shell.py b/troveclient/v1/shell.py
index 58a4c25..ecee374 100644
--- a/troveclient/v1/shell.py
+++ b/troveclient/v1/shell.py
@@ -569,22 +569,16 @@ def do_secgroup_show(cs, args):
@utils.arg('security_group', metavar='<security_group>',
help='Security group name.')
-@utils.arg('protocol', metavar='<protocol>',
- help='IP protocol (icmp, tcp, udp).')
-@utils.arg('from_port', metavar='<from_port>',
- help='Port at start of range.')
-@utils.arg('to_port', metavar='<to_port>', help='Port at end of range.')
@utils.arg('cidr', metavar='<cidr>', help='CIDR address.')
@utils.service_type('database')
def do_secgroup_add_rule(cs, args):
"""Creates a security group rule."""
- rule = cs.security_group_rules.create(args.security_group,
- args.protocol,
- args.from_port,
- args.to_port,
- args.cidr)
+ rules = cs.security_group_rules.create(
+ args.security_group, args.cidr)
- _print_instance(rule)
+ utils.print_list(rules, [
+ 'id', 'security_group_id', 'protocol',
+ 'from_port', 'to_port', 'cidr', 'created'], obj_is_dict=True)
@utils.arg('security_group_rule', metavar='<security_group_rule>',