
    n                     x   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dZe
j$                   e
j&                  e
j(                  j*                  e
j(                  j,                  e
j(                  j.                         G d de
j0                                      Zy)z'Command for listing reservation blocks.    )absolute_import)division)unicode_literals)base_classes)request_helper)utils)base)flags)scope)resource_argszr        {command} displays all Compute Engine reservation blocks in a densely
        deployed reservation.
      ao          To list all reservation blocks in a densely deployed reservation in
        table form, run:

        $ {command} my-reservation --zone=us-central1-a --project=my-project

        To list the URIs of all reservation blocks in a densely deployed
        reservation, run:

        $ {command} my-reservation --zone=us-central1-a --project=my-project --uri
    )DESCRIPTIONEXAMPLESc                   0    e Zd ZdZeZed        Zd Zd Z	y)Listz'List Compute Engine reservation blocks.c                 |    t        j                         t        _        t        j                  j	                  |       y )N)r   GetReservationResourceArgr   ReservationArgAddArgument)clsparsers     /lib/surface/compute/reservations/blocks/list.pyArgsz	List.Args;   s'    'AACD##F+    c                 ,   |j                   }t        j                  j                  ||j                  t
        j                  j                  t        j                  |            }|j                  j                  }|j                  j                  |j                  |j                  |j                         }g }t#        t%        j&                  |d|fg|j                  j(                  |j*                  |            }|rt-        j.                  |       |S )N)default_scopescope_lister)reservationzoneprojectr   )requestshttp	batch_urlerrors)clientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEr
   GetDefaultScopeListerapitools_clientreservationBlocksmessages#ComputeReservationBlocksListRequestr   r   r   listr   MakeRequestsr!   r"   r   RaiseToolException)	selfargsholderr$   reservation_refservicerequestr#   resultss	            r   _Runz	List._Run@   s    ]]F**((!++)6)@)@)E)E(-(C(CF(K	 ) M  $$66G22.::',,*22 3 4  F>..FG,-##((""	 G v&Nr   c                 l    t        j                  | j                               }| j                  ||      S )zCreates and issues a reservationBlocks.list request.

    Args:
      args: the argparse arguments that this command was invoked with.

    Returns:
      List of reservation blocks.
    )r   ComputeApiHolderReleaseTrackr9   )r2   r3   r4   s      r   RunzList.Run\   s.     **4+<+<+>?F99T6""r   N)
__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpclassmethodr   r9   r=    r   r   r   r   3   s(     0-, ,8
#r   r   N)rA   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r   r'   /googlecloudsdk.command_lib.compute.reservationsr   rB   UniverseCompatibleReleaseTracksr<   ALPHABETAGAListCommandr   rE   r   r   <module>rQ      s     . &  ' 7 9 0 ( 4 E I	


	* D%%++T->->-C-C%%((*0#4 0#* 0#r   