@@ -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 ):
@@ -1613,6 +1663,52 @@ def test_server_remove_floating_ip(self):
16131663 self .assertIsNone (result )
16141664
16151665
1666+ class TestServerRemovePort (TestServer ):
1667+
1668+ def setUp (self ):
1669+ super (TestServerRemovePort , self ).setUp ()
1670+
1671+ # Get the command object to test
1672+ self .cmd = server .RemovePort (self .app , None )
1673+
1674+ # Set method to be tested.
1675+ self .methods = {
1676+ 'interface_detach' : None ,
1677+ }
1678+
1679+ self .find_port = mock .Mock ()
1680+ self .app .client_manager .network .find_port = self .find_port
1681+
1682+ def _test_server_remove_port (self , port_id ):
1683+ servers = self .setup_servers_mock (count = 1 )
1684+ port = 'fake-port'
1685+
1686+ arglist = [
1687+ servers [0 ].id ,
1688+ port ,
1689+ ]
1690+ verifylist = [
1691+ ('server' , servers [0 ].id ),
1692+ ('port' , port ),
1693+ ]
1694+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1695+
1696+ result = self .cmd .take_action (parsed_args )
1697+
1698+ servers [0 ].interface_detach .assert_called_once_with (port_id )
1699+ self .assertIsNone (result )
1700+
1701+ def test_server_remove_port (self ):
1702+ self ._test_server_remove_port (self .find_port .return_value .id )
1703+ self .find_port .assert_called_once_with (
1704+ 'fake-port' , ignore_missing = False )
1705+
1706+ def test_server_remove_port_no_neutron (self ):
1707+ self .app .client_manager .network_endpoint_enabled = False
1708+ self ._test_server_remove_port ('fake-port' )
1709+ self .find_port .assert_not_called ()
1710+
1711+
16161712class TestServerRemoveSecurityGroup (TestServer ):
16171713
16181714 def setUp (self ):
0 commit comments