
    
                         d Z ddlmZ ddlmZ ddlmZ ddl	m
Z
 de
j                  defdZd	e
j                  dej                  fd
Zdee
j                     dej                  fdZy)z,Contains shared methods for volume printing.    )Sequence)k8s_object_printer_util)custom_printer_base)k8s_minversion_to_pathreturnc                 T    d| j                    d| j                   d| j                   S )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                    | j                   r-t        j                  dd| j                   j                  fg      S | j                  rht        j                  dddj                  | j                  j                  | j                  j                        fd| j                  j                  fg      S | j                  r[t        j                  dd| j                  j                  fd| j                  j                  fd	| j                  j                  fg      S | j                  rrt        j                  d
d| j                  j                  fd| j                  j                  fd| j                  j                  D cg c]  }t        |       c}fg      S | j                   r-t        j                  dd| j                   j"                  fg      S t        j                  dg      S c c}w )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   8G"volumesc                 B      fd}t        j                   |             S )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      K   D  ci c]  } | j                   |  }} t        j                  |      D ]%  \  }} d| j                    }t        |       }||f ' y c c} w w)Nzvolume )namek8s_util
OrderByKeyr'   )r   volumes_dict_keyvaluer(   s        r   VolumeszGetVolumes.<locals>.VolumesP   sf     6=>gFFKK'gL>((6	6fkk]#cF#e%L 7 ?s   A!AAA!)r   Mapped)r(   r2   s   ` r   
GetVolumesr4   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'   r4    r   r   <module>r?      sm     3  W B O**!-'.. !-RXX !-H0 RXX r   