
    \                        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ddZe
j(                   e
j*                  e
j,                  j.                  e
j,                  j0                  e
j,                  j2                         G d de
j4                                      Zy)z+Command for listing reservation sub-blocks.    )absolute_import)division)unicode_literals)base_classes)request_helper)utils)base)flags)scope)resource_argszo        {command} displays all Compute Engine reservation sub-blocks in an extended reservation's block.
      a          To list all reservation sub-blocks in an extended reservation's block my-block in table form,
        run:

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

        To list the URIs of all reservation blocks in an extended reservation, run:

        $ {command} extended-reservation --block-name=my-block --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 sub-blocks.c                     t        j                         t        _        t        j                  j	                  |d       t        j                  |       y )Nlist)operation_type)r   GetReservationResourceArgr   ReservationArgAddArgumentr
   AddListFlags)clsparsers     3lib/surface/compute/reservations/sub_blocks/list.pyArgsz	List.Args:   s:    'AACD##F6#B	v    c                 P   |j                   }t        j                  j                  ||j                  t
        j                  j                  t        j                  |            }d|j                   d|j                   }|j                  j                  }|j                  j                  ||j                   |j"                        }g }t%        t'        j(                  |d|fg|j                  j*                  |j,                  |            }	|rt/        j0                  |       |	S )N)default_scopescope_listerzreservations/z/reservationBlocks/)
parentNamezoneprojectr   )requestshttp	batch_urlerrors)clientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEcompute_flagsGetDefaultScopeListerreservation
block_nameapitools_clientreservationSubBlocksmessages&ComputeReservationSubBlocksListRequestr!   r"   r   r   MakeRequestsr$   r%   r   RaiseToolException)
selfargsholderr'   reservation_refparent_nameservicerequestr&   resultss
             r   _Runz	List._Run@   s   ]]F 	--'1166&<<VD	 	. 	F  "/"="=!>>QRVRaRaQbcK$$99G55)',,*22 6 4  F>..FG,-##((""	 G v&Nr   c                 l    t        j                  | j                               }| j                  ||      S )zCreates and issues a reservationSubBlocks.list request.

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

    Returns:
      List of reservation sub-blocks.
    )r   ComputeApiHolderReleaseTrackr?   )r7   r8   r9   s      r   RunzList.Run^   s.     **4+<+<+>?F99T6""r   N)
__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpclassmethodr   r?   rC    r   r   r   r   2   s(     4- 
<
#r   r   N)rG   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r-   r   r*   /googlecloudsdk.command_lib.compute.reservationsr   :googlecloudsdk.command_lib.compute.reservations.sub_blocksrH   UniverseCompatibleReleaseTracksrB   ALPHABETAGAListCommandr   rK   r   r   <module>rX      s     2 &  ' 7 9 0 ( E E I L	
		& D%%++T->->-C-C%%((*3#4 3#* 3#r   