
                            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dlmZ d Z ej$                  ej&                  j(                        ej*                   G d dej,                                      Z ej$                  ej&                  j0                         G d de             Zy)zCImplementation of buckets list command for getting info on buckets.    )absolute_import)division)unicode_literals)	cloud_api)base)errors)flags)storage_url)wildcard_iterator)full_resource_formatter)resource_utilc                     | j                  ddd       t        j                  |        t        j                  |        t        j                  |        y)z$Adds common arguments to the parser.urls*z!Specifies URL of buckets to List.)nargshelpN)add_argumentr	   add_additional_headers_flagadd_raw_display_flag add_uri_support_to_list_commandsparsers    #lib/surface/storage/buckets/list.py_add_common_argsr      sI    CA   ##F+V$((0    c                   0    e Zd ZdZdddZed        Zd Zy)ListLists Cloud Storage buckets.z)
      List Cloud Storage buckets.
      a  

      List all Google Cloud Storage buckets in default project:

        $ {command}

      List buckets beginning with ``b'':

        $ {command} gs://b*

      List buckets with JSON formatting, only returning the ``name'' key:

        $ {command} --format="json(name)"
      )DESCRIPTIONEXAMPLESc                     t        |        y N)r   r   s    r   Argsz	List.ArgsB   s
    Vr   c              #     K   |j                   r~g }|j                   D ]l  }t        j                  |      }|j                         s4|j	                         s$t        j                  dj                  |            |j                  |       n n.t        j                  t        j                  j                        g}|D ]  }t        j                  |j                  t        j                   j"                  dt%        |dd            D ]4  }t'        j(                  |t*        j,                  |j.                         6  y w)NzURL does not match buckets: {}Tsoft_deletedF)fields_scopeget_bucket_metadatasoft_deleted_buckets)display_raw_keys)r   r
   storage_url_from_stringis_provider	is_bucketr   InvalidUrlErrorformatappendCloudUrlProviderPrefixGCSr   get_wildcard_iterator
url_stringr   FieldsScopeFULLgetattrr   get_display_dict_for_resourcer   BucketDisplayTitlesAndDefaultsraw)selfargsr   r4   urlbuckets         r   RunzList.RunF   s     yyd		*11*=!S]]_&&.55jA  	C " "";#=#=#A#ABCd%;;
.. ,,11"&t^UC	& 99#BB!XX
 	
 s   D>E N)__name__
__module____qualname____doc__detailed_helpstaticmethodr#   r?    r   r   r   r   )   s1     %

	-(  
r   r   c                        e Zd ZdZed        Zy)	ListAlphar   c                 D    t        |        t        j                  |        y r"   )r   r	   add_soft_deleted_flagr   s    r   r#   zListAlpha.Argse   s    V	'r   N)r@   rA   rB   rC   rE   r#   rF   r   r   rH   rH   a   s    $( (r   rH   N)rC   
__future__r   r   r   googlecloudsdk.api_lib.storager   googlecloudsdk.callioper   "googlecloudsdk.command_lib.storager   r	   r
   r   ,googlecloudsdk.command_lib.storage.resourcesr   r   r   ReleaseTracksReleaseTrackGAUniverseCompatibleListCommandr   ALPHArH   rF   r   r   <module>rV      s    J &  ' 4 ( 5 4 : @ P F1 D%%(()3
4 3
  *3
l D%%++,( ( -(r   