@@ -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