@ -1220,11 +1220,17 @@ class CancelStack(StackActionBase):
log = logging . getLogger ( __name__ + ' .CancelStack ' )
def get_parser ( self , prog_name ) :
return self . _get_parser (
parser = self . _get_parser (
prog_name ,
_ ( ' Stack(s) to cancel (name or ID) ' ) ,
_ ( ' Wait for check to complete ' )
_ ( ' Wait for cancel to complete ' )
)
parser . add_argument (
' --no-rollback ' ,
action = ' store_true ' ,
help = _ ( ' Cancel without rollback ' )
)
return parser
def take_action ( self , parsed_args ) :
self . log . debug ( " take_action( %s ) " , parsed_args )
@ -1237,7 +1243,10 @@ class CancelStack(StackActionBase):
' Updated Time '
]
heat_client = self . app . client_manager . orchestration
if parsed_args . no_rollback :
action = heat_client . actions . cancel_without_rollback
else :
action = heat_client . actions . cancel_update
for stack in parsed_args . stack :
try :
data = heat_client . stacks . get ( stack_id = stack )
@ -1246,11 +1255,12 @@ class CancelStack(StackActionBase):
status = getattr ( data , ' stack_status ' ) . lower ( )
if status == ' update_in_progress ' :
data = _stack_action (
stack ,
parsed_args ,
heat_client ,
heat_client. actions. cancel_update
action
)
rows + = [ utils . get_dict_properties ( data . to_dict ( ) , columns ) ]
else :