
    V                     8   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  \
R                  " \
R                   R"                  \
R                   R$                  \
R                   R&                  5       " S	 S
\
R(                  5      5       rg)zUpdate node group command.    )absolute_import)division)unicode_literals)base_classes)node_groups)base)flagsc                   8    \ rS rSrSrSSS.r\S 5       rS rSr	g)	Update   z#Update a Compute Engine node group.zy
         To update a node group to have two more nodes, run:

           $ {command} my-node-group --add-nodes=2
       )briefEXAMPLESc                     [         R                  " 5       R                  U 5        [         R                  " U 5        [         R                  " U 5        [         R
                  " U 5        g )N)r	   MakeNodeGroupArgAddArgumentAddUpdateArgsToParserAddAutoscalingPolicyArgToParserAddShareSettingArgToParser)parsers    6lib/surface/compute/sole_tenancy/node_groups/update.pyArgsUpdate.Args,   sC    	((0	'	))&1	$$V,    c           	      J   [         R                  " U R                  5       5      nUR                  R                  n[
        R                  " UR                  R                  X2R                  5      n[        R                  " 5       R                  UUR                  [        R                  " UR                  5      S9n[        US5      =(       a    UR                  S5      =(       dO    [        US5      =(       a    UR                  S5      =(       d$    [        US5      =(       a    UR                  S5      nUR                  S5      =(       d    UR                  S5      nUR!                  UUR"                  UR$                  UR&                  U(       a  UOS U(       a  US9$ S S9$ )N)scope_listerautoscaler_mode	min_nodes	max_nodesshare_setting
share_with)node_templateadditional_node_countdelete_nodesautoscaling_policy_argsshare_setting_args)r   ComputeApiHolderReleaseTrackclientmessagesr   NodeGroupsClientapitools_client	resourcesr	   r   ResolveAsResourcecompute_flagsGetDefaultScopeListerhasattrIsSpecifiedr   r!   	add_nodesr#   )selfargsholderr)   groups_clientnode_group_refautoscaling_policyr   s           r   Run
Update.Run3   sn   **4+<+<+>?F}}%%H001N1N19;K;KMM ++-??"88G @ IN
 "$(9:bt?O?OPa?b X!$4V9I9I+9VX!$4V9I9I+9V 
 	)KT-=-=l-K  (("nn&&(:#04   < < 7;   < <r    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r9   __static_attributes__r;   r   r   r   r      s1     , 0		- - -<r   r   N)r@   
__future__r   r   r   googlecloudsdk.api_lib.computer   +googlecloudsdk.api_lib.compute.sole_tenancyr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r.   ;googlecloudsdk.command_lib.compute.sole_tenancy.node_groupsReleaseTracksr'   ALPHABETAGAUpdateCommandr   r;   r   r   <module>rO      sy    ! &  ' 7 C ( E M D%%++T->->-C-C%%((*-<T -<*-<r   