@@ -42,6 +42,11 @@ def setUp(self):
4242 self .servers_mock = self .app .client_manager .compute .servers
4343 self .servers_mock .reset_mock ()
4444
45+ # Get a shortcut to the compute client ServerMigrationsManager Mock
46+ self .server_migrations_mock = \
47+ self .app .client_manager .compute .server_migrations
48+ self .server_migrations_mock .reset_mock ()
49+
4550 # Get a shortcut to the compute client volumeManager Mock
4651 self .servers_volumes_mock = self .app .client_manager .compute .volumes
4752 self .servers_volumes_mock .reset_mock ()
@@ -4207,6 +4212,57 @@ def test_get_migrations_with_project_and_user_pre_v280(self):
42074212 parsed_args )
42084213
42094214
4215+ class TestServerMigrationAbort (TestServer ):
4216+
4217+ def setUp (self ):
4218+ super (TestServerMigrationAbort , self ).setUp ()
4219+
4220+ self .server = compute_fakes .FakeServer .create_one_server ()
4221+
4222+ # Return value for utils.find_resource for server.
4223+ self .servers_mock .get .return_value = self .server
4224+
4225+ # Get the command object to test
4226+ self .cmd = server .AbortMigration (self .app , None )
4227+
4228+ def test_migration_abort (self ):
4229+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4230+ '2.24' )
4231+
4232+ arglist = [
4233+ self .server .id ,
4234+ '2' , # arbitrary migration ID
4235+ ]
4236+ verifylist = []
4237+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4238+
4239+ result = self .cmd .take_action (parsed_args )
4240+
4241+ self .servers_mock .get .assert_called_with (self .server .id )
4242+ self .server_migrations_mock .live_migration_abort .assert_called_with (
4243+ self .server .id , '2' ,)
4244+ self .assertIsNone (result )
4245+
4246+ def test_migration_abort_pre_v224 (self ):
4247+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
4248+ '2.23' )
4249+
4250+ arglist = [
4251+ self .server .id ,
4252+ '2' , # arbitrary migration ID
4253+ ]
4254+ verifylist = []
4255+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
4256+
4257+ ex = self .assertRaises (
4258+ exceptions .CommandError ,
4259+ self .cmd .take_action ,
4260+ parsed_args )
4261+ self .assertIn (
4262+ '--os-compute-api-version 2.24 or greater is required' ,
4263+ str (ex ))
4264+
4265+
42104266class TestServerPause (TestServer ):
42114267
42124268 def setUp (self ):
0 commit comments