
    X                     t   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y)z4Command for listing available worker pool revisions.    )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	)
Listz%List available worker pool revisions.z"          {description}
          zo          To list all revisions in a worker pool `foo`:

              $ {command} --worker-pool=foo
          )DESCRIPTIONEXAMPLESc                    t        j                  dt        j                         dddd      }t	        j
                  |g      j                  |       t        j                  |       t        j                  |       |j                  j                  dj                  t        j                  t        j                                y )Nz--namespacezNamespace to list revisions in.TF)requiredprefixeshiddenztable({ready_column},name:label=REVISION,active.yesno(yes="yes", no=""),worker_pool_name:label=WORKER_POOL: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	   AddWorkerPoolFlagAddRegionArgdisplay_info	AddFormatformatr   READY_COLUMNr   SATISFIES_PZS_ALIAS)clsparserworker_pool_presentations      .lib/surface/run/worker_pools/revisions/list.py
CommonArgszList.CommonArgs2   s    1JJ..0)  !!#;"<=II 
F#	v
!!	0 17%22.. 17 1
    c                 &    | j                  |       y N)r*   )r&   r'   s     r)   Argsz	List.ArgsQ   s    NN6r+   c                 .    t        t        d |            S )a`  Filters out revisions that are service 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 worker pool revisions.
    c                     | j                   d uS r-   )worker_pool_name)revs    r)   <lambda>z.List._FilterServiceRevisions.<locals>.<lambda>b   s    3#7#7t#Cr+   )listfilter)self	revisionss     r)   _FilterServiceRevisionszList._FilterServiceRevisionsU   s     CYOPPr+   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)zList available revisions.Nz in [{}]zFor cluster [{cluster}]{zone}: )clusterzonez"run.googleapis.com/workerPool = {})worker_poolr   GetConnectionContextr	   ProductRUNReleaseTrackCONCEPTS	namespaceParser   ConnectSetCompleteApiEndpointendpointr
   GetPlatformPLATFORM_MANAGEDr#   cluster_locationr   statusPrintcluster_namer8   ListRevisionslimit	page_size)	r6   argslabel_selectorr1   conn_contextnamespace_refclientlocation_msgr2   s	            r)   RunzList.Rund   sJ    N''%::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 	
 
	%=DD
 --


^TZZ#
 	 
5	4	4s   BFC7F?	FFFN)
__name__
__module____qualname____doc__detailed_helpclassmethodr*   r.   r8   rW    r+   r)   r   r   "   sK     .		-  <  Qr+   r   N)r[   
__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ReleaseTracksrA   ALPHABETAr   r^   r+   r)   <module>rh      s    ; &  ' ( 3 = 0 4 7 8 @ D G # D%%++T->->-C-CD[8== [ E [r+   