Skip to content

Commit 8b2f256

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add 'description' option"
2 parents a1ed375 + 52c4a55 commit 8b2f256

5 files changed

Lines changed: 51 additions & 0 deletions

File tree

doc/source/command-objects/security-group-rule.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Create a new security group rule
2222
[--ingress | --egress]
2323
[--ethertype <ethertype>]
2424
[--project <project> [--project-domain <project-domain>]]
25+
[--description <description>]
2526
<group>
2627
2728
.. option:: --src-ip <ip-address>
@@ -97,6 +98,12 @@ Create a new security group rule
9798
9899
*Network version 2 only*
99100
101+
.. option:: --description <description>
102+
103+
Set security group rule description
104+
105+
*Network version 2 only*
106+
100107
.. describe:: <group>
101108
102109
Create rule in this security group (name or ID)

openstackclient/network/v2/security_group_rule.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ def update_parser_common(self, parser):
109109
return parser
110110

111111
def update_parser_network(self, parser):
112+
parser.add_argument(
113+
'--description',
114+
metavar='<description>',
115+
help=_("Set security group rule description")
116+
)
112117
parser.add_argument(
113118
'--dst-port',
114119
metavar='<port-range>',
@@ -235,6 +240,9 @@ def take_action_network(self, client, parsed_args):
235240
attrs = {}
236241
attrs['protocol'] = self._get_protocol(parsed_args)
237242

243+
if parsed_args.description is not None:
244+
attrs['description'] = parsed_args.description
245+
238246
# NOTE(rtheis): A direction must be specified and ingress
239247
# is the default.
240248
if parsed_args.ingress or not parsed_args.egress:

openstackclient/tests/unit/network/v2/fakes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -952,6 +952,8 @@ def create_one_security_group_rule(attrs=None):
952952

953953
# Set default attributes.
954954
security_group_rule_attrs = {
955+
'description': 'security-group-rule-description-' +
956+
uuid.uuid4().hex,
955957
'direction': 'ingress',
956958
'ethertype': 'IPv4',
957959
'id': 'security-group-rule-id-' + uuid.uuid4().hex,

openstackclient/tests/unit/network/v2/test_security_group_rule.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
6060
network_fakes.FakeSecurityGroup.create_one_security_group()
6161

6262
expected_columns = (
63+
'description',
6364
'direction',
6465
'ethertype',
6566
'id',
@@ -81,6 +82,7 @@ def _setup_security_group_rule(self, attrs=None):
8182
self.network.create_security_group_rule = mock.Mock(
8283
return_value=self._security_group_rule)
8384
self.expected_data = (
85+
self._security_group_rule.description,
8486
self._security_group_rule.direction,
8587
self._security_group_rule.ethertype,
8688
self._security_group_rule.id,
@@ -452,6 +454,33 @@ def test_create_icmpv6_type(self):
452454
self.assertEqual(self.expected_columns, columns)
453455
self.assertEqual(self.expected_data, data)
454456

457+
def test_create_with_description(self):
458+
self._setup_security_group_rule({
459+
'description': 'Setting SGR',
460+
})
461+
arglist = [
462+
'--description', self._security_group_rule.description,
463+
self._security_group.id,
464+
]
465+
verifylist = [
466+
('description', self._security_group_rule.description),
467+
('group', self._security_group.id),
468+
]
469+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
470+
471+
columns, data = (self.cmd.take_action(parsed_args))
472+
473+
self.network.create_security_group_rule.assert_called_once_with(**{
474+
'description': self._security_group_rule.description,
475+
'direction': self._security_group_rule.direction,
476+
'ethertype': self._security_group_rule.ethertype,
477+
'protocol': self._security_group_rule.protocol,
478+
'remote_ip_prefix': self._security_group_rule.remote_ip_prefix,
479+
'security_group_id': self._security_group.id,
480+
})
481+
self.assertEqual(self.expected_columns, columns)
482+
self.assertEqual(self.expected_data, data)
483+
455484

456485
class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
457486

@@ -1075,6 +1104,7 @@ class TestShowSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
10751104
network_fakes.FakeSecurityGroupRule.create_one_security_group_rule()
10761105

10771106
columns = (
1107+
'description',
10781108
'direction',
10791109
'ethertype',
10801110
'id',
@@ -1088,6 +1118,7 @@ class TestShowSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
10881118
)
10891119

10901120
data = (
1121+
_security_group_rule.description,
10911122
_security_group_rule.direction,
10921123
_security_group_rule.ethertype,
10931124
_security_group_rule.id,

releasenotes/notes/bp-neutron-client-descriptions-a80902b4295843cf.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ features:
77
Add ``--description`` option to ``router set`` and
88
``router create`` commands.
99
[Blueprint :oscbp:`network-commands-options`]
10+
|
11+
Adds ``--description`` option to ``security group rule create``.
12+
[Blueprint :oscbp:`network-commands-options`]

0 commit comments

Comments
 (0)