
    a                     >   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S.rS r\R.                  \R0                  " \R2                  R4                  5      \R6                   " S S\R8                  5      5       5       5       r\R0                  " \R2                  R<                  5       " S S\5      5       r\R0                  " \R2                  R@                  5       " S S\5      5       r!\\l"        g)zUpdate node pool command.    )absolute_import)division)unicode_literals)
exceptions)utils)api_adapter)util)base)flags)log)
console_iozW        *{command}* updates a node pool in a Google Kubernetes Engine cluster.
        z        To turn on node autoupgrade in "node-pool-1" in the cluster
        "sample-cluster", run:

          $ {command} node-pool-1 --cluster=sample-cluster --enable-autoupgrade
        )DESCRIPTIONEXAMPLESc                     [         R                  " U S5        [         R                  " U S5        [         R                  " U 5        U R	                  S[
        SSSS9  g)	zRegister flags for this command.

Args:
  parser: An argparse.ArgumentParser-like object. It is mocked out in order to
    capture some information, but behaves like an ArgumentParser.
zThe name of the node pool.zThe name of the cluster.z	--timeouti  TzTHIS ARGUMENT NEEDS HELP TEXT.)typedefaulthiddenhelpN)r   AddNodePoolNameArgAddNodePoolClusterFlagAddAsyncFlagadd_argumentint)parsers    *lib/surface/container/node_pools/update.py_Argsr   .   sV     6#?@v'ABV+  -    c                   4    \ rS rSrSr\S 5       rS rS rSr	g)UpdateA   )Updates a node pool in a running cluster.c                 l   [        U 5        U R                  SS9n[        R                  " U5        [        R                  " U5        UR                  S5      n[        R                  " USS9  [        R                  " USS9  [        R                  " USSSSS9  [        R                  " U5      n[        R                  " USS9  [        R                  " U5        UR                  S5      n[        R                  " U5        [        R                  " USS9  [        R                  " USS9  [        R                  " U5        [        R                   " USS9  [        R"                  " U5        [        R$                  " USS9  [        R&                  " USS9  [        R(                  " USS9  [        R*                  " USSS	9  [        R,                  " USSS	9  [        R.                  " USSS	9  [        R0                  " U5        [        R2                  " U5        [        R4                  " USS9  [        R6                  " USSS
9  [        R8                  " USSS
9  [        R:                  " USS9  [        R<                  " U5        [        R>                  " U5        [        R@                  " USS9  [        RB                  " U5        [        RD                  " U5        [        RF                  " USSS9  [        RH                  " U5        [        RJ                  " U5        [        RL                  " USS9  [        RN                  " U5        [        RP                  " U5        [        RR                  " U5        UR                  S5      n[        RT                  " USS9  [        RV                  " U5        [        RX                  " U5        [        RZ                  " U5        [        R\                  " U5        [        R^                  " USS9  [        R`                  " U5        [        Rb                  " USSS9  g )NTrequiredNode managementfor_node_poolFenable_gpu_partitionenable_gpu_sharingenable_gpu_driver_installationr   r   Upgrade settingsr'   
for_updater'   	is_updater'   
for_createNode configupdater'   r   )2r   add_mutually_exclusive_groupr    AddNodePoolDatapathProviderFlagsAddNodePoolLocationsFlagadd_argument_groupAddEnableAutoRepairFlagAddEnableAutoUpgradeFlagAddAcceleratorArgsAddClusterAutoscalingFlagsAddNodePoolAutoprovisioningFlagAddWorkloadMetadataFlagAddEnableSurgeUpgradeFlagAddSurgeUpgradeFlagAddMaxUnavailableUpgradeFlagAddEnableBlueGreenUpgradeFlagAddStandardRolloutPolicyFlagAddAutoscaledRolloutPolicyFlagAddNodePoolSoakDurationFlagAddSystemConfigFlagAddLabelsFlagAddNodeLabelsFlagAddNodeTaintsFlag$AddNodeArchitectureTaintBehaviorFlagAddTagsNodePoolUpdateAddEnableGvnicFlagAddEnableImageStreamingFlagAddEnableConfidentialNodesFlagAddConfidentialNodeTypeFlag AddNetworkPerformanceConfigFlagsAddNodePoolEnablePrivateNodesAddEnableFastSocketFlagAddLoggingVariantFlagAddWindowsOsVersionFlagAddContainerdConfigFlagAddStoragePoolsFlag$AddResourceManagerTagsNodePoolUpdateAddQueuedProvisioningFlagAddConsolidationDelayFlagAddMaxRunDurationFlagAddFlexStartFlag AddEnableKubeletReadonlyPortFlagAddMachineTypeFlagAddDiskTypeFlagAddDiskSizeFlag$AddBootDiskProvisionedThroughputFlagAddBootDiskProvisionedIopsFlag-AddEnableKernelModuleSignatureEnforcementFlagAddNodeDrainSettingsFlagAddEnableLustreMultiRailFlagr   groupnode_management_groupautoscaling_groupupgrade_settings_groupnode_config_groups         r   ArgsUpdate.ArgsG   sL   	&M///>E	**51	""5)!445FG	!!"7tL	""#8M	!'+ 88?	))*;EJ	!!%("556HI	##$:;	4DI	&&d4 
''(>?	&&d4	(()?@	%%d4 
eE2	T2	E$G	E$G	..Td 
&	U#	%%e4@	((TT3	%%e44P	**5?	''.	!!%(	T:	!!%(	!!%(	Te5	..u5	##E*	##E$7	&	5!	**5100?	.t<	+,	+,	../@A	(():;	77T 
""5)	&&uDNr   c           	          [         R                  " U5        [        R                  " S80 SUR                  _SUR
                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  _SUR                  _SUR                  _SUR                   _SUR"                  _SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _SUR2                  _SUR4                  _SUR6                  _SUR8                  _SUR:                  _SUR<                  _SUR>                  _SUR@                  _SURB                  _SURD                  _S URF                  _S!URH                  _S"URJ                  _S#URL                  _S$URN                  _S%URP                  _S&URR                  _S'URT                  _S(URV                  _S)URX                  _S*URZ                  _S+UR\                  _S,[_        US-5      (       a   [`        Rb                  " URd                  5      OS _S.URf                  _S/URh                  _S0URj                  _S1URl                  _S2URn                  _S3URp                  _S4URr                  _S5URt                  _S6URv                  _S7URx                  _6$ )9Nacceleratorsenable_autorepairenable_autoupgradeenable_autoscalingnode_locations	max_nodes	min_nodestotal_max_nodestotal_min_nodeslocation_policyworkload_metadataworkload_metadata_from_nodeenable_autoprovisioningmax_surge_upgrademax_unavailable_upgradesystem_config_from_filelabelsnode_labelsnode_taintstagsgvnicenable_image_streamingnetwork_performance_configenable_confidential_nodesconfidential_node_typeenable_blue_green_upgradeenable_surge_upgradenode_pool_soak_durationstandard_rollout_policyautoscaled_rollout_policyenable_private_nodesenable_fast_socketlogging_variantwindows_os_versioncontainerd_config_from_filestorage_poolsenable_queued_provisioningmax_run_durationconsolidation_delay
flex_startmachine_type	disk_type%enable_insecure_kubelet_readonly_portdisk_size_gb	disk_sizeresource_manager_tagsboot_disk_provisioned_iops boot_disk_provisioned_throughput*enable_kernel_module_signature_enforcementnode_drain_grace_periodnode_drain_pdb_timeout%respect_pdb_during_node_pool_deletionenable_lustre_multi_nicdatapath_provider node_architecture_taint_behavior )=r   ValidateSurgeUpgradeSettingsr   UpdateNodePoolOptionsacceleratorrr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   enable_gvnicr   network_performance_configsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   hasattrr   	BytesToGbr   r   r   r   r   node_drain_grace_period_secondsnode_drain_pdb_timeout_secondsr   r   r   r   )selfargss     r   ParseUpdateNodePoolOptions!Update.ParseUpdateNodePoolOptions   s   	&&t,,, 9%%9009  229  22	9
 **9 ..9 ..9 ,,9 ,,9 ,,9 009 %)$D$D9 !% < <9 009 !% < <9  !% < <!9" {{#9$ $$%9& $$'9( YY)9* +9,  $::-9. $(#C#C/90 #'"@"@192  $::394 #'"@"@596 "66798 !% < <99: !% < <;9< #'"@"@=9> "66?9@  22A9B ,,C9D  22E9F %)$D$DG9H ((I9J $(#B#BK9L ..M9N !44O9P ??Q9R &&S9T ..U9V /3.X.XW9Z 4%% __T^^4]9^ #88_9` $(#B#Ba9b *.)N)Nc9d 483b3be9f !% D Dg9h  $BBi9j /3.X.Xk9l !% < <m9n 00o9p *.)N)Nq9 9r   c                    U R                   S   nU R                   S   nU" U5      nUR                  UR                  U5      nU R                  U5      nUR                  b2  [
        R                  " SR                  UR                  S5      S9SSS9  UR                  b2  [
        R                  " S	R                  UR                  S
5      S9SSS9  UR                  b2  [
        R                  " SR                  UR                  S5      S9SSS9  UR                  (       a   [        R                  " UR                  5         UR                  XV5      nUR                   (       a>  UR#                  U5      nUR%                  S5      (       d  [        R&                  Ul        U$ UR)                  USR                  UR*                  5      UR,                  S9  UR/                  U5      n	[        R0                  " U	5        [<        R>                  " U5        U	$ ! [2        R4                   a*  n
[6        R8                  " U
[        R:                  5      eSn
A
ff = f)a  This is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  Cluster message for the successfully updated node pool.

Raises:
  util.Error, if creation failed.
r   location_getNzSThe previous user-specified labels on this node pool will be replaced by '{labels}'r   )r   T)messagethrow_if_unattendedcancel_on_nozSThe previous user-specified taints on this node pool will be replaced by '{taints}'r   )taintszOThe previous user-specified tags on this node pool will be replaced by '{tags}'r   )r   formatzUpdating node pool {0})	timeout_s) contextParseNodePoolnamer   r   r   PromptContinuer   GetValuer   r   r   r	   2CheckForContainerFileSystemApiEnablementWithPrompt	projectIdUpdateNodePoolasync_GetOperationIsSpecifiedOPERATIONS_FORMATWaitForOperation
nodePoolIdtimeoutGetNodePoolCheckForCgroupModeV1apitools_exceptions	HttpErrorr   HttpExceptionHTTP_ERROR_FORMATr   UpdatedResource)r   r   adapterr   locationpool_refoptionsoperation_refoppoolerrors              r   Run
Update.Run   s    ll=)G<</LD!H$$TYY9H--d3G&)*0&}5 +1 +7" &)*0&}5 +1 +7" ||,-3Vv9NV-O"	 %%
==


D,,X?m	!!-0))..$+	

"
)
)(*=*=
>LL  "   *d
% !K	 (( D$$UD,B,BCCDs    AH #AH I*%IIr   N)
__name__
__module____qualname____firstlineno____doc__staticmethodrn   r   r   __static_attributes__r   r   r   r   r   A   s*     2HO HOT<|Dr   r   c                   .    \ rS rSrSr\S 5       rS rSrg)
UpdateBetai  r!   c                    [        U 5        U R                  SS9n[        R                  " U5        UR	                  S5      n[        R
                  " USS9  [        R                  " USS9  [        R                  " USSSSS9  [        R                  " U5      n[        R                  " USS9  UR	                  S5      n[        R                  " U5        [        R                  " USS9  [        R                  " USS9  [        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&                  " USS9  [        R(                  " USS9  [        R*                  " USSS
9  [        R,                  " USSS
9  [        R.                  " USSS
9  [        R0                  " U5        [        R2                  " U5        [        R4                  " USS9  [        R6                  " U5        [        R8                  " USS9  [        R:                  " USS9  [        R<                  " USSS9  [        R>                  " USSS9  [        R@                  " U5        [        RB                  " USS9  [        RD                  " U5        [        RF                  " U5        [        RH                  " U5        [        RJ                  " USSS9  [        RL                  " U5        [        RN                  " USS9  [        RP                  " U5        [        RR                  " U5        [        RT                  " U5        UR	                  S5      n[        RV                  " USS9  [        RX                  " U5        [        RZ                  " U5        [        R\                  " U5        [        R^                  " U5        [        R`                  " U5        [        Rb                  " USS9  [        Rd                  " USSS9  g NTr#   r%   r&   Fr(   r,   r-   )use_moder.   r0   r2   r4   r5   r7   3r   r8   r   r9   r;   r<   r=   r>   r?   r@   rB   rC   rD   rE   rF   rG   rH   rA   r:   rI   rJ   rK   rL   rM   rN   rT   AddEnableGcfsFlagrO   rP   rS   rQ   rR   rU   rV   rW   rZ   rX   rY   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   rf   re   rg   rh   s         r   rn   UpdateBeta.Args  ^   	&M///>E	**51!445FG	!!"7tL	""#8M	!'+ 88?	))*;EJ"556HI	##$:;	4DI	&&d4 
''(>?	&&d4	(()?@	%%d4 
!!%%8	""5)	eE2	T2	E$G	E$G	..Td 
&	''.	E6	U#	%%e4@	**5?	((TT3	%%e44P	!!%(	T:	!!%(	..u5	!!%(	Te5	##E*	##E$7	&	5!	**5100?	.t<	+,	+,	../@A	(():;	""5)	77T 
&&uDNr   c           	      >   [         R                  " U5        [        R                  " S90 SUR                  _SUR
                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  _SUR                  _SUR                  _SUR                   _SUR"                  _SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _SUR2                  _SUR4                  _SUR6                  _SUR8                  _SUR:                  _SUR<                  _SUR>                  _SUR@                  _SURB                  _SURD                  _S URF                  _S!URH                  _S"URJ                  _S#URL                  _S$URN                  _S%URP                  _S&URR                  _S'URT                  _S(URV                  _S)URX                  _S*URZ                  _S+UR\                  _S,UR^                  _S-UR`                  _S.[c        US/5      (       a   [d        Rf                  " URh                  5      OS _S0URj                  _S1URl                  _S2URn                  _S3URp                  _S4URr                  _S5URt                  _S6URv                  _S7URx                  _S8URz                  _6nU$ :Nrq   rr   rs   rt   rv   rw   rx   ry   rz   r}   r{   r|   ru   r~   r   r   r   r   r   r   r   enable_gcfsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   >r   r   r   r   r   rr   rs   rt   rv   rw   rx   ry   rz   r}   r{   r|   ru   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   opss      r   r   %UpdateBeta.ParseUpdateNodePoolOptionsk     	&&t,

+
+ :%%:00:  22:  22	:
 ..: ..: ,,: ,,: ,,: !% < <: 00: %)$D$D: **: 00: !% < <:  !% < <!:" {{#:$ $$%:& $$':( YY):* "66+:, $$-:. /:0  $::1:2 #'"@"@3:4 "665:6 !% < <7:8 !% < <9:: #'"@"@;:< $(#C#C=:> #'"@"@?:@  $::A:B  22C:D ,,E:F  22G:H #88I:J %)$D$DK:L ((M:N $(#B#BO:P ..Q:R !44S:T ??U:V &&W:X ..Y:Z /3.X.X[:^ 4%% __T^^4a:b $(#B#Bc:d *.)N)Ne:f 483b3bg:h !% D Di:j  $BBk:l /3.X.Xm:n !% < <o:p 00q:r *.)N)Ns:Cv Jr   r   N	r   r   r   r   r   r   rn   r   r   r   r   r   r   r     !    1MO MO^>r   r   c                   .    \ rS rSrSr\S 5       rS rSrg)UpdateAlphai  r!   c                    [        U 5        U R                  SS9n[        R                  " U5        UR	                  S5      n[        R
                  " USS9  [        R                  " USS9  [        R                  " USSSSS9  [        R                  " U5      n[        R                  " USS9  UR	                  S5      n[        R                  " U5        [        R                  " USS9  [        R                  " USS9  [        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&                  " USS9  [        R(                  " USS9  [        R*                  " USSS
9  [        R,                  " USSS
9  [        R.                  " USSS
9  [        R0                  " U5        [        R2                  " U5        [        R4                  " USS9  [        R6                  " U5        [        R8                  " USS9  [        R:                  " USS9  [        R<                  " USSS9  [        R>                  " USSS9  [        R@                  " U5        [        RB                  " USS9  [        RD                  " U5        [        RF                  " U5        [        RH                  " U5        [        RJ                  " USSS9  [        RL                  " U5        [        RN                  " USS9  [        RP                  " U5        [        RR                  " U5        [        RT                  " U5        UR	                  S5      n[        RV                  " USS9  [        RX                  " U5        [        RZ                  " U5        [        R\                  " U5        [        R^                  " U5        [        R`                  " U5        [        Rb                  " USS9  [        Rd                  " USSS9  g r   r   rh   s         r   rn   UpdateAlpha.Args  r   r   c           	      >   [         R                  " U5        [        R                  " S90 SUR                  _SUR
                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  _SUR                  _SUR                  _SUR                   _SUR"                  _SUR$                  _SUR&                  _SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _SUR2                  _SUR4                  _SUR6                  _SUR8                  _SUR:                  _SUR<                  _SUR>                  _SUR@                  _SURB                  _SURD                  _S URF                  _S!URH                  _S"URJ                  _S#URL                  _S$URN                  _S%URP                  _S&URR                  _S'URT                  _S(URV                  _S)URX                  _S*URZ                  _S+UR\                  _S,UR^                  _S-UR`                  _S.[c        US/5      (       a   [d        Rf                  " URh                  5      OS _S0URj                  _S1URl                  _S2URn                  _S3URp                  _S4URr                  _S5URt                  _S6URv                  _S7URx                  _S8URz                  _6nU$ r   r   r   s      r   r   &UpdateAlpha.ParseUpdateNodePoolOptions   r   r   r   Nr   r   r   r   r   r     r   r   r   N)#r   
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.api_lib.computer    googlecloudsdk.api_lib.containerr   r	   googlecloudsdk.callioper
   $googlecloudsdk.command_lib.containerr   googlecloudsdk.corer   googlecloudsdk.core.consoler   DETAILED_HELPr   DefaultUniverseOnlyReleaseTracksReleaseTrackGAUniverseCompatibleUpdateCommandr   BETAr   ALPHAr   detailed_helpr   r   r   <module>r     s     &  ' > 0 8 1 ( . 6 # 2		-& D%%(()PT P  * Pf D%%**+Q Q ,Qh D%%++,Q& Q -Qh % r   