@@ -3693,7 +3693,6 @@ def _show_progress(progress):
36933693 return zip (* sorted (data .items ()))
36943694
36953695
3696- # TODO(stephenfin): Migrate to SDK
36973696class EvacuateServer (command .ShowOne ):
36983697 _description = _ (
36993698 """Evacuate a server to a different host.
@@ -3719,7 +3718,6 @@ def get_parser(self, prog_name):
37193718 metavar = '<server>' ,
37203719 help = _ ('Server (name or ID)' ),
37213720 )
3722-
37233721 parser .add_argument (
37243722 '--wait' ,
37253723 action = 'store_true' ,
@@ -3766,19 +3764,19 @@ def _show_progress(progress):
37663764 self .app .stdout .write ('\r Progress: %s' % progress )
37673765 self .app .stdout .flush ()
37683766
3769- compute_client = self .app .client_manager .compute
3767+ compute_client = self .app .client_manager .sdk_connection . compute
37703768 image_client = self .app .client_manager .image
37713769
37723770 if parsed_args .host :
3773- if compute_client . api_version < api_versions . APIVersion ( '2.29' ):
3771+ if not sdk_utils . supports_microversion ( compute_client , '2.29' ):
37743772 msg = _ (
37753773 '--os-compute-api-version 2.29 or later is required '
37763774 'to specify a preferred host.'
37773775 )
37783776 raise exceptions .CommandError (msg )
37793777
37803778 if parsed_args .shared_storage :
3781- if compute_client . api_version > api_versions . APIVersion ( '2.13 ' ):
3779+ if sdk_utils . supports_microversion ( compute_client , '2.14 ' ):
37823780 msg = _ (
37833781 '--os-compute-api-version 2.13 or earlier is required '
37843782 'to specify shared-storage.'
@@ -3790,18 +3788,17 @@ def _show_progress(progress):
37903788 'password' : parsed_args .password ,
37913789 }
37923790
3793- if compute_client . api_version <= api_versions . APIVersion ( '2.13 ' ):
3791+ if not sdk_utils . supports_microversion ( compute_client , '2.14 ' ):
37943792 kwargs ['on_shared_storage' ] = parsed_args .shared_storage
37953793
3796- server = utils . find_resource (
3797- compute_client . servers , parsed_args .server
3794+ server = compute_client . find_server (
3795+ parsed_args .server , ignore_missing = False
37983796 )
3799-
3800- server .evacuate (** kwargs )
3797+ compute_client .evacuate_server (server , ** kwargs )
38013798
38023799 if parsed_args .wait :
38033800 if utils .wait_for_status (
3804- compute_client .servers . get ,
3801+ compute_client .get_server ,
38053802 server .id ,
38063803 callback = _show_progress ,
38073804 ):
@@ -3810,8 +3807,6 @@ def _show_progress(progress):
38103807 msg = _ ('Error evacuating server: %s' ) % server .id
38113808 raise exceptions .CommandError (msg )
38123809
3813- # TODO(stephenfin): Remove when the whole command is using SDK
3814- compute_client = self .app .client_manager .sdk_connection .compute
38153810 data = _prep_server_detail (compute_client , image_client , server )
38163811 return zip (* sorted (data .items ()))
38173812
0 commit comments