
    J                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r  SS	K	Jr  SS
KJr  SrSrSrSrSSS.r " S S\R,                  5      rg)zRevision-specific printer.    )absolute_import)division)print_function)unicode_literals)container_resource)revision)!container_and_volume_printer_util)k8s_object_printer_util)custom_printer_baser   zCPU is always allocatedz/CPU is only allocated during request processingh2czFirst GenerationzSecond Generation)gen1gen2c                   (   \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\ SS\R&                  S\R*                  4S jj5       r\S 5       rSrg)RevisionPrinter#   zPrints the run Revision in a custom human-readable format.

Format specific to Cloud Run revisions. Only available on Cloud Run commands
that print revisions.
c           
         [         R                  " [        R                  " U5      [        R                  " UR
                  5      SU R                  U5      [        R                  " U5      [        R                  U5      /5      nU$ )z@Transform a service into the output structure of marker classes. )
cpLinesk8s_utilBuildHeader	GetLabelslabelsTransformSpecFormatReadyMessager   CurrentMinInstances)selfrecordfmts      ?lib/googlecloudsdk/command_lib/run/printers/revision_printer.py	TransformRevisionPrinter.Transform*   si    
((V$6==)6"##F+++F3 C J    c                 T    U R                   b  SR                  U R                   5      $ g )Nz{}s)timeoutformatr   s    r    
GetTimeoutRevisionPrinter.GetTimeout6   s"    ~~!\\&..))r#   c                 V    U R                   R                  [        R                  S5      $ N )annotationsgetr   MIN_SCALE_ANNOTATIONr'   s    r    GetMinInstancesRevisionPrinter.GetMinInstances<   !    !!("?"?DDr#   c                 V    U R                   R                  [        R                  S5      $ r+   )r-   r.   r   MAX_SCALE_ANNOTATIONr'   s    r    GetMaxInstancesRevisionPrinter.GetMaxInstances@   r2   r#   c                 V    U R                   R                  [        R                  S5      $ r+   )r-   r.   r   CPU_UTILIZATION_ANNOTATIONr'   s    r    GetTargetCpuUtilization'RevisionPrinter.GetTargetCpuUtilizationD   s!    !!("E"ErJJr#   c                 V    U R                   R                  [        R                  S5      $ r+   )r-   r.   r   "CONCURRENCY_UTILIZATION_ANNOTATIONr'   s    r    GetTargetConcurrencyUtilization/RevisionPrinter.GetTargetConcurrencyUtilizationH   s&    !!33R r#   c                     U R                   R                  [        R                  5      nU(       d  gUR	                  S5      S   nU$ )Nr,   /)r-   r.   r   CMEK_KEY_ANNOTATIONsplit)r   cmek_key	cmek_names      r    GetCMEKRevisionPrinter.GetCMEKN   s>    !!%%&8&L&LMHs#B'Ir#   c                     U R                   R                  [        R                  5      nU(       d  gUR	                  5       S:X  a  [
        $ [        $ )Nr,   false)r-   r.   r   CPU_THROTTLE_ANNOTATIONlowerCPU_ALWAYS_ALLOCATED_MESSAGECPU_THROTTLED_MESSAGE)r   cpu_throttleds     r    GetCpuAllocation RevisionPrinter.GetCpuAllocationV   sF    &&**22M 				'	)))""r#   c                 j    U R                   R                   H  nUR                  [        :X  d  M    g   g)NEnabledr,   )	containerportsnameHTTP2_PORT_NAME)r   ports     r    GetHttp2EnabledRevisionPrinter.GetHttp2Enabledb   s,      &&	o	% ' r#   c                 X    [         R                  " U 5      nU[        ;   a	  [        U   $ U$ N)r   GetExecutionEnvironmentEXECUTION_ENV_VALS)r   execution_env_values     r    GetExecutionEnvRevisionPrinter.GetExecutionEnvi   s.    "::6B00 344r#   c                 V    U R                   R                  [        R                  S5      $ r+   )r-   r.   r   SESSION_AFFINITY_ANNOTATIONr'   s    r    GetSessionAffinity"RevisionPrinter.GetSessionAffinityp   s!    !!("F"FKKr#   c                 .    [         R                  " U 5      $ r[   )r   GetThreatDetectionEnabledr'   s    r    rf   )RevisionPrinter.GetThreatDetectionEnabledt   s    --f55r#   r   returnc                    SU R                   R                  4SU R                  4/nU(       di  UR                  S[        R                  U 5      4S[        R                  U 5      4S[        R                  U 5      4S[        R                  U 5      4/5        UR                  S[        R                  " U R                  5      4S[        R                  U 5      4S	[        R                  " U R                  5      4S
[        R                  U 5      4S[        R                  U 5      4S[        R!                  U 5      4S[        R#                  U 5      4S[        R%                  U 5      4S[&        R(                  " U 5      4S[        R+                  U 5      4/
5        [,        R.                  " [&        R0                  " U 5      [,        R2                  " U5      /5      $ )NzService accountConcurrencyzMin instanceszMax instanceszTarget CPU utilizationzTarget concurrency utilizationzSQL connectionsTimeoutz
VPC accessCMEKzHTTP/2 EnabledzCPU AllocationzExecution EnvironmentzSession AffinityVolumeszThreat Detection)specserviceAccountNameconcurrencyextendr   r0   r5   r9   r=   r   GetCloudSqlInstancesr-   r(   GetVpcNetworkrF   rX   rO   r_   rc   container_util
GetVolumesrf   r   r   GetContainersLabeled)r   manual_scaling_enabledr   s      r    r   RevisionPrinter.TransformSpecx   s   
 
FKK::;	**+-F "mmO;;FC
DO;;FC
D&55f=
 /==fE 	 MM))&*<*<=	
 
O..v67	x--f.@.@AB	((01	?::6BC	?;;FCD#++F3	

 ..v6	
 
N--f56	_FFvNO' * 88^11&92::f;MNOOr#   c                 ^    [         R                  " S[        U R                  SS 5      4/5      $ )NzCurrent Min InstancesdesiredReplicas)r   rw   getattrstatusr'   s    r    r   #RevisionPrinter.CurrentMinInstances   s1    ::#FMM#4d;	
  r#    N)F)__name__
__module____qualname____firstlineno____doc__r!   staticmethodr(   r0   r5   r9   r=   rF   rO   rX   r_   rc   rf   r   Revisionr   r   r   r   __static_attributes__r   r#   r    r   r   #   s:   
  
 E E E E K K  
   	# 	#     L L 6 6 8=(P(P	xx(P (PT  r#   r   N)r   
__future__r   r   r   r   googlecloudsdk.api_lib.runr   r   'googlecloudsdk.command_lib.run.printersr	   rt   r
   r   googlecloudsdk.core.resourcer   r   REVISION_PRINTER_FORMATrL   rM   rV   r]   CustomPrinterBaser   r   r#   r    <module>r      s\    ! &  % ' 9 / g W B$ 8 I 0:MN Gb** Gr#   