
    
                         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 ddlmZ ddlmZ  G d	 d
e	j                         Zd Zy)z<Wrapper around serverless_operations DeleteFoo for surfaces.    )absolute_import)division)unicode_literals)
exceptions)waiter)
conditions)progress_trackerc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)DeletionPollerz!Polls for deletion of a resource.c                      || _         d| _        y)z%Supply getter as the resource getter.N)_getter_ret)selfgetters     1lib/googlecloudsdk/command_lib/run/v2/deletion.py__init__zDeletionPoller.__init__   s    DLDI    c                 |    |yt        j                  | j                        }|d u xs t        j                  |      S )NT)r   GetTerminalConditionr   IsConditionFailed)r   objterminal_conditions      r   IsDonezDeletionPoller.IsDone$   sA    
{#88C% )E)E* r   c                     	 | j                  |      | _        | j                  S # t        j                  $ r d | _        Y | j                  S w xY wN)r   r   api_exceptionsHttpNotFoundError)r   refs     r   PollzDeletionPoller.Poll,   sK    ,,s#di 99 ++ di99s   $ AAc                     | j                   syt        j                  | j                         }|r%t        j                  |      s|j                  xs dS y)N )r   r   r   IsConditionReadymessage)r   r   s     r   
GetMessagezDeletionPoller.GetMessage3   sJ    99#88C*"="=#  ''-2-r   c                     |S r    )r   r   s     r   	GetResultzDeletionPoller.GetResult=   s    Jr   N)	__name__
__module____qualname____doc__r   r   r   r$   r'   r&   r   r   r   r      s    )
r   r   c                    |r	 ||        yt        |      }t        j                  dj                  | j	                               |j
                        5   ||        t        j                  ||       }|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)zFDeletes a resource for a surface, including a pretty progress tracker.NzDeleting [{}])r#   detail_message_callbackzFailed to delete [{}]: {}.zFailed to delete [{}].)
r   r	   ProgressTrackerformatNamer$   r   PollUntilDoneserverless_exceptionsDeletionFailedError)r   r   deleterasync_pollerress         r   Deleter8   A   s    CL
&!&''$$SXXZ0$// CL


vs
+C
				#77(//
F<M<M<OP
 	
 $77$++CHHJ7
 	
   s   B$DDN)r+   
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.command_lib.runr2   !googlecloudsdk.command_lib.run.v2r   googlecloudsdk.core.consoler	   OperationPollerr   r8   r&   r   r   <module>r@      s;    C &  ' 9 . N 8 8"V++ "J
r   