@@ -182,6 +182,72 @@ def test_server_add_specific_fixed_ip(self):
182182 extralist = ['--fixed-ip-address' , '5.6.7.8' ]
183183 self ._test_server_add_fixed_ip (extralist , '5.6.7.8' )
184184
185+ def test_server_add_fixed_ip_with_tag (self ):
186+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
187+ '2.49' )
188+
189+ servers = self .setup_servers_mock (count = 1 )
190+ network = compute_fakes .FakeNetwork .create_one_network ()
191+ with mock .patch (
192+ 'openstackclient.api.compute_v2.APIv2.network_find'
193+ ) as net_mock :
194+ net_mock .return_value = network
195+
196+ arglist = [
197+ servers [0 ].id ,
198+ network ['id' ],
199+ '--fixed-ip-address' , '5.6.7.8' ,
200+ '--tag' , 'tag1' ,
201+ ]
202+ verifylist = [
203+ ('server' , servers [0 ].id ),
204+ ('network' , network ['id' ]),
205+ ('fixed_ip_address' , '5.6.7.8' ),
206+ ('tag' , 'tag1' ),
207+ ]
208+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
209+ result = self .cmd .take_action (parsed_args )
210+
211+ servers [0 ].interface_attach .assert_called_once_with (
212+ port_id = None ,
213+ net_id = network ['id' ],
214+ fixed_ip = '5.6.7.8' ,
215+ tag = 'tag1'
216+ )
217+ self .assertIsNone (result )
218+
219+ def test_server_add_fixed_ip_with_tag_pre_v249 (self ):
220+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
221+ '2.48' )
222+
223+ servers = self .setup_servers_mock (count = 1 )
224+ network = compute_fakes .FakeNetwork .create_one_network ()
225+ with mock .patch (
226+ 'openstackclient.api.compute_v2.APIv2.network_find'
227+ ) as net_mock :
228+ net_mock .return_value = network
229+
230+ arglist = [
231+ servers [0 ].id ,
232+ network ['id' ],
233+ '--fixed-ip-address' , '5.6.7.8' ,
234+ '--tag' , 'tag1' ,
235+ ]
236+ verifylist = [
237+ ('server' , servers [0 ].id ),
238+ ('network' , network ['id' ]),
239+ ('fixed_ip_address' , '5.6.7.8' ),
240+ ('tag' , 'tag1' ),
241+ ]
242+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
243+ ex = self .assertRaises (
244+ exceptions .CommandError ,
245+ self .cmd .take_action ,
246+ parsed_args )
247+ self .assertIn (
248+ '--os-compute-api-version 2.49 or greater is required' ,
249+ str (ex ))
250+
185251
186252@mock .patch (
187253 'openstackclient.api.compute_v2.APIv2.floating_ip_add'
0 commit comments