
                             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 r " S S\
R$                  5      rg)z;Command for setting target pools of managed instance group.    )absolute_import)division)unicode_literals)base_classes)utils)arg_parsers)base)flags)scopec                 N    U R                  SS[        R                  " SS9SSS9  g)	z	Add args.z--target-poolsTr   )
min_lengthTARGET_POOLzCompute Engine Target Pools to add the instances to. Target Pools must be specified by name or by URL. Example: --target-pools=target-pool-1,target-pool-2. To clear the set of Target Pools pass in an empty list. Example: --target-pools="")requiredtypemetavarhelpN)add_argumentr   ArgListparsers    ?lib/surface/compute/instance_groups/managed/set_target_pools.py_AddArgsr      s3    !,M  O    c                   :    \ rS rSrSr\S 5       rS rS rS r	Sr
g)	SetTargetPools+   zSet target pools of managed instance group.

  *{command}* sets the target pools for an existing managed instance group.
Instances that are part of the managed instance group will be added to the
target pool automatically.
c                 T    [        U S9  [        R                  R                  U 5        g )Nr   )r   instance_groups_flags%MULTISCOPE_INSTANCE_GROUP_MANAGER_ARGAddArgumentr   s    r   ArgsSetTargetPools.Args3   s!    F??KKr   c           	         [         R                  " U R                  5       5      nUR                  n[        R
                  n[        R                  R                  n[        R                  " U5      nUR                  UUR                  UUS9nU R                  U5      n/ n	UR                   H:  n
U	R                  UR                  R!                  U
UR"                  US.SS95        M<     U	 Vs/ s H  oR%                  5       PM     nnU(       a  U R'                  X7U5      $ UR(                  R+                  S/5         U R'                  X7U5      sS S S 5        $ s  snf ! , (       d  f       g = f)N)default_scopescope_lister)projectregionzcompute.targetPools)params
collectiontargetPools)r   ComputeApiHolderReleaseTrackclientr   r   compute_scope	ScopeEnumZONEr
   GetDefaultScopeListerResolveAsResource	resources_GetRegionNametarget_poolsappendParser&   SelfLink_MakePatchRequestapitools_clientIncludeFields)selfargsholderr-   resource_argr$   r%   igm_refr'   	pool_refstarget_poolpool_refpoolss                r   RunSetTargetPools.Run9   sO   **4+<+<+>?F]]F(NNL!++00M..v6L,,#!	 - #G
   )FI((



 
 $__" / ! 01 ) 2;;X E;##FU;; !!//@%%fu= A@ < A@s   .E>E
E-c                     UR                  5       S:X  a   [        R                  " UR                  5      $ UR                  5       S:X  a  UR                  $ [        SR                  UR                  5       5      5      e)Ncompute.instanceGroupManagersz#compute.regionInstanceGroupManagerszUnknown reference type {0})
Collectionr   ZoneNameToRegionNamezoner'   
ValueErrorformat)r<   r@   s     r   r4   SetTargetPools._GetRegionNameZ   sl    >>''55				!F	F^^3::



  ! !r   c                 L   UR                   nUR                  US9nUR                  5       S:X  a#  UR                  R                  nUR
                  nO"UR                  R                  nUR                  nU" S0 UR                  5       D6nXXl	        UR                  USU4/5      $ )N)r*   rH   Patch )messagesInstanceGroupManagerrI   r:   instanceGroupManagers(ComputeInstanceGroupManagersPatchRequestregionInstanceGroupManagers.ComputeRegionInstanceGroupManagersPatchRequestAsDictinstanceGroupManagerResourceMakeRequests)	r<   r-   r@   rD   rR   igm_resourceservicerequest_typerequests	            r   r9    SetTargetPools._MakePatchRequestc   s    H00U0CL>>&&<<gFFl&&BBgLLl.W^^-.G+7('7 ;<==r   rQ   N)__name__
__module____qualname____firstlineno____doc__staticmethodr!   rE   r4   r9   __static_attributes__rQ   r   r   r   r   +   s+      
>B!>r   r   N)rd   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.computer
   r   r.   2googlecloudsdk.command_lib.compute.instance_groupsr   r   Commandr   rQ   r   r   <module>rm      sA    B &  ' 7 0 / ( 4 E ]
OG>T\\ G>r   