
    [                     "   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
 Z e
j                  e
j                  j                          G d de
j"                               Z e
j                  e
j                  j&                  e
j                  j(                         G d de             Z ej,                  dej.                  j0                  ej.                  j2                  f      e_        ej4                  e_        y)z$Command for listing instance groups.    )absolute_import)division)unicode_literals)base_classes)instance_groups_utils)lister)base)
completersc                     | j                   j                  d       t        j                  | dd       | j                   j	                  t
        j                         y)z(Adds flags common to all release tracks.z        table(
          name,
          location():label=LOCATION,
          location_scope():label=SCOPE,
          network.basename(),
          isManaged:label=MANAGED,
          size:label=INSTANCES
        )T)zonalregionalN)display_info	AddFormatr   AddMultiScopeListerFlagsAddCacheUpdaterr
   InstanceGroupsCompleterparsers    +lib/surface/compute/instance_groups/list.py_Argsr      sI     !  	!!&tD%%j&H&HI    c                   ,    e Zd ZdZed        Zd Zd Zy)Listz$List Compute Engine instance groups.c                     t        |        | j                         }|j                  ddd       |j                  ddd       y )Nz--only-managed
store_truez@If provided, a list of managed instance groups will be returned.)actionhelpz--only-unmanagedzBIf provided, a list of unmanaged instance groups will be returned.)r   add_mutually_exclusive_groupadd_argument)r   managed_args_groups     r   Argsz	List.Args/   sU    	&M<<>##O $ Q ##" $ $r   c                     t         j                  j                  }|j                  rt         j                  j                  }n&|j
                  rt         j                  j                  }t        j                  |||      S N)compute_holderitemsfilter_mode)r   InstanceGroupFilteringMode
ALL_GROUPSonly_managedONLY_MANAGED_GROUPSonly_unmanagedONLY_UNMANAGED_GROUPS%ComputeInstanceGroupManagerMembership)selfargsr%   holdermodes        r   ComputeDynamicPropertieszList.ComputeDynamicProperties=   si     ;;FFD

:
:
N
N 			

:
:
P
P  !FFU> >r   c                    t        j                  | j                               }|j                  }t	        j
                  ||j                  |j                  j                  j                        }t	        j                  ||j                  j                  |j                  j                  |j                  j                        }| j                  |t	        j                  ||      |      S )N)zonal_serviceregional_serviceaggregation_service)r   ComputeApiHolderReleaseTrackclientr   ParseMultiScopeFlags	resourcesmessagesInstanceGroupMultiScopeListerapitools_clientinstanceGroupsregionInstanceGroupsr2   Invoke)r.   r/   r0   r9   request_datalist_implementations         r   RunzList.RunI   s    **4+<+<+>?F]]F..f 6 6 D DFL !11,,;;//DD"22AA	C ((fmmL*=>H Hr   N)__name__
__module____qualname____doc__staticmethodr!   r2   rE    r   r   r   r   +   s"    ,$ $
>Hr   r   c                   &    e Zd ZdZed        Zd Zy)ListBetaz,List Compute Engine managed instance groups.c                     t        |        y )N)r   r   s    r   r!   zListBeta.Args^   s	    	&Mr   c                 b    t        j                  ||t         j                  j                        S r#   )r   r-   r'   r(   )r.   r/   r%   r0   s       r   r2   z!ListBeta.ComputeDynamicPropertiesb   s,     FF)DDOOQ Qr   N)rF   rG   rH   rI   rJ   r!   r2   rK   r   r   rM   rM   Z   s    4 Qr   rM   zinstance groupsN)rI   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r   ReleaseTracksr8   GAListCommandr   BETAALPHArM   GetMultiScopeListerHelp	ScopeTyperegional_scopezonal_scopedetailed_helprK   r   r   <module>r^      s    + &  ' 7 @ 1 ( 9J D%%(()+H4 +H *+H\ D%%**D,=,=,C,CDQt Q EQ :\99**L,B,B,N,NOQ  ++ r   