
    S                         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  G d
 dej                        Z G d de	j                        Zy)z#`gcloud app versions list` command.    )absolute_import)division)unicode_literals)appengine_api_client)version_util)base)
exceptions)logc                       e Zd Zy)ServiceNotFoundErrorN)__name__
__module____qualname__      lib/surface/app/versions/list.pyr   r      s    r   r   c                   .    e Zd ZdZddiZed        Zd Zy)ListzList your existing versions.

  This command lists all the versions of all services that are currently
  deployed to the App Engine server.
  EXAMPLESa%            To list all services and versions, run:

            $ {command}

          To list all versions for a specific service, run:

            $ {command} --service=service1

          To list only versions that are receiving traffic, run:

            $ {command} --hide-no-traffic

          To list all version information in JSON, run:

            $ {command} --format="json"

          To list versions created after a specific date, run:

            $ {command} --filter="version.createTime.date('%Y-%m-%d', Z)>'2017-11-03'"
          c                     | j                  ddd       | j                  ddd       | j                  j                  d	       | j                  j                  t        j
                         y )
Nz	--servicez-sz%Only show versions from this service.)helpz--hide-no-traffic
store_truez.Only show versions that are receiving traffic.)actionr   a6  
          table(
            service,
            version.id:label=VERSION.ID,
            traffic_split.format("{0:.2f}", .),
            last_deployed_time.date("%Y-%m-%dT%H:%M:%S%Oz", undefined="-")
              :label=LAST_DEPLOYED,
            version.servingStatus:label=SERVING_STATUS
          )
    )add_argumentdisplay_info	AddFormat
AddUriFuncr   GetUri)parsers    r   Argsz	List.Args?   sn    
TD  F
+LM  O
!! 	# 		 ""<#6#67r   c                    t        j                  | j                               }|j                         }|D cg c]  }|j                   }}t        j                  dj                  |             |j                  r2|j                  |vr$t        dj                  |j                              |j                  r)|D cg c]  }|j                  |j                  k(  s|  }}|j                  |      }|j                  r)|D cg c]  }|j                  |j                  k(  s|  }}|j                  r|D cg c]  }|j                  s| }}t        |t              S c c}w c c}w c c}w c c}w )NzAll services: {0}zService [{0}] not found.)key)r   GetApiClientForTrackReleaseTrackListServicesidr
   debugformatservicer   ListVersionshide_no_traffictraffic_splitsortedstr)selfargs
api_clientservicessservice_idsversionsvs           r   RunzList.RunQ   s7   %::4;L;L;NOJ&&(H!)*A144K*II!((56||K7 
$
+
+DLL
9; ; ||%>X)=!Xh>&&x0H||%CXdll)B!XhC %9X!Xh9($$' + ?
 D :s)   E#?E(E(E-$E-:E2E2N)r   r   r   __doc__detailed_helpstaticmethodr    r7   r   r   r   r   r       s1      -0 8 8"%r   r   N)r8   
__future__r   r   r   googlecloudsdk.api_lib.appr   r   googlecloudsdk.callioper   googlecloudsdk.corer	   r
   Errorr   ListCommandr   r   r   r   <module>rA      sH    * &  ' ; 3 ( * #:++ G%4 G%r   