@@ -6232,6 +6232,88 @@ def test_server_migration_show_pre_v224(self):
62326232 '--os-compute-api-version 2.24 or greater is required' ,
62336233 str (ex ))
62346234
6235+ def test_server_migration_show_by_uuid (self ):
6236+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6237+ '2.59' )
6238+ self .server_migrations_mock .list .return_value = [self .server_migration ]
6239+
6240+ self .columns += ('UUID' ,)
6241+ self .data += (self .server_migration .uuid ,)
6242+
6243+ arglist = [
6244+ self .server .id ,
6245+ self .server_migration .uuid , # arbitrary migration UUID
6246+ ]
6247+ verifylist = []
6248+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6249+
6250+ columns , data = self .cmd .take_action (parsed_args )
6251+
6252+ self .assertEqual (self .columns , columns )
6253+ self .assertEqual (self .data , data )
6254+
6255+ self .servers_mock .get .assert_called_with (self .server .id )
6256+ self .server_migrations_mock .list .assert_called_with (self .server .id )
6257+ self .server_migrations_mock .get .assert_not_called ()
6258+
6259+ def test_server_migration_show_by_uuid_no_matches (self ):
6260+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6261+ '2.59' )
6262+ self .server_migrations_mock .list .return_value = []
6263+
6264+ arglist = [
6265+ self .server .id ,
6266+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6267+ ]
6268+ verifylist = []
6269+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6270+
6271+ ex = self .assertRaises (
6272+ exceptions .CommandError ,
6273+ self .cmd .take_action ,
6274+ parsed_args )
6275+ self .assertIn (
6276+ 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce' ,
6277+ str (ex ))
6278+
6279+ def test_server_migration_show_by_uuid_pre_v259 (self ):
6280+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6281+ '2.58' )
6282+
6283+ arglist = [
6284+ self .server .id ,
6285+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6286+ ]
6287+ verifylist = []
6288+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6289+
6290+ ex = self .assertRaises (
6291+ exceptions .CommandError ,
6292+ self .cmd .take_action ,
6293+ parsed_args )
6294+ self .assertIn (
6295+ '--os-compute-api-version 2.59 or greater is required' ,
6296+ str (ex ))
6297+
6298+ def test_server_migration_show_invalid_id (self ):
6299+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6300+ '2.24' )
6301+
6302+ arglist = [
6303+ self .server .id ,
6304+ 'foo' , # invalid migration ID
6305+ ]
6306+ verifylist = []
6307+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6308+
6309+ ex = self .assertRaises (
6310+ exceptions .CommandError ,
6311+ self .cmd .take_action ,
6312+ parsed_args )
6313+ self .assertIn (
6314+ 'The <migration> argument must be an ID or UUID' ,
6315+ str (ex ))
6316+
62356317
62366318class TestServerMigrationAbort (TestServer ):
62376319
@@ -6283,6 +6365,69 @@ def test_migration_abort_pre_v224(self):
62836365 '--os-compute-api-version 2.24 or greater is required' ,
62846366 str (ex ))
62856367
6368+ def test_server_migration_abort_by_uuid (self ):
6369+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6370+ '2.59' )
6371+
6372+ self .server_migration = compute_fakes .FakeServerMigration \
6373+ .create_one_server_migration ()
6374+ self .server_migrations_mock .list .return_value = [self .server_migration ]
6375+
6376+ arglist = [
6377+ self .server .id ,
6378+ self .server_migration .uuid , # arbitrary migration UUID
6379+ ]
6380+ verifylist = []
6381+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6382+
6383+ result = self .cmd .take_action (parsed_args )
6384+
6385+ self .servers_mock .get .assert_called_with (self .server .id )
6386+ self .server_migrations_mock .list .assert_called_with (self .server .id )
6387+ self .server_migrations_mock .live_migration_abort .assert_called_with (
6388+ self .server .id , self .server_migration .id )
6389+ self .assertIsNone (result )
6390+
6391+ def test_server_migration_abort_by_uuid_no_matches (self ):
6392+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6393+ '2.59' )
6394+
6395+ self .server_migrations_mock .list .return_value = []
6396+
6397+ arglist = [
6398+ self .server .id ,
6399+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6400+ ]
6401+ verifylist = []
6402+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6403+
6404+ ex = self .assertRaises (
6405+ exceptions .CommandError ,
6406+ self .cmd .take_action ,
6407+ parsed_args )
6408+ self .assertIn (
6409+ 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce' ,
6410+ str (ex ))
6411+
6412+ def test_server_migration_abort_by_uuid_pre_v259 (self ):
6413+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6414+ '2.58' )
6415+
6416+ arglist = [
6417+ self .server .id ,
6418+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6419+ ]
6420+ verifylist = []
6421+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6422+
6423+ ex = self .assertRaises (
6424+ exceptions .CommandError ,
6425+ self .cmd .take_action ,
6426+ parsed_args )
6427+ self .assertIn (
6428+ '--os-compute-api-version 2.59 or greater is required' ,
6429+ str (ex ))
6430+
62866431
62876432class TestServerMigrationForceComplete (TestServer ):
62886433
@@ -6334,6 +6479,69 @@ def test_migration_force_complete_pre_v222(self):
63346479 '--os-compute-api-version 2.22 or greater is required' ,
63356480 str (ex ))
63366481
6482+ def test_server_migration_force_complete_by_uuid (self ):
6483+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6484+ '2.59' )
6485+
6486+ self .server_migration = compute_fakes .FakeServerMigration \
6487+ .create_one_server_migration ()
6488+ self .server_migrations_mock .list .return_value = [self .server_migration ]
6489+
6490+ arglist = [
6491+ self .server .id ,
6492+ self .server_migration .uuid , # arbitrary migration UUID
6493+ ]
6494+ verifylist = []
6495+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6496+
6497+ result = self .cmd .take_action (parsed_args )
6498+
6499+ self .servers_mock .get .assert_called_with (self .server .id )
6500+ self .server_migrations_mock .list .assert_called_with (self .server .id )
6501+ self .server_migrations_mock .live_migrate_force_complete \
6502+ .assert_called_with (self .server .id , self .server_migration .id )
6503+ self .assertIsNone (result )
6504+
6505+ def test_server_migration_force_complete_by_uuid_no_matches (self ):
6506+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6507+ '2.59' )
6508+
6509+ self .server_migrations_mock .list .return_value = []
6510+
6511+ arglist = [
6512+ self .server .id ,
6513+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6514+ ]
6515+ verifylist = []
6516+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6517+
6518+ ex = self .assertRaises (
6519+ exceptions .CommandError ,
6520+ self .cmd .take_action ,
6521+ parsed_args )
6522+ self .assertIn (
6523+ 'In-progress live migration 69f95745-bfe3-4302-90f7-5b0022cba1ce' ,
6524+ str (ex ))
6525+
6526+ def test_server_migration_force_complete_by_uuid_pre_v259 (self ):
6527+ self .app .client_manager .compute .api_version = api_versions .APIVersion (
6528+ '2.58' )
6529+
6530+ arglist = [
6531+ self .server .id ,
6532+ '69f95745-bfe3-4302-90f7-5b0022cba1ce' , # arbitrary migration UUID
6533+ ]
6534+ verifylist = []
6535+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
6536+
6537+ ex = self .assertRaises (
6538+ exceptions .CommandError ,
6539+ self .cmd .take_action ,
6540+ parsed_args )
6541+ self .assertIn (
6542+ '--os-compute-api-version 2.59 or greater is required' ,
6543+ str (ex ))
6544+
63376545
63386546class TestServerPause (TestServer ):
63396547
0 commit comments