
                             d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z
 ddlmZ ddZddZ G d	 d
ej                         Zy)z6istioctl backed gcloud container fleet mesh debug API.    N)messages)binary_operations)
exceptions)storec                     t        j                  t        j                        }| r|j	                  |        |r|D ]  }|j                  |        |S )z6Return an env dict to be passed on command invocation.)copydeepcopyosenvironupdatepop)
extra_varsexclude_varsenvks       Glib/googlecloudsdk/command_lib/container/fleet/mesh/istioctl_backend.pyGetEnvArgsForCommandr      s@    bjj!#JJz	ggaj 	*    c                     	 t        j                  | |      }d|i}t        j                  |d      S # t        $ r+}t        j                  dj                  ||            d}~ww xY w)z@Generate a JSON object containing the current gcloud auth token.)allow_account_impersonation
auth_tokenz<Error retrieving auth credentials for {operation}: {error}. )	operationerrorNT)	sort_keys)c_storeGetFreshAccessToken	Exceptionc_exceptErrorformatjsondumps)accountr   impersonatedaccess_tokenoutputes         r   GetAuthTokenr(   %   sy    	+..\;L 	lF 
Fd	++	 
 +
..FMMq 	N 	*+ ++s   4 	A(&A##A(c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )IstioctlWrapperz`istioctl_backend` wrapper.c                 v    dt         j                  j                  d      i}t        t        |   dd|d| y )NMISSING_EXECistioctl)binary)r.   custom_errors )r   MISSING_BINARYr    superr*   __init__)selfkwargsr/   	__class__s      r   r3   zIstioctlWrapper.__init__7   sI    //66j6IM 
/4) # r   c                     |dk(  r | j                   di |S |dk(  r | j                  di |S |dk(  r | j                  di |S y )N
bug-reportproxy-configproxy-statusr0   )_ParseBugReportArgs_ParseProxyConfigArgs_ParseProxyStatusArgs)r4   commandr5   s      r   _ParseArgsForCommandz$IstioctlWrapper._ParseArgsForCommandA   sa    ,%T%%///	N	"'T''1&11	N	"'T''1&11 
#r   c                     ~dd|g}|S )Nr8   	--contextr0   )r4   contextr5   	exec_argss       r   r;   z#IstioctlWrapper._ParseBugReportArgsI   s    {G4Ir   c                 j    ~d||d|g}|r|j                  d|g       |r|j                  d|g       |S )Nr9   rA   z-oz--fqdnextend)r4   proxy_config_typepod_name_namespacerB   output_formatfqdnr5   rC   s           r   r<   z%IstioctlWrapper._ParseProxyConfigArgsN   sQ     	I m,-$'(r   c                     ~g d}|r|j                  |g       |j                  d|g       |r|j                  dd|z   g       |r|j                  d|g       |S )N)experimentalr:   z--xds-via-agentsrA   z
--meshNamezmesh:z--projectNumberrE   )r4   rB   pod_name	mesh_nameproject_numberr5   rC   s          r   r=   z%IstioctlWrapper._ParseProxyStatusArgse   sn     	I
 z"k7+,g	&9:;)>:;r   )
__name__
__module____qualname____doc__r3   r?   r;   r<   r=   __classcell__)r6   s   @r   r*   r*   4   s    #2
.r   r*   )NN)F)rS   r   r!   r
   (googlecloudsdk.command_lib.anthos.commonr   &googlecloudsdk.command_lib.util.anthosr   googlecloudsdk.corer   r   googlecloudsdk.core.credentialsr   r   r   r(   StreamingBinaryBackedOperationr*   r0   r   r   <module>rZ      s>    =   	 = D 6 <,A'FF Ar   