
    Q                         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 dd	lmZ  G d
 de
j                        Zy)z9Command for adding instances to unmanaged instance group.    )absolute_import)division)unicode_literals)base_classes)instance_groups_utils)arg_parsers)base)flagsc                   *    e Zd ZdZdZed        Zd Zy)AddInstanceszAdds instances to an unmanaged instance group by name.

    *{command}* adds existing instances to an unmanaged instance group
  by name.
  For example:

    $ {command} my-group \
        --instances my-instance-1,my-instance-2 --zone us-central1-a
  Nc                     t        j                         t        _        t        j                  j	                  |        | j                  ddt        j                  d      dd       y )Nz--instancesT   )
min_lengthINSTANCEzA list of names of instances to add to the instance group. These must exist beforehand and must live in the same zone as the instance group.)requiredtypemetavarhelp)instance_groups_flagsMakeZonalInstanceGroupArgr   ZONAL_INSTANCE_GROUP_ARGAddArgumentadd_argumentr   ArgList)parsers    >lib/surface/compute/instance_groups/unmanaged/add_instances.pyArgszAddInstances.Args*   s[     	779 )))55f=
  A.      c                 V   t        j                  | j                               }|j                  }t        j
                  j                  ||j                  d t        j                  |            }g }|j                  D ]H  }|j                  j                  ||j                  |j                  dd      }|j                  |       J t        j                   ||j                         |D cg c],  }|j"                  j%                  |j'                               . }}|j"                  j)                  |      }	|j"                  j+                  |j-                         |	|j                  |j                        }
|j/                  |j0                  j2                  d|
fg      S c c}w )	N)default_scopescope_lister)projectzonezcompute.instances)params
collection)instance)	instances)instanceGroup!instanceGroupsAddInstancesRequestr#   r"   r   )r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcesr
   GetDefaultScopeListerr'   Parser"   r#   appendr   ValidateInstanceInZonemessagesInstanceReferenceSelfLink!InstanceGroupsAddInstancesRequest(ComputeInstanceGroupsAddInstancesRequestNameMakeRequestsapitools_clientinstanceGroups)selfargsholderr,   	group_refinstance_referencesr&   refinstrequest_payloadrequests              r   RunzAddInstances.Run8   s   **4+<+<+>?F]]F 	--??&""44V< 	@ 	>  NN""
"**nn ) # *c   % # 001D1:A ()'D 	))4==?)C'  ) ooGG% H 'O ooFFnn&*9^^!!	 G G 

 
 
/
/	IJ )s   -1F&)__name__
__module____qualname____doc__r   staticmethodr   rE    r   r   r   r      s&     " &r   r   N)rI   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   r	   "googlecloudsdk.command_lib.computer
   2googlecloudsdk.command_lib.compute.instance_groupsr   SilentCommandr   rK   r   r   <module>rR      s:    @ &  ' 7 @ / ( 4 ]A4%% Ar   