
                             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
dZ ej                  ej                  j                  ej                  j                          G d dej"                               Zd Zee_        y)z;'Bare Metal Solution networks list-ip-reservations command.    )absolute_import)division)unicode_literals)	BmsClient)base)flags)utilzg
          List IP range reservations for Bare Metal Solution networks
          in a project.
        z
          To list IP range reservations for networks in the region
          `us-central1`, run:

            $ {command} --region=us-central1

          Or:

          To list all IP range reservations in the project, run:

            $ {command}
    )DESCRIPTIONEXAMPLESc                   &    e Zd ZdZed        Zd Zy)ListzIList IP range reservations for Bare Metal Solution networks in a project.c                    t         j                  j                  |        t         j                  j                  |        t         j                  j                  |        t        j                  |        | j                  j                  d       y)z Register flags for this command.ztable(name.segment(-1):label=NETWORK_NAME,id:label=NETWORK_ID,name.segment(-3):label=REGION,start_address:label=RESERVATION_START_ADDRESS,end_address:label=RESERVATION_END_ADDRESS,note:label=RESERVATION_NOTE)N)	r   PAGE_SIZE_FLAGRemoveFromParserSORT_BY_FLAGURI_FLAGr   AddRegionArgToParserdisplay_info	AddFormat)parsers    0lib/surface/bms/networks/list_ip_reservations.pyArgsz	List.Args4   sg     	((0&&v.MM""6*	v& !!	"#    c              #      K   t        j                  |j                  j                  j	                               }t               }|j                  ||j                        }|D ]  }t        |      D ]  }|   y w)N)limit)	r	   FixParentPathWithGlobalRegionCONCEPTSregionParser   ListNetworksr   _ExtractReservations)selfargsr   clientnetworks_gennetworkreservations          r   RunzList.RunF   sh     //0D0D0J0J0LMF[F&&vTZZ&@L-g6+ 7  s   A;A=N)__name__
__module____qualname____doc__staticmethodr   r(    r   r   r   r   0   s    Q# #"r   r   c                     g }| j                   D ]`  }i }| j                  |d<   | j                  |d<   |j                  |d<   |j                  |d<   |j
                  |d<   |j                  |       b |S )z*Extracts reservations from network object.nameidstart_addressend_addressnote)reservationsr0   r1   startAddress
endAddressr4   append)r&   outresreservation_dicts       r   r!   r!   P   s~    
#!!c&||V$ZZT(+(8(8_%&)nn]#"xxVJJ  " 
*r   N)r,   
__future__r   r   r   %googlecloudsdk.api_lib.bms.bms_clientr   googlecloudsdk.callioper   googlecloudsdk.command_lib.bmsr   r	   DETAILED_HELPReleaseTracksReleaseTrackALPHAGAListCommandr   r!   detailed_helpr.   r   r   <module>rG      s    B &  ' ; ( 0 /	
	, D%%++T->->-A-AB4  C> # r   