diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-04-02 03:47:30 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-04-02 03:47:30 +0000 |
commit | 8ff28fc52f56fb1fceb5a71098293fd838a679e5 (patch) | |
tree | 087911d6e1a33a86a0d1f9cac917a1ccdb9d0dcd | |
parent | 46464a0a3cac1ba3f8b71fa8cae6c75ecb5b273c (diff) | |
parent | b9507417fe7d40a7023d85131a73e56b87390672 (diff) | |
download | python-troveclient-8ff28fc52f56fb1fceb5a71098293fd838a679e5.tar.gz |
Merge "Fix create call for security group rules"
-rw-r--r-- | troveclient/tests/test_secgroups.py | 22 | ||||
-rw-r--r-- | troveclient/utils.py | 7 | ||||
-rw-r--r-- | troveclient/v1/security_groups.py | 23 | ||||
-rw-r--r-- | troveclient/v1/shell.py | 16 |
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>', |