
    $                     ,   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  \R2                  R4                  4S jr\R8                  \R:                  " \R2                  R<                  5       " S S\R>                  5      5       5       r \R:                  " \R2                  RB                  5       " S S\ 5      5       r"\ R                   \"l         g)z;Command for updating env vars and other configuration info.    )apis)base)config_changes)container_parser)
exceptions)flags)messages_util)pretty_print)resource_args)resource_name_conversion)stages)flags_parser)worker_pools_operations)concept_parsers)presentation_specs)progress_trackerc                    Sn[         R                  " US9nUR                  [        R                  " 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"                  :X  d  U [         R                   R$                  :X  a$  UR                  [        R&                  " 5       5        U$ )z9Returns an argument group with all container update args.z@
Container Flags

  The following flags apply to the container.
)helpF)required)release_track)r   ArgumentGroupAddArgumentr   ImageArgMutexEnvVarsFlags
MemoryFlagCpuFlagCommandFlagArgsFlagr   SecretsFlagsDependsOnFlagAddVolumeMountFlagRemoveVolumeMountFlagClearVolumeMountsFlagReleaseTrackALPHABETAGpuFlag)r   	help_textgroups      &lib/surface/run/worker_pools/update.pyContainerArgGroupr+   $   sX   )
 

)
,%ENNE23E++-HIE$$&'EMMO$E%%'(ENN$%L--/0E'')*E,,./E//12E//12 t((...	$++00	0	emmo&	,    c                   \    \ rS rSrSrSSS.rSr\S 5       r\S 5       r	S	 r
SS
 jrS rSrg)UpdateB   zHUpdate Cloud Run environment variables and other configuration settings.z"          {description}
          z          To update one or more env vars:

              $ {command} myworkerpool --update-env-vars=KEY1=VALUE1,KEY2=VALUE2
         )DESCRIPTIONEXAMPLESzZ`--update-env-vars`, `--memory`, `--concurrency`, `--timeout`, `--connectivity`, `--image`c                    [         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5        [         R                  " U5        [         R                  " XR                  5       5        [         R                  " USS9  [         R                  " U5        [         R                   " USS9  [         R"                  " 5       R%                  U5        [         R&                  " U5        [         R(                  " U5        [         R*                  " U5        [         R,                  " U5        [         R.                  " U5        [         R0                  " U5        [         R2                  " U5        [         R4                  " U5        [6        R8                  " S[:        R<                  " SS9SSSS9n[>        R@                  " U/5      R%                  U5        URB                  RE                  S	5        g )
Nworker)resource_kindWORKER_POOLT)promptz*WorkerPool to update the configuration of.F)r   prefixesnone)#r   AddBinAuthzPolicyFlagsAddBinAuthzBreakglassFlagr   AddCloudSQLFlagsAddCmekKeyFlag"AddCmekKeyRevocationActionTypeFlagAddDescriptionFlagAddEgressSettingsFlag!AddEncryptionKeyShutdownHoursFlagAddRevisionSuffixArgAddRuntimeFlagAddVolumesFlagsr$   AddScalingFlagAddInstancesFlag AddVpcNetworkGroupFlagsForUpdateRemoveContainersFlagAddToParserAddAsyncFlagAddLabelsFlagsAddGeneralAnnotationFlagsAddServiceAccountFlagAddClientNameAndVersionFlagsAddNoPromoteFlagAddGpuTypeFlagGpuZonalRedundancyFlagr   ResourcePresentationSpecr   GetV2WorkerPoolResourceSpecr   ConceptParserdisplay_info	AddFormat)clsparserworker_pool_presentations      r*   
CommonArgsUpdate.CommonArgsW   s   	  (	##F+!!&)	 	,,V4	V$	'	++F3	v&	 	&"2"2"45	h 
6"	**6J	 ,,V4	v	 	##F+	'	&&v.	6"	 	  (1JJ11>4  !!#;"<=II !!&)r,   c                     U R                  U5        [        U R                  5       5      n[        R                  " XU R                  5       5        g NrY   r+   r$   r   AddContainerFlagsrV   rW   container_argss      r*   ArgsUpdate.Args   =    NN6&s'7'7'9:N&& 0 0 2r,   c                     U(       a  g U(       a1  [        U5      S:X  aH  [        US   [        R                  5      (       a%  [        R
                  " SR                  U5      5      eg g )N   r   zHNo configuration change requested. Did you mean to include the flags {}?)len
isinstancev2_config_changes_modSetClientNameAndVersionChanger   NoConfigurationChangeErrorformat)selfchanges
flags_textignore_emptys       r*   _AssertChangesUpdate._AssertChanges   sb    GAJ!??
 

 11228&2D 
 	r,   c                 4   [         R                  " XR                  5       5      nU R                  X0R                  U5        UR                  S[        R                  " SS95        UR                  [        R                  " U R                  5       5      5        U$ )zBReturns the worker pool config changes with some default settings.r   N)breakglass_justification)
r   !GetWorkerPoolConfigurationChangesr$   rp   input_flagsinsertrh   BinaryAuthorizationChangeappendSetLaunchStageChange)rl   argsro   rm   s       r*   _GetBaseChangesUpdate._GetBaseChanges   s    <<!G 	!1!1<@NN	77%)	
 NN2243D3D3FG Nr,   c                 Z  ^ TR                   R                  R                  5       n[        R                  " U5        U4S jn[
        R                  " SSUS9n[        R                  " U5      nUR                  U5      n[        R                  " TU5        U R                  T5      nU(       a  SnSn	Sn
OSnS	n	S
n
[        R                  " U5      n[        R                   " U["        R$                  " US9U	TR&                  S9   UR)                  X'US9nU(       d/  [*        R,                  " SR/                  UR0                  5      5      e SSS5        TR&                  (       a/  [2        R4                  " SR/                  UR0                  U
S95        gWR7                  5         UR0                  nU(       a  SnUR8                  (       aE  UR8                  R:                  (       a*  [<        R>                  " UR8                  R:                  5      n[2        R4                  " [        R@                  " UU RC                  5       TR                   R                  R                  5       RD                  U5      5        g[2        R4                  " SR/                  US95        g! , (       d  f       GNV= f)z Update the worker-pool resource.c                 p   > TR                   R                  R                  5       R                  nUS-   U -   $ )N-)CONCEPTSworker_poolParselocationsId)endpointregionrz   s     r*   DeriveRegionalEndpoint*Update.Run.<locals>.DeriveRegionalEndpoint   s0    }}((..0<<fc\H$$r,   runv2)address_override_funczUpdating...zUpdate failedupdatingzDeploying new worker pool...zDeployment failed	deploying)include_create_revision)failure_messagesuppress_output)prefetchzCannot update worker pool [{}]NzPWorker pool [{{bold}}{worker_pool}{{reset}}] is {result_message} asynchronously.)r   result_messagez>Worker pool [{{bold}}{worker_pool}{{reset}}] has been updated.)r   )#r   r   r   r   ValidateResourcer   GetGapicClientInstancer   WorkerPoolsOperationsGetWorkerPoolr	   *MaybeLogDefaultGpuTypeMessageForV2Resourcer{   config_changes_modAdjustsTemplater   StagedProgressTrackerr   WorkerPoolStagesasync_ReleaseWorkerPoolr   ArgumentErrorrk   workerPoolsIdr
   Successresultmetadatalatest_created_revisionr   GetNameFromFullChildName/GetSuccessMessageForSynchronousWorkerPoolDeployr$   r   )rl   rz   worker_pool_refr   
run_clientworker_pools_clientr   r   headerr   r   creates_revisionresponseworker_pool_namerevision_names    `             r*   Run
Update.Run   sF   mm//557O	?+% ,,t+AJ 2GG &33ODK<<T;O))$/Nf'o!n-f+o"n)99.I		/	/8HI'	
 %66
K 7 h &&,33--
 	
 
" {{"F)77+ #  oo(66	!2!2!J!J2KK77- 	II !!#))//1==		
 	LV 0V1	
Y
 
s   AJ
J* N)F)__name__
__module____qualname____firstlineno____doc__detailed_helpru   classmethodrY   ra   rp   r{   r   __static_attributes__r   r,   r*   r.   r.   B   s\     Q		-% 
 %* %*N  "J
r,   r.   c                   (    \ rS rSrSr\S 5       rSrg)AlphaUpdate   zUpdate a Cloud Run worker-pool.c                     U R                  U5        [        U R                  5       5      n[        R                  " XU R                  5       5        g r\   r]   r_   s      r*   ra   AlphaUpdate.Args   rc   r,   r   N)r   r   r   r   r   r   ra   r   r   r,   r*   r   r      s    ' r,   r   N)#r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r   r   r   r   r	   r
   r   r   r   !googlecloudsdk.command_lib.run.v2rh   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.core.consoler   r$   GAr+   UniverseCompatibleReleaseTracksr&   Commandr.   r%   r   r   r,   r*   <module>r      s    B , ( O ; 5 0 8 7 8 C 1 U : E D G 8 %)$5$5$8$8 < D%%**+m
T\\ m
 , m
` D%%++,	& 	 -	 nn r,   