
    7                        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 ddlmZ ddlmZ ddlmZ ej(                   ej*                  ej,                  j.                  ej,                  j0                         G d dej2                                      Z ej*                  ej,                  j4                         G d de             Zej                   e_         y)z'Command for listing available reivions.    )absolute_import)division)unicode_literals)base)commands)connection_context)flags)	platforms)pretty_print)resource_args)serverless_operations)concept_parsers)presentation_specs)logc                   F    e Zd ZdZdddZed        Zed        Zd Zd Z	y	)
ListList available revisions.z"          {description}
          zl          To list all revisions for the provided service:

              $ {command} --service=foo
         )DESCRIPTIONEXAMPLESc                    t        j                  dt        j                         dddd      }t	        j
                  |g      j                  |       t        j                  |       |j                  j                  dj                  t        j                  t        j                               |j                  j!                  | j"                         y )Nz--namespacezNamespace to list revisions in.TF)requiredprefixeshiddenztable({ready_column},name:label=REVISION,active.yesno(yes="yes", no=""),service_name:label=SERVICE:sort=1,creation_timestamp.date("%Y-%m-%d %H:%M:%S %Z"):label=DEPLOYED:sort=2:reverse,author:label="DEPLOYED BY"):({alias}))ready_columnalias)r   ResourcePresentationSpecr   GetNamespaceResourceSpecr   ConceptParserAddToParserr	   AddServiceFlagdisplay_info	AddFormatformatr   READY_COLUMNr   SATISFIES_PZS_ALIAS
AddUriFunc_GetResourceUri)clsparsernamespace_presentations      !lib/surface/run/revisions/list.py
CommonArgszList.CommonArgs2   s     0HH..0) !!#9":;GGO 
 
!!	0 17%22.. 17 1
 ""3#6#67    c                 &    | j                  |       y Nr,   r(   r)   s     r+   Argsz	List.ArgsQ       NN6r-   c                 .    t        t        d |            S )a`  Filters out revisions that are worker pool revisions.

    Per discussion with jmahood@, we want to make sure that all resources are
    self-contained, so none of the describe/list commands should mix the
    resource type.

    Args:
      revisions: List of revisions to filter.

    Returns:
      List of revisions that are service revisions.
    c                     | j                   d u S r/   )worker_pool_name)revs    r+   <lambda>z1List._FilterWorkerPoolRevisions.<locals>.<lambda>b   s    3#7#74#?r-   )listfilter)self	revisionss     r+   _FilterWorkerPoolRevisionszList._FilterWorkerPoolRevisionsU   s     ?KLLr-   c           	   #   ,  K   d}|j                   }t        j                  |t        j                  j
                  | j                               }|j                  j                  j                         }t        j                  |      5 }| j                  |j                         t        j                         t        j                   k7  rcdj#                  |j$                        }t&        j(                  j+                  dj#                  |j,                  |j$                  r|nd             |dj#                  |      }| j/                  |j1                  |||j2                  |j4                              D ]  }|  	 ddd       y# 1 sw Y   yxY ww)r   Nz in [{}]zFor cluster [{cluster}]{zone}: )clusterzonez serving.knative.dev/service = {})servicer   GetConnectionContextr	   ProductRUNReleaseTrackCONCEPTS	namespaceParser   ConnectSetCompleteApiEndpointendpointr
   GetPlatformPLATFORM_MANAGEDr#   cluster_locationr   statusPrintcluster_namer=   ListRevisionslimit	page_size)	r;   argslabel_selectorservice_nameconn_contextnamespace_refclientlocation_msgr7   s	            r+   RunzList.Rund   sB    N<<L%::emm!2!2!4L MM++113M		&	&|	4
!!,"7"78				 I$>$>	>!(()F)FG

,33$11%1%B%B\ 4 	
 
	!;BB<P00


^TZZ#
 	 
5	4	4s   BFC7F?	FFFN)
__name__
__module____qualname____doc__detailed_helpclassmethodr,   r2   r=   r]    r-   r+   r   r   "   sK     "		- 8 8<  Mr-   r   c                        e Zd ZdZed        Zy)	AlphaListr   c                 &    | j                  |       y r/   r0   r1   s     r+   r2   zAlphaList.Args   r3   r-   N)r^   r_   r`   ra   rc   r2   rd   r-   r+   rf   rf      s    ! r-   rf   N)ra   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r   r	   r
   r   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.corer   UniverseCompatibleReleaseTracksrF   BETAGAr   ALPHArf   rd   r-   r+   <module>rr      s    . &  ' ( 3 = 0 4 7 8 @ D G # D%%**D,=,=,@,@AY8== Y B Yx D%%++,  - LL	 r-   