
    n                     D   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S r\R2                  \R4                  " \R6                  R8                  5       " S S\R:                  5      5       5       r\R4                  " \R6                  R>                  5       " S S\5      5       r \R4                  " \R6                  RB                  5       " S S\ 5      5       r"g)zCommand for running jobs.    )absolute_import)division)unicode_literals)base)connection_context)container_parser)
exceptions)flags)messages_util)pretty_print)resource_args)serverless_operations)stages)concept_parsers)presentation_specs)log)progress_trackerc                      Sn [         R                  " U S9nUR                  [        R                  " SS95        UR                  [        R
                  " 5       5        U$ )zDReturns an argument group with all per-container args for overrides.z|
Container Flags

  If the --container is specified the following arguments may only be specified after a --container flag.
)helpTfor_execution_overrides)r   ArgumentGroupAddArgumentr
   ArgsFlagOverrideEnvVarsFlag)	help_textgroups     lib/surface/run/jobs/execute.pyContainerOverridesGroupr   %   sN    )
 

)
,%ENN4@AE--/0	,    c                   \    \ rS rSrSrSSS.rSr\S 5       r\	S 5       r
SS
 jrS rS rSrg	)Execute3   Execute a job.z#
          {description}
          zI
          To execute a job:

              $ {command} my-job
          )DESCRIPTIONEXAMPLESz`--update-env-vars`, `--args`c                    [         R                  " S[        R                  " SS9SSSS9n[        R
                  " U/5      R                  U5        UR                  5       n[        R                  " U5        [        R                  " U5        UR                  R                  S5        [        R                  " USS9  [        R                  " USS9  g )	NJOBT)promptzJob to execute.F)requiredprefixesnoner   )r   ResourcePresentationSpecr   GetJobResourceSpecr   ConceptParserAddToParseradd_mutually_exclusive_groupr
   AddAsyncFlagAddWaitForCompletionFlagdisplay_info	AddFormatAddTaskTimeoutFlagsAddTasksFlag)clsparserjob_presentationpolling_groups       r   
CommonArgsExecute.CommonArgsE   s    )BB((5 !!#3"45AA&I779M	}%	""=1
!!&)	fdC	vt<r    c                 n    [         R                  U 5        [        5       n[        R                  " X5        g N)r"   r<   r   r   AddContainerFlags)r9   container_argss     r   ArgsExecute.ArgsW   s&    v,.N&&v>r    Nc                     [         R                  " US5      =(       a    UR                  (       + nUR                  UUR                  UR                  US9$ )Nargs)nameupdate_env_varsrE   
clear_args)r
   FlagIsExplicitlySetrE   MakeContainerOverriderG   )self
operationsrE   container_namerH   s        r   _MakeContainerOverrdeExecute._MakeContainerOverrde]   sO     **48J]J++,,YY	 ,  r    c                 V   [         R                  " US5      (       a  UR                  R                  5        Hn  u  p#[         R                  " US5      (       a  M#  [         R                  " US5      (       a  MA  [        R
                  " SR                  X R                  5      5      e   g g )N
containersrE   rG   zrNo container overrides requested to container `{}`. Did you mean to include the flags {} after `--container` flag?)r
   rI   rQ   itemsr	   NoConfigurationChangeErrorformatcontainer_flags_text)rK   rE   rM   rA   s       r   _AssertContainerOverrides!Execute._AssertContainerOverridesh   s      |44,0OO,A,A,C
(.((F
 
++N<MNN55Ovn&?&?@ 	 -D 5r    c           
         UR                   R                  R                  5       n[        R                  " U5        U R                  U5        [        R                  " U[        R                  R                  U R                  5       5      n[        R                  " U5       n[        R                  " S[        R                   " UR"                  S9SUR$                  S9 nSn[        R&                  " U5      (       Ga0  UR)                  U[        R*                  " U5      5        / n[        R,                  " U5      (       a  [        R.                  " U5      (       a   UR1                  U R3                  XA5      5        [        R4                  " US5      (       aD  UR6                  R9                  5        H&  u  pUR1                  U R3                  XIU5      5        M(     [        R4                  " US5      (       a  UR:                  OSn
UR=                  UR>                  UR@                  U
U5      nURC                  UUUR"                  UR$                  U R                  5       U5      nSSS5        UR$                  (       a.  [D        RF                  " S	RI                  WRJ                  S
95        OCUR"                  (       a  SOSn[D        RF                  " SRI                  WRJ                  US95        [L        RN                  RQ                  [R        RT                  " U R                  5       U5      5        UsSSS5        $ ! , (       d  f       N= f! , (       d  f       g= f)zExecute a Job on Cloud Run.zCreating execution...)include_completionzExecuting job failed)failure_messagesuppress_outputNrQ   priority_tierPRIORITY_TIER_UNSPECIFIEDzIExecution [{{bold}}{execution}{{reset}}] is being started asynchronously.)	execution	completedzstarted runningzFExecution [{{bold}}{execution}{{reset}}] has successfully {operation}.)r^   	operation)+CONCEPTSjobParser
   ValidateResourcerV   r   GetConnectionContextProductRUNReleaseTrackr   Connectr   StagedProgressTrackerr   ExecutionStageswaitasync_HasExecutionOverridesValidateConfigOverrides)GetExecutionOverridesChangesForValidationHasContainerOverridesHasTopLevelContainerOverrideappendrN   rI   rQ   rR   r\   GetExecutionOverridestaskstask_timeoutRunJobr   SuccessrT   rF   r   statusPrintr   GetExecutionCreatedMessage)rK   rE   job_refconn_contextrL   tracker	overridescontainer_overridesrM   rA   tierer`   s                r   RunExecute.Runt   s   mm%%'G	7#""4(%::emm!2!2!4L 
	&	&|	4
11
!

 
 DII
>0++	
 	&&t,,

,
,uFFtL !#
((..11$77!((,,Z> ((|<<48OO4I4I4K0.#**.."N 5L **4AA   . 
 !66jj!	) IIKK
GX 
''-vv'?	

 $(99K2C	((.&&I )/ )	
 
jj

2
243D3D3F
J  
5	4  
5	4s&    >MFL<%CM<
M
	M
M r?   )__name__
__module____qualname____firstlineno____doc__detailed_helprU   classmethodr<   staticmethodrB   rN   rV   r   __static_attributes__r   r    r   r"   r"   3   sV     		- 9= =" ? ?
	
Gr    r"   c                   (    \ rS rSrSr\S 5       rSrg)BetaExecute   r$   c                     U R                  U5        [        5       n[        R                  " XU R	                  5       5        g r?   )r<   r   r   r@   rh   r8   r9   rA   s      r   rB   BetaExecute.Args   s2    NN6,.N&& 0 0 2r    r   Nr   r   r   r   r   r   rB   r   r   r    r   r   r      s     r    r   c                   (    \ rS rSrSr\S 5       rSrg)AlphaExecute   r$   c                     U R                  U5        [        R                  " U5        [        5       n[        R
                  " XU R                  5       5        g r?   )r<   r
   AddPriorityFlagr   r   r@   rh   r   s      r   rB   AlphaExecute.Args   s@    NN6	&!,.N&& 0 0 2r    r   Nr   r   r    r   r   r      s     r    r   N)#r   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r   r	   r
   r   r   r   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   r   UniverseCompatibleReleaseTracksrh   GACommandr"   BETAr   ALPHAr   r   r    r   <module>r      s      &  ' ( = ; 5 0 8 7 8 @ 1 D G # 8 D%%(()Fdll F * FR D%%**+	' 	 ,	 D%%++,
; 
 -
r    