
    V                     8   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ  e
j                  e
j                   j"                  e
j                   j$                  e
j                   j&                         G d	 d
e
j(                               Zy)zUpdate node group command.    )absolute_import)division)unicode_literals)base_classes)node_groups)base)flagsc                   0    e Zd ZdZdddZed        Zd Zy)Updatez#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                     t        j                         j                  |        t        j                  |        t        j                  |        t        j
                  |        y )N)r	   MakeNodeGroupArgAddArgumentAddUpdateArgsToParserAddAutoscalingPolicyArgToParserAddShareSettingArgToParser)parsers    6lib/surface/compute/sole_tenancy/node_groups/update.pyArgszUpdate.Args,   sC    	((0	'	))&1	$$V,    c                    t        j                  | j                               }|j                  j                  }t        j                  |j                  j                  ||j                        }t        j                         j                  ||j                  t        j                  |j                              }t        |d      xr |j                  d      xs@ t        |d      xr |j                  d      xs t        |d      xr |j                  d      }|j                  d      xs |j                  d      }|j!                  ||j"                  |j$                  |j&                  |r|nd |r|      S d       S )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   Runz
Update.Run3   sp   **4+<+<+>?F}}%%H001N1N196;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____doc__detailed_helpstaticmethodr   r7    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>rJ      s{    ! &  ' 7 C ( E M D%%++T->->-C-C%%((*-<T -<*-<r   