Skip to content

Commit 90fe18e

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Dropping the use of 'addFixedIp' server action"
2 parents 4a62c73 + e91844d commit 90fe18e

File tree

2 files changed

+54
-97
lines changed

2 files changed

+54
-97
lines changed

openstackclient/compute/v2/server.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,6 @@ def take_action(self, parsed_args):
345345
else:
346346
net_id = parsed_args.network
347347

348-
if not sdk_utils.supports_microversion(compute_client, '2.44'):
349-
compute_client.add_fixed_ip_to_server(server.id, net_id)
350-
return ((), ())
351-
352348
kwargs = {'net_id': net_id}
353349
if parsed_args.fixed_ip_address:
354350
kwargs['fixed_ips'] = [
@@ -375,9 +371,11 @@ def take_action(self, parsed_args):
375371
'Port State',
376372
'Fixed IPs',
377373
)
378-
if sdk_utils.supports_microversion(compute_client, '2.49'):
379-
columns += ('tag',)
380-
column_headers += ('Tag',)
374+
375+
if parsed_args.tag:
376+
if sdk_utils.supports_microversion(compute_client, '2.49'):
377+
columns += ('tag',)
378+
column_headers += ('Tag',)
381379

382380
return (
383381
column_headers,

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

Lines changed: 49 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -206,72 +206,8 @@ def setUp(self):
206206
self.app.client_manager.network.find_network = self.find_network
207207

208208
@mock.patch.object(sdk_utils, 'supports_microversion')
209-
def test_server_add_fixed_ip_pre_v244(self, sm_mock):
210-
sm_mock.return_value = False
211-
212-
servers = self.setup_sdk_servers_mock(count=1)
213-
network = compute_fakes.create_one_network()
214-
215-
with mock.patch.object(
216-
self.app.client_manager,
217-
'is_network_endpoint_enabled',
218-
return_value=False,
219-
):
220-
arglist = [
221-
servers[0].id,
222-
network['id'],
223-
]
224-
verifylist = [
225-
('server', servers[0].id),
226-
('network', network['id']),
227-
('fixed_ip_address', None),
228-
]
229-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
230-
231-
result = self.cmd.take_action(parsed_args)
232-
233-
self.sdk_client.add_fixed_ip_to_server.assert_called_once_with(
234-
servers[0].id, network['id']
235-
)
236-
# the legacy API operates asynchronously
237-
self.assertEqual(((), ()), result)
238-
239-
@mock.patch.object(sdk_utils, 'supports_microversion')
240-
def test_server_add_fixed_ip_pre_v244_with_fixed_ip(self, sm_mock):
241-
sm_mock.return_value = False
242-
243-
servers = self.setup_sdk_servers_mock(count=1)
244-
network = compute_fakes.create_one_network()
245-
246-
with mock.patch.object(
247-
self.app.client_manager,
248-
'is_network_endpoint_enabled',
249-
return_value=False,
250-
):
251-
arglist = [
252-
servers[0].id,
253-
network['id'],
254-
'--fixed-ip-address',
255-
'5.6.7.8',
256-
]
257-
verifylist = [
258-
('server', servers[0].id),
259-
('network', network['id']),
260-
('fixed_ip_address', '5.6.7.8'),
261-
]
262-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
263-
264-
result = self.cmd.take_action(parsed_args)
265-
266-
self.sdk_client.add_fixed_ip_to_server.assert_called_once_with(
267-
servers[0].id, network['id']
268-
)
269-
# the legacy API operates asynchronously
270-
self.assertEqual(((), ()), result)
271-
272-
@mock.patch.object(sdk_utils, 'supports_microversion')
273-
def test_server_add_fixed_ip_pre_v244_with_tag(self, sm_mock):
274-
sm_mock.return_value = False
209+
def test_server_add_fixed_ip_pre_v249_with_tag(self, sm_mock):
210+
sm_mock.side_effect = [False, True]
275211

276212
servers = self.setup_sdk_servers_mock(count=1)
277213
network = compute_fakes.create_one_network()
@@ -305,43 +241,54 @@ def test_server_add_fixed_ip_pre_v244_with_tag(self, sm_mock):
305241
)
306242

307243
@mock.patch.object(sdk_utils, 'supports_microversion')
308-
def test_server_add_fixed_ip_pre_v249_with_tag(self, sm_mock):
309-
sm_mock.side_effect = [False, True]
244+
def test_server_add_fixed_ip(self, sm_mock):
245+
sm_mock.side_effect = [True, False]
310246

311247
servers = self.setup_sdk_servers_mock(count=1)
312248
network = compute_fakes.create_one_network()
249+
interface = compute_fakes.create_one_server_interface()
250+
self.sdk_client.create_server_interface.return_value = interface
313251

