Skip to content

Commit 3902efc

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Add API check for server_groups.create"
2 parents 2308a05 + 51a1ea6 commit 3902efc

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

openstackclient/compute/v2/server_group.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,13 @@ def get_parser(self, prog_name):
6868
def take_action(self, parsed_args):
6969
compute_client = self.app.client_manager.compute
7070
info = {}
71+
72+
policy_arg = {'policies': [parsed_args.policy]}
73+
if compute_client.api_version >= api_versions.APIVersion("2.64"):
74+
policy_arg = {'policy': parsed_args.policy}
7175
server_group = compute_client.server_groups.create(
72-
name=parsed_args.name,
73-
policies=[parsed_args.policy])
76+
name=parsed_args.name, **policy_arg)
77+
7478
info.update(server_group._info)
7579

7680
columns = _get_columns(info)

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,28 @@ def test_server_group_create(self):
108108
self.assertEqual(self.columns, columns)
109109
self.assertEqual(self.data, data)
110110

111+
def test_server_group_create_v264(self):
112+
self.app.client_manager.compute.api_version = api_versions.APIVersion(
113+
'2.64')
114+
115+
arglist = [
116+
'--policy', 'soft-anti-affinity',
117+
'affinity_group',
118+
]
119+
verifylist = [
120+
('policy', 'soft-anti-affinity'),
121+
('name', 'affinity_group'),
122+
]
123+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
124+
columns, data = self.cmd.take_action(parsed_args)
125+
self.server_groups_mock.create.assert_called_once_with(
126+
name=parsed_args.name,
127+
policy=parsed_args.policy,
128+
)
129+
130+
self.assertEqual(self.columns, columns)
131+
self.assertEqual(self.data, data)
132+
111133

112134
class TestServerGroupDelete(TestServerGroup):
113135

0 commit comments

Comments
 (0)