@@ -146,6 +146,9 @@ def setUp(self):
146146 'add_floating_ip' : None ,
147147 }
148148
149+ self .find_port = mock .Mock ()
150+ self .app .client_manager .network .find_port = self .find_port
151+
149152 def _test_server_add_floating_ip (self , extralist , fixed_ip_address ):
150153 servers = self .setup_servers_mock (count = 1 )
151154
@@ -174,6 +177,53 @@ def test_server_add_floating_ip_to_fixed_ip(self):
174177 self ._test_server_add_floating_ip (extralist , '5.6.7.8' )
175178
176179
180+ class TestServerAddPort (TestServer ):
181+
182+ def setUp (self ):
183+ super (TestServerAddPort , self ).setUp ()
184+
185+ # Get the command object to test
186+ self .cmd = server .AddPort (self .app , None )
187+
188+ # Set add_fixed_ip method to be tested.
189+ self .methods = {
190+ 'interface_attach' : None ,
191+ }
192+
193+ self .find_port = mock .Mock ()
194+ self .app .client_manager .network .find_port = self .find_port
195+
196+ def _test_server_add_port (self , port_id ):
197+ servers = self .setup_servers_mock (count = 1 )
198+ port = 'fake-port'
199+
200+ arglist = [
201+ servers [0 ].id ,
202+ port ,
203+ ]
204+ verifylist = [
205+ ('server' , servers [0 ].id ),
206+ ('port' , port )
207+ ]
208+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
209+
210+ result = self .cmd .take_action (parsed_args )
211+
212+ servers [0 ].interface_attach .assert_called_once_with (
213+ port_id = port_id , net_id = None , fixed_ip = None )
214+ self .assertIsNone (result )
215+
216+ def test_server_add_port (self ):
217+ self ._test_server_add_port (self .find_port .return_value .id )
218+ self .find_port .assert_called_once_with (
219+ 'fake-port' , ignore_missing = False )
220+
221+ def test_server_add_port_no_neutron (self ):
222+ self .app .client_manager .network_endpoint_enabled = False
223+ self ._test_server_add_port ('fake-port' )
224+ self .find_port .assert_not_called ()
225+
226+
177227class TestServerAddSecurityGroup (TestServer ):
178228
179229 def setUp (self ):
@@ -1612,6 +1662,52 @@ def test_server_remove_floating_ip(self):
16121662 self .assertIsNone (result )
16131663
16141664
1665+ class TestServerRemovePort (TestServer ):
1666+
1667+ def setUp (self ):
1668+ super (TestServerRemovePort , self ).setUp ()
1669+
1670+ # Get the command object to test
1671+ self .cmd = server .RemovePort (self .app , None )
1672+
1673+ # Set method to be tested.
1674+ self .methods = {
1675+ 'interface_detach' : None ,
1676+ }
1677+
1678+ self .find_port = mock .Mock ()
1679+ self .app .client_manager .network .find_port = self .find_port
1680+
1681+ def _test_server_remove_port (self , port_id ):
1682+ servers = self .setup_servers_mock (count = 1 )
1683+ port = 'fake-port'
1684+
1685+ arglist = [
1686+ servers [0 ].id ,
1687+ port ,
1688+ ]
1689+ verifylist = [
1690+ ('server' , servers [0 ].id ),
1691+ ('port' , port ),
1692+ ]
1693+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1694+
1695+ result = self .cmd .take_action (parsed_args )
1696+
1697+ servers [0 ].interface_detach .assert_called_once_with (port_id )
1698+ self .assertIsNone (result )
1699+
1700+ def test_server_remove_port (self ):
1701+ self ._test_server_remove_port (self .find_port .return_value .id )
1702+ self .find_port .assert_called_once_with (
1703+ 'fake-port' , ignore_missing = False )
1704+
1705+ def test_server_remove_port_no_neutron (self ):
1706+ self .app .client_manager .network_endpoint_enabled = False
1707+ self ._test_server_remove_port ('fake-port' )
1708+ self .find_port .assert_not_called ()
1709+
1710+
16151711class TestServerRemoveSecurityGroup (TestServer ):
16161712
16171713 def setUp (self ):
0 commit comments