314252
with mock.patch.object(
315253
self.app.client_manager,
316254
'is_network_endpoint_enabled',
317255
return_value=False,
318256
):
319-
arglist = [
320-
servers[0].id,
321-
network['id'],
322-
'--fixed-ip-address',
323-
'5.6.7.8',
324-
'--tag',
325-
'tag1',
326-
]
257+
arglist = [servers[0].id, network['id']]
327258
verifylist = [
328259
('server', servers[0].id),
329260
('network', network['id']),
330-
('fixed_ip_address', '5.6.7.8'),
331-
('tag', 'tag1'),
332261
]
333262
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
334263

335-
ex = self.assertRaises(
336-
exceptions.CommandError, self.cmd.take_action, parsed_args
264+
expected_columns = (
265+
'Port ID',
266+
'Server ID',
267+
'Network ID',
268+
'MAC Address',
269+
'Port State',
270+
'Fixed IPs',
337271
)
338-
self.assertIn(
339-
'--os-compute-api-version 2.49 or greater is required', str(ex)
272+
expected_data = (
273+
interface.port_id,
274+
interface.server_id,
275+
interface.net_id,
276+
interface.mac_addr,
277+
interface.port_state,
278+
format_columns.ListDictColumn(interface.fixed_ips),
279+
)
280+
281+
columns, data = self.cmd.take_action(parsed_args)
282+
283+
self.assertEqual(expected_columns, columns)
284+
self.assertEqual(expected_data, tuple(data))
285+
self.sdk_client.create_server_interface.assert_called_once_with(
286+
servers[0].id, net_id=network['id']
340287
)
341288

342289
@mock.patch.object(sdk_utils, 'supports_microversion')
343-
def test_server_add_fixed_ip(self, sm_mock):
344-
sm_mock.side_effect = [True, False]
290+
def test_server_add_fixed_ip_with_fixed_ip(self, sm_mock):
291+
sm_mock.side_effect = [True, True]
345292

346293
servers = self.setup_sdk_servers_mock(count=1)
347294
network = compute_fakes.create_one_network()
@@ -353,10 +300,16 @@ def test_server_add_fixed_ip(self, sm_mock):
353300
'is_network_endpoint_enabled',
354301
return_value=False,
355302
):
356-
arglist = [servers[0].id, network['id']]
303+
arglist = [
304+
servers[0].id,
305+
network['id'],
306+
'--fixed-ip-address',
307+
'5.6.7.8',
308+
]
357309
verifylist = [
358310
('server', servers[0].id),
359311
('network', network['id']),
312+
('fixed_ip_address', '5.6.7.8'),
360313
]
361314
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
362315

@@ -382,12 +335,14 @@ def test_server_add_fixed_ip(self, sm_mock):
382335
self.assertEqual(expected_columns, columns)
383336
self.assertEqual(expected_data, tuple(data))
384337
self.sdk_client.create_server_interface.assert_called_once_with(
385-
servers[0].id, net_id=network['id']
338+
servers[0].id,
339+
net_id=network['id'],
340+
fixed_ips=[{'ip_address': '5.6.7.8'}],
386341
)
387342

388343
@mock.patch.object(sdk_utils, 'supports_microversion')
389-
def test_server_add_fixed_ip_with_fixed_ip(self, sm_mock):
390-
sm_mock.side_effect = [True, True]
344+
def test_server_add_fixed_ip_with_tag(self, sm_mock):
345+
sm_mock.side_effect = [True, True, True]
391346

392347
servers = self.setup_sdk_servers_mock(count=1)
393348
network = compute_fakes.create_one_network()
@@ -404,11 +359,14 @@ def test_server_add_fixed_ip_with_fixed_ip(self, sm_mock):
404359
network['id'],
405360
'--fixed-ip-address',
406361
'5.6.7.8',
362+
'--tag',
363+
'tag1',
407364
]
408365
verifylist = [
409366
('server', servers[0].id),
410367
('network', network['id']),
411368
('fixed_ip_address', '5.6.7.8'),
369+
('tag', 'tag1'),
412370
]
413371
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
414372

@@ -439,11 +397,12 @@ def test_server_add_fixed_ip_with_fixed_ip(self, sm_mock):
439397
servers[0].id,
440398
net_id=network['id'],
441399
fixed_ips=[{'ip_address': '5.6.7.8'}],
400+
tag='tag1',
442401
)
443402

444403
@mock.patch.object(sdk_utils, 'supports_microversion')
445-
def test_server_add_fixed_ip_with_tag(self, sm_mock):
446-
sm_mock.side_effect = [True, True, True]
404+
def test_server_add_fixed_ip_with_fixed_ip_with_tag(self, sm_mock):
405+
sm_mock.side_effect = [True, True]
447406

448407
servers = self.setup_sdk_servers_mock(count=1)
449408
network = compute_fakes.create_one_network()

0 commit comments

Comments
 (0)