
                             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 ddlmZ dd
lmZ  G d dej$                        Zddde_        y)z1Command for listing instances in instance groups.    )absolute_import)division)unicode_literals)base_classes)instance_groups_utils)request_helper)utils)base)flags)scopec                   &    e Zd ZdZed        Zd Zy)ListInstancesz8List Compute Engine instances present in instance group.c                 *   | j                   j                  d       | j                   j                  t        j                         t
        j                  j                  |        t        j                  |        | j                   j                  d        y )Nzq        table(instance.basename():label=NAME,
          instance.scope().segment(0):label=ZONE,
          status))display_info	AddFormat
AddUriFuncr   $UriFuncForListInstanceRelatedObjectsinstance_groups_flagsMULTISCOPE_INSTANCE_GROUP_ARGAddArgumentr   AddRegexArgAddCacheUpdater)parsers    5lib/surface/compute/instance_groups/list_instances.pyArgszListInstances.Args"   sq    
!! #  ""BBD77CCFK	f
''-    c                    t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  j                  t        j                  |            }|j                  rdj                  |j                        }nd}|j                         dk(  rq|j                   j"                  }|j$                  j'                  |j)                         |j$                  j+                         |j,                  ||j.                        }np|j                   j0                  }|j$                  j3                  |j)                         |j$                  j5                         |j6                  ||j.                        }g }t9        j:                  |d|fg|j                   j<                  |j>                  |      }	|rtA        jB                  |       |	S )	z7Retrieves response with instance in the instance group.)default_scopescope_listerzinstance eq {0}Nzcompute.instanceGroups)instanceGroup"instanceGroupsListInstancesRequestzonefilterproject)r    (regionInstanceGroupsListInstancesRequestregionr#   r$   r   )requestshttp	batch_urlerrors)"r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEr   GetDefaultScopeListerregexpformat
Collectionapitools_clientinstanceGroupsmessages)ComputeInstanceGroupsListInstancesRequestName"InstanceGroupsListInstancesRequestr"   r$   regionInstanceGroups/ComputeRegionInstanceGroupsListInstancesRequest(RegionInstanceGroupsListInstancesRequestr&   r   MakeRequestsr(   r)   r	   RaiseToolException)
selfargsholderr-   	group_reffilter_exprservicerequestr*   resultss
             r   RunzListInstances.Run.   s   **4+<+<+>?F]]F 	;;MM&""'116644V< 	N 	>  {{%,,T[[9kk!99&&55gII!(oo@@B~~## J %g &&;;gOO!(ooFFH!!## P %g F))OW56##((""	G v&Nr   N)__name__
__module____qualname____doc__staticmethodr   rJ    r   r   r   r      s    @	. 	.-r   r   z,List instances present in the instance groupaH            *{command}* list instances in an instance group.

          The required permission to execute this command is
          `compute.instanceGroups.list`. If needed, you can include this
          permission, or choose any of the following preexisting IAM roles
          that contain this particular permission:

          *   Compute Admin
          *   Compute Viewer
          *   Compute Instance Admin (v1)
          *   Compute Instance Admin (beta)
          *   Compute Network Admin
          *   Compute Network Viewer
          *   Editor
          *   Owner
          *   Security Reviewer
          *   Viewer

          For more information regarding permissions required by
          instance groups, refer to Compute Engine's access control guide:
          https://cloud.google.com/compute/docs/access/iam.
        )briefDESCRIPTIONN)rN   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   r	   googlecloudsdk.callioper
   "googlecloudsdk.command_lib.computer   r   r0   2googlecloudsdk.command_lib.compute.instance_groupsr   ListCommandr   detailed_helprP   r   r   <module>rZ      sR    8 &  ' 7 @ 9 0 ( 4 E ]<D$$ <B 	7		 r   