
    #                     ,   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                  " XR                  5       SS9  [         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        [         R.                  " U5        [         R0                  " U5        [         R2                  " U5        [4        R6                  " S[8        R:                  " SS9SSSS	9n[<        R>                  " U/5      R#                  U5        UR@                  RC                  S
5        g )Nworker)r   resource_kind)r4   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 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	..0 
**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)rX   r+   r$   r   AddContainerFlagsrU   rV   container_argss      r*   ArgsUpdate.Args~   s=    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$   rm   input_flagsinsertre   BinaryAuthorizationChangeappendSetLaunchStageChange)ri   argsrl   rj   s       r*   _GetBaseChangesUpdate._GetBaseChanges   s    <<!G 	!1!1<@NN	77%)	
 NN2243D3D3FG Nr,   c                   ^ 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TR&                  (       a/  [2        R4                  " SR/                  UR0                  U
S95        OUR7                  5         SR/                  UR0                  S9nUR8                  (       aW  UR8                  R:                  (       a<  [<        R>                  " UR8                  R:                  5      nUSR/                  US9-  nU(       a!  U(       d  [2        R4                  " US-   5        O[2        R4                  " US-   5        SSS5        g! , (       d  f       g= 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regionrw   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 [{}]zPWorker pool [{{bold}}{worker_pool}{{reset}}] is {result_message} asynchronously.)r~   result_messagez,Worker pool [{{bold}}{worker_pool}{{reset}}])r~   z" revision [{{bold}}{rev}{{reset}}])revz has been updated.z has been deployed.N) r}   r~   r   r   ValidateResourcer   GetGapicClientInstancer   WorkerPoolsOperationsGetWorkerPoolr	   *MaybeLogDefaultGpuTypeMessageForV2Resourcerx   config_changes_modAdjustsTemplater   StagedProgressTrackerr   WorkerPoolStagesasync_ReleaseWorkerPoolr   ArgumentErrorrh   workerPoolsIdr
   Successresultmetadatalatest_created_revisionr   GetNameFromFullChildName)ri   rw   worker_pool_refr   
run_clientworker_pools_clientr~   r   headerr   r   creates_revisionresponsemsgr   s    `             r*   Run
Update.Run   s+   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+99- % 	
 	<CC'55 D 
 !2!2!J!J(AA77# 5<<<E
E#/


s%99
:


s%::
;M
 
 
s   EI&&
I4 N)F)__name__
__module____qualname____firstlineno____doc__detailed_helprr   classmethodrX   r_   rm   rx   r   __static_attributes__r   r,   r*   r.   r.   B   s\     Q		-% 
 $* $*L  "A<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        [        R                  " U5        [        R                  " U5        [	        U R                  5       5      n[        R                  " XU R                  5       5        g r[   )rX   r   AddWorkerPoolMinInstancesFlagAddWorkerPoolMaxInstancesFlagr+   r$   r   r\   r]   s      r*   r_   AlphaUpdate.Args   sY    NN6	''/	''/&s'7'7'9:N&& 0 0 2r,   r   N)r   r   r   r   r   r   r_   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.v2re   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%%**+c<T\\ c< , c<L D%%++,&  - nn r,   