
    9                         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Z G d dej&                        Zy)zWorkerPool specific printer.    )absolute_import)division)print_function)unicode_literals)worker_pool)instance_split_printer)k8s_object_printer_util)worker_pool_revision_printer)console_attr)custom_printer_base
workerpoolc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	WorkerPoolPrinterzPrints the run WorkerPool in a custom human-readable format.

  Format specific to Cloud Run worker pools. Only available on Cloud Run
  commands
  that print worker pools.
  c                    t        j                         } |j                  |j                          }	 d|j                  z   }|j                  dj                  |d|j                  |            S # t
        $ r d|j                  z   }Y Gw xY w)Nzregion z
namespace z{} {} {} in {}
WorkerPool)
r   GetConsoleAttrColorizeReadySymbolAndColorregionKeyError	namespace	Emphasizeformatname)selfrecordconstatusplaces        Blib/googlecloudsdk/command_lib/run/printers/worker_pool_printer.py_BuildWorkerPoolHeaderz(WorkerPoolPrinter._BuildWorkerPoolHeader(   s    

%
%
'CS\\65578F.&--'e ==fkk5I   .V---e.s   A/ /B
	B
c                     d}|j                   d}n%dj                  |j                   j                        }t        j                         j                  |      S )N zUnknown revisionzRevision {})r   r   latestCreatedRevisionNamer   r   r   )r   r   headers      r    _GetRevisionHeaderz$WorkerPoolPrinter._GetRevisionHeader3   sJ    F}}!f##FMM$K$KLf&&(226::    c                     t        j                  | j                  |      t        j                  |j
                  j                        t        j                  j                  |j
                        g      S )zAdds printers for the revision.)
cpLinesr&   k8s_util	GetLabelstemplatelabelsr
   WorkerPoolRevisionPrinterTransformSpec)r   r   s     r    _RevisionPrintersz#WorkerPoolPrinter._RevisionPrinters;   sY    88'6??112$>>LLOO	
  r'   c                 ~   t        j                  dt        j                  |      fg      g}| j	                  |      }|)t        j                  d|fg      }|j                  |       t        j                  |      }|0t        j                  d|fg      }d|_        |j                  |       t        j                  |      }|)t        j                  d|fg      }|j                  |       |j                  t        j                  dt        j                  |      fg             t        j                  |      S )zAdds worker pool level values.zBinary AuthorizationScalingzBreakglass JustificationFDescriptionzThreat Detection)r)   Labeledr+   GetBinAuthzPolicy_GetScalingSettingappendGetBinAuthzBreakglass
skip_emptyGetDescriptionGetThreatDetectionEnabledSection)	r   r   r.   scaling_settingscaling_mode_labelbreakglass_valuebreakglass_labeldescriptiondescription_labels	            r    _GetWorkerPoolSettingsz(WorkerPoolPrinter._GetWorkerPoolSettingsE   sA    	

#X%?%?%GH
 	F --f5O"::o
&' 	 mm&'55f=# %'7
8% 	 %*!mm$%))&1K**+
&& 	 mm%&
MM"**	X??GH   ::fr'   c                    |j                   j                  t        j                  d      }|dk(  r/|j                   j                  t        j                  d      }d|z  S |j                   j                  t        j
                  d      }|j                   j                  t        j                  d      }|r	d|d|dS d|z  S )	z0Returns the scaling setting for the worker pool.r#   manualzManual (Instances: %s)0zAuto (Min: z, Max: )zAuto (Min: %s))annotationsgetr   #WORKER_POOL_SCALING_MODE_ANNOTATION MANUAL_INSTANCE_COUNT_ANNOTATION WORKER_POOL_MIN_SCALE_ANNOTATION WORKER_POOL_MAX_SCALE_ANNOTATION)r   r   scaling_modeinstance_countmin_instance_countmax_instance_counts         r    r7   z$WorkerPoolPrinter._GetScalingSettingi   s    %%))77L x))--

6
6n &66!--11

6
6 "--11

6
6 

 	

  "444r'   c                    | j                  |      }t        j                  | j                  |      t	        j
                  |j                        dt        j                  |      d||j                         rdndt        j                  t	        j                  |      | j                  |      fg      t	        j                  |      g	      }|S )zDTransform a worker pool into the output structure of marker classes. r#   )rD   r)   r*   r!   r+   r,   r.   r   TransformInstanceSplitFieldsWillPrintOutputr5   LastUpdatedMessager1   FormatReadyMessage)r   r   worker_pool_settingsfmts       r    	TransformzWorkerPoolPrinter.Transform   s    66v>
((##F+6==);;FC$446B


''/""6*
  	 	##F+ C Jr'   N)
__name__
__module____qualname____doc__r!   r&   r1   rD   r7   r[    r'   r    r   r       s&    	;"H54r'   r   N)r_   
__future__r   r   r   r   googlecloudsdk.api_lib.runr   'googlecloudsdk.command_lib.run.printersr   r	   r+   r
   googlecloudsdk.core.consoler   googlecloudsdk.core.resourcer   r)   WORKER_POOL_PRINTER_FORMATCustomPrinterBaser   r`   r'   r    <module>rh      sB    # &  % ' 2 J W P 4 B) t,, tr'   