2424import iso8601
2525from novaclient import api_versions
2626from openstack import exceptions as sdk_exceptions
27+ from openstack import utils as sdk_utils
2728from osc_lib .cli import format_columns
2829from osc_lib import exceptions
2930from osc_lib import utils as common_utils
@@ -69,6 +70,10 @@ def setUp(self):
6970 self .servers_mock = self .app .client_manager .compute .servers
7071 self .servers_mock .reset_mock ()
7172
73+ self .app .client_manager .sdk_connection = mock .Mock ()
74+ self .app .client_manager .sdk_connection .compute = mock .Mock ()
75+ self .sdk_client = self .app .client_manager .sdk_connection .compute
76+
7277 # Get a shortcut to the compute client ServerMigrationsManager Mock
7378 self .server_migrations_mock = \
7479 self .app .client_manager .compute .server_migrations
@@ -133,6 +138,21 @@ def setup_servers_mock(self, count):
133138 0 )
134139 return servers
135140
141+ def setup_sdk_servers_mock (self , count ):
142+ servers = compute_fakes .FakeServer .create_sdk_servers (
143+ attrs = self .attrs ,
144+ methods = self .methods ,
145+ count = count ,
146+ )
147+
148+ # This is the return value for compute_client.find_server()
149+ self .sdk_client .find_server = compute_fakes .FakeServer .get_servers (
150+ servers ,
151+ 0 ,
152+ )
153+
154+ return servers
155+
136156 def run_method_with_servers (self , method_name , server_count ):
137157 servers = self .setup_servers_mock (server_count )
138158
@@ -570,7 +590,7 @@ def setUp(self):
570590 self .app .client_manager .network .find_port = self .find_port
571591
572592 def _test_server_add_port (self , port_id ):
573- servers = self .setup_servers_mock (count = 1 )
593+ servers = self .setup_sdk_servers_mock (count = 1 )
574594 port = 'fake-port'
575595
576596 arglist = [
@@ -585,8 +605,8 @@ def _test_server_add_port(self, port_id):
585605
586606 result = self .cmd .take_action (parsed_args )
587607
588- servers [ 0 ]. interface_attach .assert_called_once_with (
589- port_id = port_id , net_id = None , fixed_ip = None )
608+ self . sdk_client . create_server_interface .assert_called_once_with (
609+ servers [ 0 ], port_id = port_id , fixed_ip = None )
590610 self .assertIsNone (result )
591611
592612 def test_server_add_port (self ):
@@ -599,11 +619,12 @@ def test_server_add_port_no_neutron(self):
599619 self ._test_server_add_port ('fake-port' )
600620 self .find_port .assert_not_called ()
601621
602- def test_server_add_port_with_tag (self ):
622+ @mock .patch .object (sdk_utils , 'supports_microversion' , return_value = True )
623+ def test_server_add_port_with_tag (self , sm_mock ):
603624 self .app .client_manager .compute .api_version = api_versions .APIVersion (
604625 '2.49' )
605626
606- servers = self .setup_servers_mock (count = 1 )
627+ servers = self .setup_sdk_servers_mock (count = 1 )
607628 self .find_port .return_value .id = 'fake-port'
608629 arglist = [
609630 servers [0 ].id ,
@@ -620,13 +641,14 @@ def test_server_add_port_with_tag(self):
620641 result = self .cmd .take_action (parsed_args )
621642 self .assertIsNone (result )
622643
623- servers [0 ].interface_attach .assert_called_once_with (
644+ self .sdk_client .create_server_interface .assert_called_once_with (
645+ servers [0 ],
624646 port_id = 'fake-port' ,
625- net_id = None ,
626647 fixed_ip = None ,
627648 tag = 'tag1' )
628649
629- def test_server_add_port_with_tag_pre_v249 (self ):
650+ @mock .patch .object (sdk_utils , 'supports_microversion' , return_value = False )
651+ def test_server_add_port_with_tag_pre_v249 (self , sm_mock ):
630652 self .app .client_manager .compute .api_version = api_versions .APIVersion (
631653 '2.48' )
632654
@@ -966,7 +988,7 @@ def setUp(self):
966988 self .app .client_manager .network .find_network = self .find_network
967989
968990 def _test_server_add_network (self , net_id ):
969- servers = self .setup_servers_mock (count = 1 )
991+ servers = self .setup_sdk_servers_mock (count = 1 )
970992 network = 'fake-network'
971993
972994 arglist = [
@@ -981,8 +1003,8 @@ def _test_server_add_network(self, net_id):
9811003
9821004 result = self .cmd .take_action (parsed_args )
9831005
984- servers [ 0 ]. interface_attach .assert_called_once_with (
985- port_id = None , net_id = net_id , fixed_ip = None )
1006+ self . sdk_client . create_server_interface .assert_called_once_with (
1007+ servers [ 0 ] , net_id = net_id , fixed_ip = None )
9861008 self .assertIsNone (result )
9871009
9881010 def test_server_add_network (self ):
@@ -995,11 +1017,12 @@ def test_server_add_network_no_neutron(self):
9951017 self ._test_server_add_network ('fake-network' )
9961018 self .find_network .assert_not_called ()
9971019
998- def test_server_add_network_with_tag (self ):
1020+ @mock .patch .object (sdk_utils , 'supports_microversion' , return_value = True )
1021+ def test_server_add_network_with_tag (self , sm_mock ):
9991022 self .app .client_manager .compute .api_version = api_versions .APIVersion (
10001023 '2.49' )
10011024
1002- servers = self .setup_servers_mock (count = 1 )
1025+ servers = self .setup_sdk_servers_mock (count = 1 )
10031026 self .find_network .return_value .id = 'fake-network'
10041027
10051028 arglist = [
@@ -1017,18 +1040,19 @@ def test_server_add_network_with_tag(self):
10171040 result = self .cmd .take_action (parsed_args )
10181041 self .assertIsNone (result )
10191042
1020- servers [ 0 ]. interface_attach .assert_called_once_with (
1021- port_id = None ,
1043+ self . sdk_client . create_server_interface .assert_called_once_with (
1044+ servers [ 0 ] ,
10221045 net_id = 'fake-network' ,
10231046 fixed_ip = None ,
10241047 tag = 'tag1'
10251048 )
10261049
1027- def test_server_add_network_with_tag_pre_v249 (self ):
1050+ @mock .patch .object (sdk_utils , 'supports_microversion' , return_value = False )
1051+ def test_server_add_network_with_tag_pre_v249 (self , sm_mock ):
10281052 self .app .client_manager .compute .api_version = api_versions .APIVersion (
10291053 '2.48' )
10301054
1031- servers = self .setup_servers_mock (count = 1 )
1055+ servers = self .setup_sdk_servers_mock (count = 1 )
10321056 self .find_network .return_value .id = 'fake-network'
10331057
10341058 arglist = [
0 commit comments