@@ -2566,6 +2566,96 @@ def test_rebuild_with_property(self):
25662566 self .server .rebuild .assert_called_with (
25672567 self .image , None , meta = expected_property )
25682568
2569+ def test_rebuild_with_keypair_name (self ):
2570+ self .server .key_name = 'mykey'
2571+ arglist = [
2572+ self .server .id ,
2573+ '--key-name' , self .server .key_name ,
2574+ ]
2575+ verifylist = [
2576+ ('server' , self .server .id ),
2577+ ('key_name' , self .server .key_name )
2578+ ]
2579+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
2580+
2581+ self .app .client_manager .compute .api_version = 2.54
2582+ with mock .patch .object (api_versions ,
2583+ 'APIVersion' ,
2584+ return_value = 2.54 ):
2585+ self .cmd .take_action (parsed_args )
2586+ args = (
2587+ self .image ,
2588+ None ,
2589+ )
2590+ kwargs = dict (
2591+ key_name = self .server .key_name ,
2592+ )
2593+ self .servers_mock .get .assert_called_with (self .server .id )
2594+ self .images_mock .get .assert_called_with (self .image .id )
2595+ self .server .rebuild .assert_called_with (* args , ** kwargs )
2596+
2597+ def test_rebuild_with_keypair_name_older_version (self ):
2598+ self .server .key_name = 'mykey'
2599+ arglist = [
2600+ self .server .id ,
2601+ '--key-name' , self .server .key_name ,
2602+ ]
2603+ verifylist = [
2604+ ('server' , self .server .id ),
2605+ ('key_name' , self .server .key_name )
2606+ ]
2607+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
2608+
2609+ self .app .client_manager .compute .api_version = 2.53
2610+ with mock .patch .object (api_versions ,
2611+ 'APIVersion' ,
2612+ return_value = 2.54 ):
2613+ self .assertRaises (exceptions .CommandError ,
2614+ self .cmd .take_action ,
2615+ parsed_args )
2616+
2617+ def test_rebuild_with_keypair_unset (self ):
2618+ self .server .key_name = 'mykey'
2619+ arglist = [
2620+ self .server .id ,
2621+ '--key-unset' ,
2622+ ]
2623+ verifylist = [
2624+ ('server' , self .server .id ),
2625+ ]
2626+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
2627+
2628+ self .app .client_manager .compute .api_version = 2.54
2629+ with mock .patch .object (api_versions ,
2630+ 'APIVersion' ,
2631+ return_value = 2.54 ):
2632+ self .cmd .take_action (parsed_args )
2633+ args = (
2634+ self .image ,
2635+ None ,
2636+ )
2637+ kwargs = dict (
2638+ key_name = None ,
2639+ )
2640+ self .servers_mock .get .assert_called_with (self .server .id )
2641+ self .images_mock .get .assert_called_with (self .image .id )
2642+ self .server .rebuild .assert_called_with (* args , ** kwargs )
2643+
2644+ def test_rebuild_with_key_name_and_unset (self ):
2645+ self .server .key_name = 'mykey'
2646+ arglist = [
2647+ self .server .id ,
2648+ '--key-name' , self .server .key_name ,
2649+ '--key-unset' ,
2650+ ]
2651+ verifylist = [
2652+ ('server' , self .server .id ),
2653+ ('key_name' , self .server .key_name )
2654+ ]
2655+ self .assertRaises (utils .ParserException ,
2656+ self .check_parser ,
2657+ self .cmd , arglist , verifylist )
2658+
25692659
25702660class TestServerRemoveFixedIP (TestServer ):
25712661
0 commit comments