
    Z                     >   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                    [        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  [        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5        [        R.                  " U5        [        R0                  " USS9  [        R2                  " USSS
9  [        R4                  " USSS
9  [        R6                  " USS9  [        R8                  " U5        [        R:                  " U5        [        R<                  " USS9  [        R>                  " U5        [        R@                  " U5        [        RB                  " USSS9  [        RD                  " U5        [        RF                  " U5        [        RH                  " USS9  [        RJ                  " U5        [        RL                  " U5        [        RN                  " U5        UR	                  S5      n[        RP                  " USS9  [        RR                  " U5        [        RT                  " U5        [        RV                  " U5        [        RX                  " U5        [        RZ                  " USS9  [        R\                  " 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   )/r   add_mutually_exclusive_groupr   AddNodePoolLocationsFlagadd_argument_groupAddEnableAutoRepairFlagAddEnableAutoUpgradeFlagAddAcceleratorArgsAddClusterAutoscalingFlagsAddNodePoolAutoprovisioningFlagAddWorkloadMetadataFlagAddEnableSurgeUpgradeFlagAddSurgeUpgradeFlagAddMaxUnavailableUpgradeFlagAddEnableBlueGreenUpgradeFlagAddStandardRolloutPolicyFlagAddAutoscaledRolloutPolicyFlagAddNodePoolSoakDurationFlagAddSystemConfigFlagAddLabelsFlagAddNodeLabelsFlagAddNodeTaintsFlagAddTagsNodePoolUpdateAddEnableGvnicFlagAddEnableImageStreamingFlagAddEnableConfidentialNodesFlagAddConfidentialNodeTypeFlag AddNetworkPerformanceConfigFlagsAddNodePoolEnablePrivateNodesAddEnableFastSocketFlagAddLoggingVariantFlagAddWindowsOsVersionFlagAddContainerdConfigFlagAddStoragePoolsFlag$AddResourceManagerTagsNodePoolUpdateAddQueuedProvisioningFlagAddConsolidationDelayFlagAddMaxRunDurationFlagAddFlexStartFlag AddEnableKubeletReadonlyPortFlagAddMachineTypeFlagAddDiskTypeFlagAddDiskSizeFlag$AddBootDiskProvisionedThroughputFlagAddBootDiskProvisionedIopsFlag-AddEnableKernelModuleSignatureEnforcementFlagAddEnableLustreMultiRailFlagr   groupnode_management_groupautoscaling_groupupgrade_settings_groupnode_config_groups         r   ArgsUpdate.ArgsG   s   	&M///>E	""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	&	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 
&&uDNr   c           	         [         R                  " U5        [        R                  " S30 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                  _6$ )4N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enable_lustre_multi_nic )8r   ValidateSurgeUpgradeSettingsr   UpdateNodePoolOptionsacceleratorro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   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   r   )selfargss     r   ParseUpdateNodePoolOptions!Update.ParseUpdateNodePoolOptions   sa   	&&t,,, 4%%4004  224  22	4
 **4 ..4 ..4 ,,4 ,,4 ,,4 004 %)$D$D4 !% < <4 004 !% < <4  !% < <!4" {{#4$ $$%4& $$'4( YY)4* +4,  $::-4. $(#C#C/40 #'"@"@142  $::344 #'"@"@546 "66748 !% < <94: !% < <;4< #'"@"@=4> "66?4@  22A4B ,,C4D  22E4F %)$D$DG4H ((I4J $(#B#BK4L ..M4N !44O4P ??Q4R &&S4T ..U4V /3.X.XW4Z 4%% __T^^4]4^ #88_4` $(#B#Ba4b *.)N)Nc4d 483b3be4f !% < <g4 4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__staticmethodrk   r   r   __static_attributes__r   r   r   r   r   A   s*     2CO COJ7r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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5        [        R.                  " U5        [        R0                  " USS9  [        R2                  " U5        [        R4                  " USS9  [        R6                  " USS9  [        R8                  " USSS9  [        R:                  " USSS9  [        R<                  " U5        [        R>                  " USS9  [        R@                  " U5        [        RB                  " U5        [        RD                  " U5        [        RF                  " USSS9  [        RH                  " U5        [        RJ                  " USS9  [        RL                  " U5        [        RN                  " U5        [        RP                  " U5        UR                  S5      n[        RR                  " USS9  [        RT                  " U5        [        RV                  " U5        [        RX                  " U5        [        RZ                  " U5        [        R\                  " USS9  [        R^                  " USSS9  g NTr#   r%   r&   Fr(   r,   r-   )use_moder.   r0   r2   r4   r5   r7   0r   r8   r:   r   r;   r<   r=   r>   r?   rA   rB   rC   rD   rE   rF   rG   r@   r9   rH   rI   rJ   rK   rL   rR   AddEnableGcfsFlagrM   rN   rQ   rO   rP   rS   rT   rU   rX   rV   rW   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   s         r   rk   UpdateBeta.Args  +   	&M///>E!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	&	''.	E6	U#	%%e4@	**5?	((TT3	%%e44P	!!%(	T:	!!%(	..u5	!!%(	Te5	##E*	##E$7	&	5!	**5100?	.t<	+,	+,	../@A	(():;	77T 
&&uDNr   c           	         [         R                  " U5        [        R                  " S40 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                  _6nU$ 5Nrn   ro   rp   rq   rs   rt   ru   rv   rw   rz   rx   ry   rr   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   9r   r   r   r   r   ro   rp   rq   rs   rt   ru   rv   rw   rz   rx   ry   rr   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.ParseUpdateNodePoolOptions\  x   	&&t,

+
+ 5%%5005  225  22	5
 ..5 ..5 ,,5 ,,5 ,,5 !% < <5 005 %)$D$D5 **5 005 !% < <5  !% < <!5" {{#5$ $$%5& $$'5( YY)5* "66+5, $$-5. /50  $::152 #'"@"@354 "66556 !% < <758 !% < <95: #'"@"@;5< $(#C#C=5> #'"@"@?5@  $::A5B  22C5D ,,E5F  22G5H #88I5J %)$D$DK5L ((M5N $(#B#BO5P ..Q5R !44S5T ??U5V &&W5X ..Y5Z /3.X.X[5^ 4%% __T^^4a5b $(#B#Bc5d *.)N)Ne5f 483b3bg5h !% < <i5Cl Jr   r   N	r   r   r   r   r   r   rk   r   r   r   r   r   r   r     !    1HO HOT9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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5        [        R.                  " U5        [        R0                  " USS9  [        R2                  " U5        [        R4                  " USS9  [        R6                  " USS9  [        R8                  " USSS9  [        R:                  " USSS9  [        R<                  " U5        [        R>                  " USS9  [        R@                  " U5        [        RB                  " U5        [        RD                  " U5        [        RF                  " USSS9  [        RH                  " U5        [        RJ                  " USS9  [        RL                  " U5        [        RN                  " U5        [        RP                  " U5        UR                  S5      n[        RR                  " USS9  [        RT                  " U5        [        RV                  " U5        [        RX                  " U5        [        RZ                  " U5        [        R\                  " USS9  [        R^                  " USSS9  g r   r   re   s         r   rk   UpdateAlpha.Args  r   r   c           	         [         R                  " U5        [        R                  " S40 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                  _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%%(()FT F  * FR D%%**+G G ,GT D%%++,G& G -GT % r   