
    K                         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Z	dd	gZ
 G d
 dej                        ZddZy)z#Wrapper for cloud-run-proxy binary.    )absolute_import)division)unicode_literals)binary_operations)logzCould not locate Cloud Run executable cloud-run-proxy on the system PATH. Please ensure gcloud cloud-run-proxy component is properly installed. See https://cloud.google.com/sdk/docs/components for more details.z shutting down.z proxies to c                   0     e Zd ZdZ fdZ	 	 	 ddZ xZS )ProxyWrapperz6Binary operation wrapper for cloud-run-proxy commands.c                 J    t        t        | 
  dddt        idt        d| y )Nzcloud-run-proxyMISSING_EXECT)binarycustom_errorsinstall_if_missingstd_err_func )superr	   __init__MISSING_BINARYStreamErrHandler)selfkwargs	__class__s     +lib/googlecloudsdk/command_lib/run/proxy.pyr   zProxyWrapper.__init__%   s2    	,&  %~6%	
     c                     ~d|g}|r|j                  d|g       |r|j                  d|g       |r|j                  d|g       |S )Nz-hostz-tokenz-bindz-server-up-time)extend)r   hosttokenbinddurationr   	exec_argss          r   _ParseArgsForCommandz!ProxyWrapper._ParseArgsForCommand/   sX     	$I%()')845r   )NNN)__name__
__module____qualname____doc__r   r!   __classcell__)r   s   @r   r	   r	   "   s    > "& $$(	r   r	   c                     ~ ~d }|S )z;Customized processing for streaming stderr from subprocess.c                     | rZt         D ]  }|| v s y  t        j                  j                  |        d| v r%d| v r t        j                  j                  d       y y y y )Nzserver error:zbind: address already in usez=You can set the --port flag to specify a different local port)IGNORED_LOGSr   statusPrint)lineto_be_ignoreds     r   HandleStdErrz&StreamErrHandler.<locals>.HandleStdErrF   sb    '-D 
 ( 
jjt	D	 %Ct%K

K	M &L	  r   r   )result_holdercapture_outputr.   s      r   r   r   A   s     ^	M 
r   N)F)r%   
__future__r   r   r   &googlecloudsdk.command_lib.util.anthosr   googlecloudsdk.corer   r   r)   StreamingBinaryBackedOperationr	   r   r   r   r   <module>r5      sD    * &  ' D #" ">2$CC >r   