
    
                         S r SSKJr  SSKJr  SSKJr  SSK	J
r
  S\
R                  S\4S jrS	\
R                  S\R                  4S
 jrS\\
R                     S\R                  4S jrg)z,Contains shared methods for volume printing.    )Sequence)k8s_object_printer_util)custom_printer_base)k8s_minversion_to_pathreturnc                 T    SU R                    SU R                   SU R                   3$ )Nzpath: z, version: z, mode: )pathversionmode)r   s    @lib/googlecloudsdk/command_lib/run/printers/v2/volume_printer.py_FormatVersionToPathr      s;     	##$K0G0G/H I



	!    volumec                    U R                   (       a.  [        R                  " SSU R                   R                  4/5      $ U R                  (       ai  [        R                  " SSSR                  U R                  R                  U R                  R                  5      4SU R                  R                  4/5      $ U R                  (       a\  [        R                  " SSU R                  R                  4SU R                  R                  4S	U R                  R                  4/5      $ U R                  (       av  [        R                  " S
SU R                  R                  4SU R                  R                  4SU R                  R                   Vs/ s H  n[        U5      PM     sn4/5      $ U R                   (       a.  [        R                  " SSU R                   R"                  4/5      $ [        R                  " S/5      $ s  snf )z%Format a volume for the volumes list.)typez	in-memoryz
size-limit)r   nfslocationz{}:{}z	read-only)r   zcloud-storagebucketzmount-options)r   secretr   zdefault-modeitems)r   cloudsql	instances)r   unknown)	empty_dircpLabeled
size_limitr   formatserverr
   	read_onlygcsr   mount_optionsr   default_moder   r   cloud_sql_instancer   )r   is     r   _FormatVolumer'   "   s   ::	v''223   zz::	W^^FJJ$5$5vzzGH	fjj**+  
 zz::!	6::$$%	fjj**+	&**223	   }}::	6==''(	334	FMM4G4GH4Gq'*4GHI	     ::	f//99:  
 ::*+,, Is   Hvolumesc                 F   ^  U 4S jn[         R                  " U" 5       5      $ )zReturns a formatted table of a resource's volumes.

Args:
  volumes: A list of volumes.

Returns:
  A formatted table of a resource's volumes.
c               3      >#    T V s0 s H  o R                   U _M     nn [        R                  " U5       H$  u  p SU R                    3n[        U 5      nX44v   M&     g s  sn f 7f)Nzvolume )namek8s_util
OrderByKeyr'   )r   volumes_dict_keyvaluer(   s        r   VolumesGetVolumes.<locals>.VolumesP   s_     6=>gFKK'gL>((6	fkk]#cF#eL 7 ?s   A$AAA$)r   Mapped)r(   r2   s   ` r   
GetVolumesr5   F   s     
79	r   N)__doc__typingr   'googlecloudsdk.command_lib.run.printersr   r,   googlecloudsdk.core.resourcer   r   ;googlecloudsdk.generated_clients.gapic_clients.run_v2.typesr   VersionToPathstrr   VolumeTabler'   r5    r   r   <module>r@      sm     3  W B O**!-'.. !-RXX !-H0 RXX r   