
                             S r SSKrSSKJr  SSKJr  SSKJr  \R                  S-   rSr	Sr
S	rS
r " S S\R                  5      r " S S\R                  5      rg)z8Wraps a Cloud Run Task message with convenience methods.    N)container_resource)
k8s_object)console_attrz/creatorStarted	Completedzrun.googleapis.com/executionzrun.googleapis.com/runningStatec                       \ rS rSrSrSrSrg)RestartPolicy    Never	OnFailure N)__name__
__module____qualname____firstlineno__NEVER
ON_FAILURE__static_attributes__r       &lib/googlecloudsdk/api_lib/run/task.pyr	   r	       s    
%*r   r	   c                     ^  \ rS rSrSrSrS r\r\	" \
\15      r\U 4S j5       r\S 5       r\S 5       r\S 5       r\S 5       r\S	 5       rS
 r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rS r\S 5       rSrU =r$ )Task%   zCWraps a Cloud Run Execution message, making fields more convenient.zrun.googleapis.comc                    > [         [        U ]  X5      nUR                  R	                  5       /UR
                  R                  R
                  l        U$ )zProduces a new Task object.

Args:
  client: The Cloud Run API client.
  namespace: str, The serving namespace.

Returns:
  A new Task object.
)superr   NewMESSAGES_MODULE	Containerspectemplate
containers)clsclient	namespaceret	__class__s       r   r   Task.New-   sE     c
v
1C)/)?)?)I)I)K(LCHH%Jr   c                 @    U R                   R                  [        5      $ N)annotationsgetAUTHOR_ANNOTATIONselfs    r   authorTask.author<   s     122r   c                 @    U R                   R                  =(       d    S$ Nr   )statusindexr-   s    r   r4   
Task.index@   s    ;;!!r   c                 (    U R                   [           $ r)   )labelsEXECUTION_LABELr-   s    r   execution_nameTask.execution_nameD   s    ;;''r   c                 T    [         U R                  ;   a  U R                  [            $ S $ r)   )STATE_LABELr7   r-   s    r   running_stateTask.running_stateH   s!    '2dkk'A4;;{#KtKr   c                 .    U R                   R                  $ )z5The service account to use as the container identity.)r   serviceAccountNamer-   s    r   service_accountTask.service_accountL   s     99'''r   c                 D   [         R                  " 5       R                  5       nU R                  S:X  a  U R	                  SSU5      S4$ U R                  S:X  a  U R	                  SSU5      S4$ U R                  S	:X  a  g
U R                  S:X  a  gU R                  S:X  a  gg)zAReturn a tuple of ready_symbol and display color for this object.Runningu   ….yellow	Succeededu   ✔+greenFailed)Xred	Cancelled)!rF   	Abandoned)-rF   )rE   rF   )r   GetConsoleAttrGetEncodingr=   _PickSymbol)r.   encodings     r   ReadySymbolAndColorTask.ReadySymbolAndColorQ   s    **,88:HY&7&()12 2			{	*4c8DgMM			x	'			{	*			{	*r   c                 .    U R                   R                  $ r)   )r3   	startTimer-   s    r   
start_timeTask.start_timea   s    ;;   r   c                 .    U R                   R                  $ r)   )r3   completionTimer-   s    r   completion_timeTask.completion_timee   s    ;;%%%r   c                 p    U R                   R                  b  U R                   R                  =(       d    S$ g r2   )r3   rX   retriedr-   s    r   retriesTask.retriesi   s*    {{([[  %A%r   c                     U R                   R                  bA  U R                   R                  R                  b   U R                   R                  R                  $ U R                   R                  b  gg r2   )r3   lastAttemptResultexitCoder\   r-   s    r   last_exit_codeTask.last_exit_codeo   sT    %%1%%..:[[**333		#	#	/r   c                     U R                   R                  bU  U R                   R                  R                   R                  b*  U R                   R                  R                   R                  $ g)N )r3   rd   messager-   s    r   last_exit_messageTask.last_exit_messagex   sM    %%1%%,,44@[[**11999r   c                     U R                   R                  cD  [        R                  " U R                  R
                  R                  5      U R                   l        g g r)   )r   nodeSelectorr   InitializedInstance	_messagesTaskSpecNodeSelectorValuer-   s    r   _EnsureNodeSelectorTask._EnsureNodeSelector   sA    yy%)==
..
!
!
3
3 dii &r   c                     U R                  5         [        R                  " U R                  R                  R
                  U R                  R                  R                  R                  SSS9$ )z=The node selector as a dictionary { accelerator_type: value}.keyvalue)	key_fieldvalue_field)
rs   r   KeyValueListAsDictionaryWrapperr   rn   additionalPropertiesrp   rq   rr   AdditionalPropertyr-   s    r   node_selectorTask.node_selector   sU     	55		3311DD	 r   r   )r   r   r   r   __doc__API_CATEGORYKINDCOMPLETED_CONDITIONREADY_CONDITION	frozensetSTARTED_CONDITIONTERMINAL_CONDITIONSclassmethodr   propertyr/   r4   r9   r=   rA   rU   rY   r]   ra   rf   rk   rs   r}   r   __classcell__)r&   s   @r   r   r   %   s    K%,	$'/!#4o"FG  3 3 " " ( ( L L ( (  ! ! & &  
      r   r   )r   enumgooglecloudsdk.api_lib.runr   r   googlecloudsdk.core.consoler   	RUN_GROUPr,   r   r   r8   r<   Enumr	   ContainerResourcer   r   r   r   <module>r      sd    ?  9 1 4((:5  ! 0/DII 
i// ir   