
    81                     \   S r SSKJr  SSKJr  SSKJr  SSK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 r\
R*                  \
R,                  " \
R.                  R0                  5       " S S\
R2                  5      5       5       r\
R,                  " \
R.                  R6                  5       " S S\5      5       r\
R,                  " \
R.                  R:                  5       " S S\5      5       rSSS.\l        \R>                  \l        \R>                  \l        g)z3Command for setting size of managed instance group.    )absolute_import)division)unicode_literalsN)base_classes)arg_parsers)base)
exceptions)flags)scopec           	      D   [         R                  " X(       + S9  U(       a  U R                  SSSSS9  U(       ag  U R                  S[        R                  " S[
        R                  SS	9S
S9  U R                  S[        R                  " S[
        R                  SS	9SS9  gg)z
Adds args.)requiredz--creation-retries
store_trueTz&When instance creation fails retry it.)actiondefaulthelp--suspended-sizer   )	unlimitedz?Target number of suspended instances in managed instance group.)typer   --stopped-sizez=Target number of stopped instances in managed instance group.N)managed_flagsAddMigSizeFlagadd_argumentr   
BoundedIntsysmaxsizeparsercreation_retriessuspended_stopped_sizess      5lib/surface/compute/instance_groups/managed/resize.py_AddArgsr!   "   s    v0KL
5	  7 
##As{{dCN  P ##As{{dCL  N     c                   T    \ rS rSrSr\S 5       rS r\S 5       r\S 5       r	S r
Srg	)
Resize9    Set managed instance group size.c                 X    [        U SSS9  [        R                  R                  U 5        g )NFr   r!   instance_groups_flags%MULTISCOPE_INSTANCE_GROUP_MANAGER_ARGAddArgumentr   s    r    ArgsResize.Args>   s)    uN??KKr"   c                     [         R                  R                  X2[        R                  R
                  [        R                  " U5      S9$ )N)default_scopescope_lister)r)   r*   ResolveAsResourcecompute_scope	ScopeEnumZONEr
   GetDefaultScopeLister)selfclient	resourcesargss       r    CreateGroupReferenceResize.CreateGroupReferenceE   sB    !GG+55::"88@  BCr"   c                     U R                   R                  nU R                  R                  UR	                  5       UR
                  UR                  UR                  S9nU R                  USU4/5      $ )N)instanceGroupManagersizeprojectzoner$   )	apitools_clientinstanceGroupManagersmessages)ComputeInstanceGroupManagersResizeRequestNamer?   r@   rA   MakeRequestsr8   igm_refr:   servicerequests        r    _MakeIgmResizeRequestResize._MakeIgmResizeRequestL   sh    $$::GooGG$\\^YY\\	 H G
 (G <=>>r"   c                     U R                   R                  nU R                  R                  UR	                  5       UR
                  UR                  UR                  S9nU R                  USU4/5      $ )N)r>   r?   r@   regionr$   )	rB   regionInstanceGroupManagersrD   /ComputeRegionInstanceGroupManagersResizeRequestrF   r?   r@   rO   rG   rH   s        r    _MakeRmigResizeRequestResize._MakeRmigResizeRequestV   sh    $$@@GooMM$\\^YY~~	 N G
 (G <=>>r"   c                    [         R                  " U R                  5       5      nUR                  nU R	                  X2R
                  U5      nUR                  5       S:X  a  U R                  X4U5      $ UR                  5       S:X  a  U R                  X4U5      $ [        SR                  UR                  5       5      5      eNzcompute.instanceGroupManagersz#compute.regionInstanceGroupManagerszUnknown reference type {0})r   ComputeApiHolderReleaseTrackr8   r;   r9   
CollectionrL   rR   
ValueErrorformatr7   r:   holderr8   rI   s        r    Run
Resize.Run`   s    **4+<+<+>?F]]F''0@0@$GG>>''>>DD(($??
1889K9K9MN
OOr"    N)__name__
__module____qualname____firstlineno____doc__staticmethodr-   r;   rL   rR   r]   __static_attributes__r_   r"   r    r$   r$   9   sM     ) C ? ? ? ?Pr"   r$   c                   N    \ rS rSrSr\S 5       r\S 5       r\S 5       rS r	Sr
g)	
ResizeBetan   r&   c                 X    [        U SSS9  [        R                  R                  U 5        g )NTFr   r(   r,   s    r    r-   ResizeBeta.Argsr   s)    eM??KKr"   c                 6   U R                   R                  nU R                  R                  UR	                  5       U R                  R                  UR                  UR                  (       + S9UR                  UR                  S9nU R                  USU4/5      $ )N
targetSizenoCreationRetries)r>   *instanceGroupManagersResizeAdvancedRequestr@   rA   ResizeAdvanced)rB   rC   rD   1ComputeInstanceGroupManagersResizeAdvancedRequestrF   *InstanceGroupManagersResizeAdvancedRequestr?   r   r@   rA   rG   rH   s        r    _MakeIgmResizeAdvancedRequest(ResizeBeta._MakeIgmResizeAdvancedRequesty   s    $$::GII!(JJ#yy*.*?*?&? K  OO 	J 	  *:G DEFFr"   c                 6   U R                   R                  nU R                  R                  UR	                  5       U R                  R                  UR                  UR                  (       + S9UR                  UR                  S9nU R                  USU4/5      $ )Nrm   )r>   0regionInstanceGroupManagersResizeAdvancedRequestr@   rO   rq   )rB   rP   rD   7ComputeRegionInstanceGroupManagersResizeAdvancedRequestrF   0RegionInstanceGroupManagersResizeAdvancedRequestr?   r   r@   rO   rG   rH   s        r    _MakeRmigResizeAdvancedRequest)ResizeBeta._MakeRmigResizeAdvancedRequest   s    $$@@G	@	@!(AA#yy*.*?*?&? B  OO>> 
A 	
#  *:G DEFFr"   c                    [         R                  " U R                  5       5      nUR                  nU R	                  X2R
                  U5      nUR                  5       S:X  a  U R                  X4U5      $ UR                  5       S:X  a5  UR                  (       d  U R                  X4U5      $ U R                  X4U5      $ [        SR                  UR                  5       5      5      erU   )r   rV   rW   r8   r;   r9   rX   rt   r   rz   rR   rY   rZ   r[   s        r    r]   ResizeBeta.Run   s    **4+<+<+>?F]]F''0@0@$GG>>//FFDD""226DII(($??
1889K9K9MN
OOr"   r_   N)r`   ra   rb   rc   rd   re   r-   rt   rz   r]   rf   r_   r"   r    rh   rh   n   sI    (  G G G G Pr"   rh   c                   n    \ rS rSrSr\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
S rS	rg
)ResizeAlpha   z!Set managed instance group sizes.c                 X    [        U SSS9  [        R                  R                  U 5        g )NTr   r(   r,   s    r    r-   ResizeAlpha.Args   s%    FT4P??KKr"   c                    U R                   c3  U R                  c&  U R                  c  [        R                  " / SQS5      eU R
                  (       dm  U R                   c  [        R                  " SS5      eU R                  b  [        R                  " SS5      eU R                  b  [        R                  " SS5      eg g )N)--sizer   r   z+At least one of the sizes must be specifiedr   z?Size must be specified when --no-creation-retries flag is used.r   z--no-creation-retriesr   )r?   suspended_sizestopped_sizer	   OneOfArgumentsRequiredExceptionr   RequiredArgumentExceptionConflictingArgumentsException)r:   s    r    _ValidateArgsResizeAlpha._ValidateArgs   s    		d119!66
:
79 9   		22MO 	O 
			(667I7NP 	P				&667G7NP 	P 
' !r"   c                     U R                   R                  5       nUR                  b  UR                  Ul        UR                  b  UR                  Ul        UR                  b  UR                  Ul        U$ )N)rD   InstanceGroupManagerr?   rn   r   targetSuspendedSizer   targetStoppedSize)r8   r:   igm_patch_resources      r    _MakeIgmPatchResource!ResizeAlpha._MakeIgmPatchResource   sh    ==?yy&*ii#&/3/B/B,$-1->->*r"   c                     U R                   R                  nU R                  R                  UR	                  5       [
        R                  X5      UR                  UR                  S9nU R                  USU4/5      $ )N)r>   instanceGroupManagerResourcer@   rA   Patch)
rB   rC   rD   (ComputeInstanceGroupManagersPatchRequestrF   r   r   r@   rA   rG   rH   s        r    _MakeIgmPatchRequest ResizeAlpha._MakeIgmPatchRequest   sr    $$::GooFF$\\^%0%F%F&\\ G G '7 ;<==r"   c                     U R                   R                  nU R                  R                  UR	                  5       [
        R                  X5      UR                  UR                  S9nU R                  USU4/5      $ )N)r>   r   r@   rO   r   )
rB   rP   rD   .ComputeRegionInstanceGroupManagersPatchRequestrF   r   r   r@   rO   rG   rH   s        r    _MakeRmigPatchRequest!ResizeAlpha._MakeRmigPatchRequest   sr    $$@@GooLL$\\^%0%F%F&~~ M G '7 ;<==r"   c                    U R                  U5        [        R                  " U R                  5       5      nUR                  nU R                  X2R                  U5      nUR                  5       S:X  a5  UR                  (       d  U R                  X4U5      $ U R                  X4U5      $ UR                  5       S:X  aa  UR                  (       d  U R                  X4U5      $ UR                  c  UR                  b  U R                  X4U5      $ U R                  X4U5      $ [!        SR#                  UR                  5       5      5      erU   )r   r   rV   rW   r8   r;   r9   rX   r   rt   r   rz   r   r   r   rR   rY   rZ   r[   s        r    r]   ResizeAlpha.Run   s   t**4+<+<+>?F]]F''0@0@$GG>>""11&4HH&&v==DD""226DII				(D,=,=,I))&4@@ (($??
1889K9K9MN
OOr"   r_   N)r`   ra   rb   rc   rd   re   r-   r   r   r   r   r]   rf   r_   r"   r    r   r      so    ) 
 P P$   > > > >,Pr"   r   r&   a`  
        *{command}* resize a managed instance group to a provided size.

If you resize down, the Instance Group Manager service deletes instances from
the group until the group reaches the desired size. Instances are deleted
in arbitrary order but the Instance Group Manager takes into account some
considerations before it chooses which instance to delete. For more information,
see https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagers/resize.

If you resize up, the service adds instances to the group using the current
instance template until the group reaches the desired size.
)briefDESCRIPTION) rd   
__future__r   r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r   r	   "googlecloudsdk.command_lib.computer
   r   r3   2googlecloudsdk.command_lib.compute.instance_groupsr)   :googlecloudsdk.command_lib.compute.instance_groups.managedr   r!   UniverseCompatibleReleaseTracksrW   GACommandr$   BETArh   ALPHAr   detailed_helpr_   r"   r    <module>r      s    : &  ' 
 7 / ( . 4 E ] ]N. D%%(()0PT\\ 0P * 0Pf D%%**+8P 8P ,8Pv D%%++,fP* fP -fPT 0  "//
 "00 r"   