Skip to content

Commit 7f29e52

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add choices for option '--policy'"
2 parents 803d5b4 + 26a74d4 commit 7f29e52

3 files changed

Lines changed: 10 additions & 40 deletions

File tree

doc/source/command-objects/server-group.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ Create a new server group
1515
.. code-block:: bash
1616
1717
openstack server group create
18-
--policy <policy> [--policy <policy>] ...
18+
--policy <policy>
1919
<name>
2020
2121
.. option:: --policy <policy>
2222

2323
Add a policy to :ref:`\<name\> <server_group_create-name>`
24-
(repeat option to add multiple policies)
24+
('affinity' or 'anti-affinity', default to 'affinity')
2525

2626
.. _server_group_create-name:
2727
.. describe:: <name>

openstackclient/compute/v2/server_group.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ def get_parser(self, prog_name):
5555
parser.add_argument(
5656
'--policy',
5757
metavar='<policy>',
58-
action='append',
59-
required=True,
58+
choices=['affinity', 'anti-affinity'],
59+
default='affinity',
6060
help=_("Add a policy to <name> "
61-
"(repeat option to add multiple policies)")
61+
"('affinity' or 'anti-affinity', "
62+
"default to 'affinity')")
6263
)
6364
return parser
6465

@@ -67,7 +68,7 @@ def take_action(self, parsed_args):
6768
info = {}
6869
server_group = compute_client.server_groups.create(
6970
name=parsed_args.name,
70-
policies=parsed_args.policy)
71+
policies=[parsed_args.policy])
7172
info.update(server_group._info)
7273

7374
columns = _get_columns(info)

openstackclient/tests/unit/compute/v2/test_server_group.py

Lines changed: 3 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -63,54 +63,23 @@ def setUp(self):
6363

6464
def test_server_group_create(self):
6565
arglist = [
66-
'--policy', 'affinity',
66+
'--policy', 'anti-affinity',
6767
'affinity_group',
6868
]
6969
verifylist = [
70-
('policy', ['affinity']),
70+
('policy', 'anti-affinity'),
7171
('name', 'affinity_group'),
7272
]
7373
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
7474
columns, data = self.cmd.take_action(parsed_args)
7575
self.server_groups_mock.create.assert_called_once_with(
7676
name=parsed_args.name,
77-
policies=parsed_args.policy,
77+
policies=[parsed_args.policy],
7878
)
7979

8080
self.assertEqual(self.columns, columns)
8181
self.assertEqual(self.data, data)
8282

83-
def test_server_group_create_with_multiple_policies(self):
84-
arglist = [
85-
'--policy', 'affinity',
86-
'--policy', 'soft-affinity',
87-
'affinity_group',
88-
]
89-
verifylist = [
90-
('policy', ['affinity', 'soft-affinity']),
91-
('name', 'affinity_group'),
92-
]
93-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
94-
columns, data = self.cmd.take_action(parsed_args)
95-
self.server_groups_mock.create.assert_called_once_with(
96-
name=parsed_args.name,
97-
policies=parsed_args.policy,
98-
)
99-
100-
self.assertEqual(self.columns, columns)
101-
self.assertEqual(self.data, data)
102-
103-
def test_server_group_create_no_policy(self):
104-
arglist = [
105-
'affinity_group',
106-
]
107-
verifylist = None
108-
self.assertRaises(tests_utils.ParserException,
109-
self.check_parser,
110-
self.cmd,
111-
arglist,
112-
verifylist)
113-
11483

11584
class TestServerGroupDelete(TestServerGroup):
11685

0 commit comments

Comments
 (0)