@@ -4263,6 +4263,57 @@ def test_migration_abort_pre_v224(self):
42634263 str (ex ))
42644264
42654265
4266+ class TestServerMigrationForceComplete (TestServer ):
4267+
4268+ def setUp (self ):
4269+ super (TestServerMigrationForceComplete , self ).setUp ()
4270+
4271+ self .server = compute_fakes .FakeServer .create_one_server ()
4272+
4273+ # Return value for utils.find_resource for server.
4274+ self .servers_mock .get .return_value = self .server
4275+
4276+ # Get the command object to test
4277+ self .cmd = server .ForceCompleteMigration (self .app , None )
4278+
4279+ def test_migration_force_complete (self ):
4280+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4281+ '2.22' )
4282+
4283+ arglist = [
4284+ self .server .id ,
4285+ '2' , # arbitrary migration ID
4286+ ]
4287+ verifylist = []
4288+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4289+
4290+ result = self .cmd .take_action (parsed_args )
4291+
4292+ self .servers_mock .get .assert_called_with (self .server .id )
4293+ self .server_migrations_mock .live_migrate_force_complete \
4294+ .assert_called_with (self .server .id , '2' ,)
4295+ self .assertIsNone (result )
4296+
4297+ def test_migration_force_complete_pre_v222 (self ):
4298+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4299+ '2.21' )
4300+
4301+ arglist = [
4302+ self .server .id ,
4303+ '2' , # arbitrary migration ID
4304+ ]
4305+ verifylist = []
4306+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4307+
4308+ ex = self .assertRaises (
4309+ exceptions .CommandError ,
4310+ self .cmd .take_action ,
4311+ parsed_args )
4312+ self .assertIn (
4313+ '--os-compute-api-version 2.22 or greater is required' ,
4314+ str (ex ))
4315+
4316+
42664317class TestServerPause (TestServer ):
42674318
42684319 def setUp (self ):
0 commit comments