@@ -4288,6 +4288,57 @@ def test_migration_abort_pre_v224(self):
42884288 str (ex ))
42894289
42904290
4291+ class TestServerMigrationForceComplete (TestServer ):
4292+
4293+ def setUp (self ):
4294+ super (TestServerMigrationForceComplete , self ).setUp ()
4295+
4296+ self .server = compute_fakes .FakeServer .create_one_server ()
4297+
4298+ # Return value for utils.find_resource for server.
4299+ self .servers_mock .get .return_value = self .server
4300+
4301+ # Get the command object to test
4302+ self .cmd = server .ForceCompleteMigration (self .app , None )
4303+
4304+ def test_migration_force_complete (self ):
4305+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4306+ '2.22' )
4307+
4308+ arglist = [
4309+ self .server .id ,
4310+ '2' , # arbitrary migration ID
4311+ ]
4312+ verifylist = []
4313+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4314+
4315+ result = self .cmd .take_action (parsed_args )
4316+
4317+ self .servers_mock .get .assert_called_with (self .server .id )
4318+ self .server_migrations_mock .live_migrate_force_complete \
4319+ .assert_called_with (self .server .id , '2' ,)
4320+ self .assertIsNone (result )
4321+
4322+ def test_migration_force_complete_pre_v222 (self ):
4323+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4324+ '2.21' )
4325+
4326+ arglist = [
4327+ self .server .id ,
4328+ '2' , # arbitrary migration ID
4329+ ]
4330+ verifylist = []
4331+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4332+
4333+ ex = self .assertRaises (
4334+ exceptions .CommandError ,
4335+ self .cmd .take_action ,
4336+ parsed_args )
4337+ self .assertIn (
4338+ '--os-compute-api-version 2.22 or greater is required' ,
4339+ str (ex ))
4340+
4341+
42914342class TestServerPause (TestServer ):
42924343
42934344 def setUp (self ):
0 commit comments