@@ -3404,6 +3404,86 @@ def test_server_create_volume_boot_from_volume_conflict(self):
34043404 )
34053405 self .compute_client .create_server .assert_not_called ()
34063406
3407+ def test_server_create_delete_on_termination_without_boot_from_volume (
3408+ self ,
3409+ ):
3410+ # Fail if --delete-on-termination is used without --boot-from-volume
3411+ arglist = [
3412+ '--image' ,
3413+ self .image .id ,
3414+ '--flavor' ,
3415+ self .flavor .id ,
3416+ '--delete-on-termination' ,
3417+ self .server .name ,
3418+ ]
3419+ verifylist = [
3420+ ('image' , self .image .id ),
3421+ ('flavor' , self .flavor .id ),
3422+ ('delete_on_termination' , True ),
3423+ ('config_drive' , False ),
3424+ ('server_name' , self .server .name ),
3425+ ]
3426+
3427+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
3428+
3429+ exc = self .assertRaises (
3430+ exceptions .CommandError ,
3431+ self .cmd .take_action ,
3432+ parsed_args ,
3433+ )
3434+
3435+ self .assertIn (
3436+ '--delete-on-termination can only be used with --boot-from-volume' ,
3437+ str (exc ),
3438+ )
3439+
3440+ self .compute_client .create_server .assert_not_called ()
3441+
3442+ def test_server_create_boot_from_volume_delete_on_termination (self ):
3443+ arglist = [
3444+ '--image' ,
3445+ self .image .id ,
3446+ '--flavor' ,
3447+ self .flavor .id ,
3448+ '--boot-from-volume' ,
3449+ '10' ,
3450+ '--delete-on-termination' ,
3451+ self .server .name ,
3452+ ]
3453+ verifylist = [
3454+ ('image' , self .image .id ),
3455+ ('flavor' , self .flavor .id ),
3456+ ('boot_from_volume' , 10 ),
3457+ ('delete_on_termination' , True ),
3458+ ('config_drive' , False ),
3459+ ('server_name' , self .server .name ),
3460+ ]
3461+
3462+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
3463+ columns , data = self .cmd .take_action (parsed_args )
3464+
3465+ self .compute_client .create_server .assert_called_once_with (
3466+ name = self .server .name ,
3467+ image_id = '' ,
3468+ flavor_id = self .flavor .id ,
3469+ min_count = 1 ,
3470+ max_count = 1 ,
3471+ networks = [],
3472+ block_device_mapping = [
3473+ {
3474+ 'uuid' : self .image .id ,
3475+ 'boot_index' : 0 ,
3476+ 'source_type' : 'image' ,
3477+ 'destination_type' : 'volume' ,
3478+ 'volume_size' : 10 ,
3479+ 'delete_on_termination' : True ,
3480+ },
3481+ ],
3482+ )
3483+
3484+ self .assertEqual (self .columns , columns )
3485+ self .assertEqual (self .datalist (), data )
3486+
34073487 def test_server_create_boot_from_volume_no_image (self ):
34083488 # Test --boot-from-volume option without --image or
34093489 # --image-property.
0 commit comments