
    
                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ  G d d	ej                        Zd
 Zy)z<Wrapper around serverless_operations CancelFoo for surfaces.    )absolute_import)division)unicode_literals)waiter)
exceptions)progress_trackerc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)CancellationPollerz%Polls for cancellation of a resource.c                      || _         d| _        y)z%Supply getter as the resource getter.N_getter_ret)selfgetters     2lib/googlecloudsdk/command_lib/run/cancellation.py__init__zCancellationPoller.__init__   s    DLDI    c                 B    |d u xs |j                   j                         S N)
conditions
IsTerminalr   objs     r   IsDonezCancellationPoller.IsDone"   s    $;5#..3355r   c                 F    | j                  |      | _        | j                  S r   r   )r   refs     r   PollzCancellationPoller.Poll%   s    S!DI99r   c                     | j                   r>| j                   j                  r(| j                   j                  j                         xs dS y)N )r   r   DescriptiveMessage)r   s    r   
GetMessagezCancellationPoller.GetMessage)   s6    yyTYY))YY!!446<"<r   c                     |S r    r   s     r   	GetResultzCancellationPoller.GetResult.   s    Jr   N)	__name__
__module____qualname____doc__r   r   r   r!   r$   r#   r   r   r
   r
      s    -
6
r   r
   c                 T   |r	 ||        yt        |      }t        j                  dj                  | j	                               |j
                        5   ||        t        j                  ||       }|s2t        j                  dj                  | j	                                     |j                  j                         r2t        j                  dj                  | j	                                     |j                  j                         dk7  r|j                         rAt        j                  dj                  | j	                         |j                                     t        j                  dj                  | j	                                     	 ddd       y# 1 sw Y   yxY w)zFCancels a resource for a surface, including a pretty progress tracker.NzCancelling [{}])messagedetail_message_callbackzFailed to cancel [{}].z=[{}] has completed successfully before it could be cancelled.	CancelledzFailed to cancel [{}]: {})r
   r   ProgressTrackerformatNamer!   r   PollUntilDoneserverless_exceptionsCancellationFailedErrorr   IsReadyTerminalConditionReason)r   r   	cancellerasync_pollerress         r   Cancelr9   2   sT   cN
f%&''&&sxxz2$// cN


vs
+C!99
"
)
)#((*
5  ~~!99
I6#((*  ~~--/;>				#;;'..sxxz6;L;L;NO
 	
 $;;$++CHHJ7
 	
 ?  s   D?FF'N)r(   
__future__r   r   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.command_lib.runr   r1   googlecloudsdk.core.consoler   OperationPollerr
   r9   r#   r   r   <module>r?      s4    C &  ' . N 8// 0
r   