
                             S r SSKJr  SSKJr  SSKJ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.    )absolute_import)division)unicode_literalsN)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.New0   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indexr0   s    r   r7   
Task.indexC   s    ;;!!r   c                 (    U R                   [           $ r,   )labelsEXECUTION_LABELr0   s    r   execution_nameTask.execution_nameG   s    ;;''r   c                 T    [         U R                  ;   a  U R                  [            $ S $ r,   )STATE_LABELr:   r0   s    r   running_stateTask.running_stateK   s!    '2dkk'A4;;{#KtKr   c                 .    U R                   R                  $ )z5The service account to use as the container identity.)r"   serviceAccountNamer0   s    r   service_accountTask.service_accountO   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)!rI   	Abandoned)-rI   )rH   rI   )r   GetConsoleAttrGetEncodingr@   _PickSymbol)r1   encodings     r   ReadySymbolAndColorTask.ReadySymbolAndColorT   s    **,88:HY&7&()12 2			{	*4c8DgMM			x	'			{	*			{	*r   c                 .    U R                   R                  $ r,   )r6   	startTimer0   s    r   
start_timeTask.start_timed   s    ;;   r   c                 .    U R                   R                  $ r,   )r6   completionTimer0   s    r   completion_timeTask.completion_timeh   s    ;;%%%r   c                 p    U R                   R                  b  U R                   R                  =(       d    S$ g r5   )r6   r[   retriedr0   s    r   retriesTask.retriesl   s*    {{([[  %A%r   c                     U R                   R                  bA  U R                   R                  R                  b   U R                   R                  R                  $ U R                   R                  b  gg r5   )r6   lastAttemptResultexitCoder_   r0   s    r   last_exit_codeTask.last_exit_coder   sT    %%1%%..:[[**333		#	#	/r   c                     U R                   R                  bU  U R                   R                  R                   R                  b*  U R                   R                  R                   R                  $ g)N )r6   rg   messager0   s    r   last_exit_messageTask.last_exit_message{   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NodeSelectorValuer0   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)
rv   r   KeyValueListAsDictionaryWrapperr"   rq   additionalPropertiesrs   rt   ru   AdditionalPropertyr0   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   propertyr2   r7   r<   r@   rD   rX   r\   r`   rd   ri   rn   rv   r   r   __classcell__)r)   s   @r   r   r   (   s    K%,	$'/!#4o"FG  3 3 " " ( ( L L ( (  ! ! & &  
      r   r   )r   
__future__r   r   r   enumgooglecloudsdk.api_lib.runr   r   googlecloudsdk.core.consoler   	RUN_GROUPr/   r   r   r;   r?   Enumr   ContainerResourcer   r   r   r   <module>r      sk    ? &  '  9 1 4((:5  ! 0/DII 
i// ir   