
    R                         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Zedz   Z G d dej(                        Zd Zy)z&services vpc-peerings connect command.    )absolute_import)division)unicode_literals)projects_api)peering)services_util)base)util)log)
propertiesz(gcloud services vpc-peerings operations zwait {0}c                   0    e Zd ZdZdddZed        Zd Zy)Connectz;Connect to a service via VPC peering for a project network.zq          This command connects a private service connection to a service via a
          VPC network.
          a(            To connect a network called `my-network`  on the current project to a
          service called `your-service` with IP CIDR ranges
          `google-range-1,google-range-2` for the service to use, run:

            $ {command} --network=my-network --service=your-service \
                --ranges=google-range-1,google-range-2

          To run the same command asynchronously (non-blocking), run:

            $ {command} --network=my-network --service=your-service \
                --ranges=google-range-1,google-range-2 --async
          )DESCRIPTIONEXAMPLESc                     | j                  dddd       | j                  dddd	
       | j                  dddd       t        j                  j                  |        y)zArgs is called by calliope to gather arguments for this command.

    Args:
      parser: An argparse parser that you can use to add arguments that go
          on the command line after this command. Positional arguments are
          allowed.
    z	--networkNETWORKTz@The network in the current project to be peered with the service)metavarrequiredhelpz	--serviceSERVICEz servicenetworking.googleapis.comzThe service to connect to)r   defaultr   z--rangesRANGESz/The names of IP CIDR ranges for service to use.N)add_argumentr	   
ASYNC_FLAGAddToParser)parsers    ,lib/surface/services/vpc_peerings/connect.pyArgszConnect.Args:   s{     O	  Q
 2(	  *
 >	  @
 	OO'    c                 J   t         j                  j                  j                  j	                  d      }t        |      }|j                  j                  d      }t        j                  ||j                  |j                  |      }|j                  rNt        j                  |j                        }t         j"                  j%                  dj                  |             yt'        j(                  |j                  t        j*                        }t'        j,                  |       y)zRun 'services vpc-peerings connect'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
          with.

    Returns:
      Nothing.
    T)r   ,zcAsynchronous operation is in progress... Use the following command to wait for its completion:
 {0}N)r   VALUEScoreprojectGet_GetProjectNumberrangessplitr   CreateConnectionservicenetworkasync_OP_WAIT_CMDformatnamer   statusPrintr   WaitOperationGetOperationPrintOperation)selfargsr$   project_numberr'   opcmds          r   RunzConnect.RunT   s     $$,,00$0?G&w/N[[s#F		!	!.$,,"(
*B{{rww'c	jj ++16#;8 		$	$RWWg.B.B	CB  $r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r:    r   r   r   r   !   s/    C
-, ( (2%r   r   c                 f    t        j                  t        j                  |             j                  S )N)r   r%   projects_utilParseProjectprojectNumber)
project_ids    r   r&   r&   m   s$    			-44Z@	A	O	OOr   N)r>   
__future__r   r   r   +googlecloudsdk.api_lib.cloudresourcemanagerr   googlecloudsdk.api_lib.servicesr   r   googlecloudsdk.callioper	   #googlecloudsdk.command_lib.projectsr
   rC   googlecloudsdk.corer   r   OP_BASE_CMDr-   SilentCommandr   r&   rA   r   r   <module>rO      sR    - &  ' D 3 9 ( E # *8J&I%d   I%XPr   