
    >"                        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SKJr  SSKJr  \R4                  R6                  4S jr\R:                  \R<                  " \R4                  R6                  5       " S S\R>                  5      5       5       r \R<                  " \R4                  RB                  5       " S S\ 5      5       r"\R<                  " \R4                  RF                  5       " S S\"5      5       r$g)Update a Cloud Run Job.    )absolute_import)division)print_function)unicode_literals)base)config_changes)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S95        UR                  [        R
                  " U S95        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  [        R                   " 5       5        U$ )z=Returns an argument group with all per-container update args.z
Container Flags

  If the --container or --remove-containers flag is specified the following
  arguments may only be specified after a --container flag.
helpz/us-docker.pkg.dev/cloudrun/container/job:latestF)imagerequiredrelease_track)r   ArgumentGroupAddArgumentr   ImageArgMutexEnvVarsFlags
MemoryFlagCpuFlagGpuFlagArgsFlagSecretsFlagsCommandFlagDependsOnFlagAddVolumeMountFlagRemoveVolumeMountFlagClearVolumeMountsFlagStartupProbeFlag)r   	help_textgroups      lib/surface/run/jobs/update.pyContainerArgGroupr0   '   sP   ) 

)
,%nnA E++-HIE$$&'EMMO$EMMO$ENN$%E&&()E%%'(E'')*E,,./E//12E//12E**,-	,    c                   H    \ rS rSrSrSSS.r\S 5       r\S 5       r	S r
S	rg
)UpdateG   r   z-          Updates a Cloud Run job.
          z          To update the container image of Cloud Run job `my-job`:

              $ {command} my-job --image=us-docker.pkg.dev/project/image
          )DESCRIPTIONEXAMPLESc                    [         R                  " S[        R                  " SS9SSSS9n[        R
                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " U5        [        R                  " USS9  [        R                  " U5        [        R                  " U5        [        R                   " USS	9  [        R"                  " U5        [        R$                  " USS	9  [        R&                  " USS
9  [        R(                  " U5        [        R*                  " XR-                  5       5        [        R.                  " U5        [        R0                  " U5        UR3                  5       n[        R4                  " U5        UR7                  SS9n[        R8                  " USS9  [        R:                  " U5        [<        R>                  " U/5      RA                  U5        URB                  RE                  S5        g )NJOBT)promptzJob to update.F)r   prefixesjob)resource_kind)
with_clear)hiddenz=--async cannot be used if executing the job after the update.r   )implies_execute_nownone)#r   ResourcePresentationSpecr   GetJobResourceSpecr   AddLabelsFlagsAddParallelismFlagAddTasksFlagAddMaxRetriesFlagAddTaskTimeoutFlagsAddServiceAccountFlagAddCloudSQLFlagsAddVpcConnectorArgs AddVpcNetworkGroupFlagsForUpdateAddEgressSettingsFlagAddClientNameAndVersionFlagsAddBinAuthzPolicyFlagsAddBinAuthzBreakglassFlagAddCmekKeyFlagAddSandboxArgAddGeneralAnnotationFlagsAddVolumesFlagsReleaseTrackAddGpuTypeFlagGpuZonalRedundancyFlagadd_mutually_exclusive_groupAddAsyncFlagadd_argument_groupAddWaitForCompletionFlagAddExecuteNowFlagr   ConceptParserAddToParserdisplay_info	AddFormat)clsparserjob_presentationpolling_groupexecute_groups        r/   
CommonArgsUpdate.CommonArgsW   s    *BB((5 
 	V$	v	F#	f%	'	6"	f%	**6G	'	&&v.	  D9	##F+	E2	t,	##F+	&"2"2"45	 	  (779M	}%!44L 5 NM	""=dK	M*!!#3"45AA&I
!!&)r1   c                     [         R                  U 5        [        5       n[        R                  " X5        [
        R                  " 5       R                  U 5        g )N)r3   re   r0   r   AddContainerFlagsr   RemoveContainersFlagr]   )ra   container_argss     r/   ArgsUpdate.Args   s=    
f&(N&&v>	 ,,V4r1   c           	      z  ^ ^^
^^^ TR                   R                  R                  5       m[        R                  " T5        [
        R                  " T[        R                  R                  T R                  5       5      n[        R                  " TT R                  5       S9nUR                  [        R                  " T R                  5       5      5        TR                  =(       d    TR                  m
[         R"                  " U5       m[$        R&                  " [(        R*                  " UTSS5      5        T
(       a  SmOSmUU
UUUU 4S jn U" U5      u  pVTR6                  (       a5  T
(       d.  [$        R8                  " S
R;                  UR<                  S95        OSnTR                  (       a  USR;                  UR<                  5      -  nO%T
(       a  USR;                  UR<                  5      -  n[$        R8                  " SR;                  UR<                  US95        Sn	T
(       a-  U	[(        R>                  " T R                  5       U5      -  n	U	S-  n	U	[(        R@                  " T R                  5       UR<                  T
S9-  n	[B        RD                  RG                  U	5        UsS	S	S	5        $ ! [,        R.                   a_  n[        R0                  " T[3        U5      5      (       a3  UR                  [        R4                  " SS95        U" U5      u  pV S	nAGNUeS	nAff = f! , (       d  f       g	= f)zUpdate a Job on Cloud Run.r   Updatingr;   zUpdating and running job...zUpdating job...c           	      r  > [         R                  " T[        R                  " TTR                  S9STR
                  S9 nS nTR                  TXTR
                  S9nT(       a7  TR                  TUTR                  TR
                  T	R                  5       5      nX24sS S S 5        $ ! , (       d  f       g = f)N)execute_nowinclude_completionzJob failed to deploy)failure_messagesuppress_output)asyn)	r   StagedProgressTrackerr   	JobStageswaitasync_	UpdateJobRunJobrT   )
changes_tracker
execution_job_argsrp   
header_msgjob_ref
operationsselfs
       r/   
_UpdateJobUpdate.Run.<locals>._UpdateJob   s    33'DII 3 KK
 *%%xt{{ & $ #**$))T[[$:K:K:MJ !!
 
 
s    AB((
B6F)gpu_zonal_redundancyNz=Job [{{bold}}{job}{{reset}}] is being updated asynchronously.)r;   zbeen updatedz and completed execution [{}]z# and started running execution [{}]z:Job [{{bold}}{job}{{reset}}] has successfully {operation}.)r;   	operation 
)repeat)$CONCEPTSr;   Parser   ValidateResourcer
   GetConnectionContextProductRUNrT   GetJobConfigurationChangesappendr	   SetLaunchStageAnnotationChangerp   rw   r   Connectr   Infor   GetStartDeployMessager   	HttpErrorShouldRetryNoZonalRedundancystrGpuZonalRedundancyChangerx   SuccessformatnameGetExecutionCreatedMessageGetRunJobMessager   statusPrint)r   r   conn_contextchangesr   r;   	executioner   msgrp   r   r   r   s   ``        @@@@r/   Run
Update.Run   s   mm%%'G	7#%::emm!2!2!4L ..'')+G NN55d6G6G6IJ ""/diiK		&	&|	4


-
-GZ
 
2
&
" "&#G, 
[$ff2	

 #	99
6==innM
M)
<CCnn ) 	HOOHH	 P 	
 c	}77
 	
 	t	]++



sxx c 
jjsQ 
5	4> !! 	--dCF;;
..55',
 &g..#y'	? 
5	4s?   
AL,
J6EL,6L)
AL$L,"L$$L))L,,
L: N)__name__
__module____qualname____firstlineno____doc__detailed_helpclassmethodre   staticmethodrk   r   __static_attributes__r   r1   r/   r3   r3   G   sG      		- '* '*R 5 5Yr1   r3   c                   (    \ rS rSrSr\S 5       rSrg)
BetaUpdate   r   c                     U R                  U5        [        [        R                  R                  S9n[
        R                  " XU R                  5       5        [        R                  " 5       R                  U5        g Nr   )
re   r0   r   rT   BETAr   rh   r   ri   r]   r`   ra   rj   s      r/   rk   BetaUpdate.Args   sY    NN6&T5F5F5K5KLN&& 0 0 2 
 ,,V4r1   r   Nr   r   r   r   r   r   rk   r   r   r1   r/   r   r      s    5 5r1   r   c                   (    \ rS rSrSr\S 5       rSrg)AlphaUpdate   r   c                 R   U R                  U5        [        [        R                  R                  S9n[
        R                  " XU R                  5       5        [        R                  " 5       R                  U5        [        R                  " U5        [        R                  " U5        g r   )re   r0   r   rT   ALPHAr   rh   r   ri   r]   AddRuntimeFlagAddPriorityFlagr   s      r/   rk   AlphaUpdate.Args   su    NN6&T5F5F5L5LMN&& 0 0 2 
 ,,V4	 	&!r1   r   Nr   r   r1   r/   r   r      s    " "r1   r   N)%r   
__future__r   r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr	   r
   r   r   r   r   r   r   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   rT   GAr0   UniverseCompatibleReleaseTracksCommandr3   r   r   r   r   r   r1   r/   <module>r      s    &  % ' ( 9 = ; 5 0 8 7 8 @ 1 D G # 8 %)$5$5$8$8 @ D%%(()XT\\ X * Xv D%%**+
5 
5 ,
5 D%%++,"* " -"r1   