
                            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  ej"                  ej$                  j&                  ej$                  j(                  ej$                  j*                        ej,                   G d dej.                                      Z ej2                  d      e_        y)z%Command for listing network peerings.    )absolute_import)division)unicode_literals)
list_pager)base_classes)filter_rewrite)base)
properties)resource_projection_spec)resource_projectorc                   &    e Zd ZdZed        Zd Zy)Listz%List Compute Engine network peerings.c                 `    | j                   j                  d       | j                  dd       y )Na  
        table(peerings:format="table(
            name,
            source_network.basename():label=NETWORK,
            network.map().scope(projects).segment(0):label=PEER_PROJECT,
            network.basename():label=PEER_NETWORK,
            stackType,
            peerMtu,
            importCustomRoutes,
            exportCustomRoutes,
            updateStrategy,
            state,
            stateDetails
        )")
    z	--networkz)Only show peerings of a specific network.)help)display_info	AddFormatadd_argument)parsers    -lib/surface/compute/networks/peerings/list.pyArgsz	List.Args%   s7    
!! # 	  E  G    c              #   4  K   t        j                  | j                               }|j                  j                  }|j
                  }t        j                  j                  j                  j                         }|j                         }t        j                  |j                  |j                        }t!        j"                         j%                  |j&                  |      \  |_        }|j)                  ||      }	t+        j,                  |j.                  |	d|j0                  d       D ]g  }
|
j2                  s|j4                  |j4                  |
j6                  k(  s6t9        j:                  |
      }|d   D ]  }|
j<                  |d<    | i y w)N)symbolsaliases)defaults)projectfilteritems)fieldlimit
batch_sizepeeringssource_network)r   ComputeApiHolderReleaseTrackclientapitools_clientMESSAGES_MODULEr
   VALUEScorer   	GetOrFailGetDisplayInfor   ProjectionSpec
transformsr   r   RewriterRewriter   ComputeNetworksListRequestr   YieldFromListnetworksr    r"   networknamer   MakeSerializableselfLink)selfargsholderr&   messagesr   r   r   filter_exprrequestr4   synthesized_networkpeerings                r   RunzList.Run:   s]    **4+<+<+>?F]]**F%%H$$,,668G&&(L'66''1E1EGH-668@@h  A  (DK11 2 -G ++jj 
		t||3#||w||; 1AA'J*:6G&-&6&6'"
# 7!!s   D:F=%F#5FN)__name__
__module____qualname____doc__staticmethodr   r@    r   r   r   r      s     
 .G G("r   r   r"   N)rD   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper	   googlecloudsdk.corer
   googlecloudsdk.core.resourcer   r   ReleaseTracksr%   GAALPHABETADefaultUniverseOnlyListCommandr   GetGlobalListerHelpdetailed_helprF   r   r   <module>rU      s    , &  ' ' 7 9 ( * A ; $++1143D3D3I3I 4"4 4" 4"l 6\55jA r   