
                         P   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  \
R"                  " \
R$                  R&                  \
R$                  R(                  \
R$                  R*                  5       " S S\
R,                  5      5       rg)zCreate node group command.    )absolute_import)division)unicode_literals)base_classes)utils)base)
exceptions)flags)utilc                   8    \ rS rSrSrSSS.r\S 5       rS rSr	g)	Create   z#Create a Compute Engine node group.z
         To create a node group, run:

           $ {command} my-node-group --node-template=example-template --target-size=4
       )briefEXAMPLESc                 R   [         R                  " 5       R                  U 5        [         R                  " U 5        [         R                  " U SS9  [         R
                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        g )NT)required_mode)	r
   MakeNodeGroupArgAddArgumentAddCreateArgsToParserAddAutoscalingPolicyArgToParserAddMaintenanceWindowArgToParserAddLocationHintArgToParserAddShareSettingArgToParser!AddMaintenanceIntervalArgToParser)parsers    6lib/surface/compute/sole_tenancy/node_groups/create.pyArgsCreate.Args-   so    	((0	'	))&E	))&1	$$V,	$$V,	++F3    c                 (   [         R                  " U R                  5       5      nUR                  nUR                  R                  n[
        R                  " 5       R                  XR                  [        R                  " UR                  5      S9n[        R                  " UR                  UR                  UR                  [        R                   " UR"                  5      S9nUR%                  UR'                  5       UR(                  UR+                  5       S9n[-        US5      (       a7  [
        R.                  " U5      nUR1                  UR2                  5      n	Xl        [-        US5      (       a7  [
        R6                  " U5      nUR1                  UR8                  5      n
Xl        [-        US5      (       aa  UR<                  (       aP  UR<                  S:w  a$  UR>                  c  [@        RB                  " SS	5      e[        RD                  " X5      nXl#        URH                  (       a  URK                  URH                  S
9Ul&        [-        US5      (       a"  URN                  (       a  URN                  Ul(        URR                  (       a  [        RT                  " XA5      Ul+        URY                  UURZ                  UR                  UR"                  S9nUR                  R\                  R^                  nURa                  USU4/5      S   $ )N)scope_lister)projectregion)namedescriptionnodeTemplatemaintenance_policymaintenance_intervalautoscaler_modeoffz--max-nodesz--autoscaler-mode is on)	startTimelocation_hint)	nodeGroupinitialNodeCountr"   zoneInsertr   )1r   ComputeApiHolderReleaseTrackclientmessagesr
   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   ParseNodeTemplatenode_templater"   compute_utilsZoneNameToRegionNamer/   	NodeGroupNamer%   SelfLinkhasattrGetMaintenancePolicyEnumMapperGetEnumForChoicer'   maintenancePolicy GetMaintenanceIntervalEnumMapperr(   maintenanceIntervalr)   	max_nodesr	   RequiredArgumentExceptionBuildAutoscalingautoscalingPolicymaintenance_window_start_timeNodeGroupMaintenanceWindowmaintenanceWindowr,   locationHintshare_settingBuildShareSettingsshareSettingsComputeNodeGroupsInsertRequesttarget_sizeapitools_client
nodeGroupsMakeRequests)selfargsholderr3   r4   node_group_refnode_template_ref
node_groupmapperr'   r(   autoscaling_policyrequestservices                 r   Run
Create.Run7   s   **4+<+<+>?F]]F}}%%H++-??"88G @ IN ..&&11.2E2EF	H ##  "$$&//1 $ 3J
 t)**33H=f!2243J3JK%7"t+,,55h?f#44T5N5NO';$t&''D,@,@				&4>>+A22=3LN 	N00@%7"))%-%H%H66 &I &8j" t_%%$*<*< $ 2 2j!%!8!8!Hj55))&&  	 6 "G mm++66G(G <=>qAAr    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r`   __static_attributes__rb   r   r   r   r      s2     , 5- 4 45Br   r   N)rg   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r;   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.computer
   r7   ;googlecloudsdk.command_lib.compute.sole_tenancy.node_groupsr   ReleaseTracksr2   ALPHABETAGACreateCommandr   rb   r   r   <module>ru      s    ! &  ' 7 A ( . E M L T..33T5F5F5I5IKBT KBKBr   