
                             S r SSKrSSKJr  SSKJr  SSKJr	  SSKJ
r  SSKJ
r  SSKJr  SSKJr  SSKJr  SS	KJr  SqS
rS rS rS rg)z'Util package for memberships debug API.    N)
exceptions)network_services)
kubeconfig)util)api_util)base)
propertiesz0connectgateway_{project}_{location}_{membership}c                 8   [         R                  " U SSSS9n[        R                  " U5      nU R                  nU R
                  qUc2  [        R                  R                  R                  R                  5       n[
        c  [        R                  " U5      q [        R                  " U5      nUc  [%        S5        gUR&                  R(                  (       d+  [        R                   " SR#                  U[
        U5      5      eUR&                  R(                  R*                  n[,        R.                  " SU5      nUc%  [        R                   " SR#                  U5      5      eUR1                  S	5      nUR1                  S
5      nUR1                  S5      n	[%        SU	-   5        [2        R4                  R7                  XU5      n
[8        R:                  R=                  5       nXR>                  ;  a$  [%        S5        [@        R#                  U[
        US9n
XR>                  ;  a%  [        R                   " SR#                  U
5      5      e[%        SU
-   5        U
$ ! [        R                   a,    [        R                   " SR#                  U[
        U5      5      ef = f)z;Generate k8s context from membership, location and project.T)prompt
autoselectsearchNz~Failed finding membership. Please verify the membership, and location passed is valid.  membership={}, location={}, project={}zMembership resource is nonezThe cluster to the input membership does not belong to gke. Please verify the membership and location passed is valid.  membership={}, location={}, project={}.z&.*/projects/(.*)/.*/(.*)/clusters/(.*)z<Failed to parse gke cluster resource link. resourceLink = {}         zFound cluster=z+GKE cluster context not found in kubeconfig)projectlocation
membershipzFailed to find kube context of your cluster in your local kubeconfig file. Please make sure the kube context is generated. kube_context={}zUsing kube context=)!r   ParseMembership
fleet_utilMembershipShortnamer   r   r	   VALUEScoreGetMembershipLocationhubapi_utilGetMembershipapitools_exceptionsHttpNotFoundErrorr   Errorformatprintendpoint
gkeClusterresourceLinkrematchgroupcontainer_utilClusterConfigKubeContextkconfig
KubeconfigDefaultcontexts"CONNECT_GATEWAY_KUBECONTEXT_FORMAT)argsmembership_resource_namemembership_id
project_idmembership_resourcecluster_resourcelinkmatchercluster_project_idcluster_locationcluster_namecluster_contextr   s               8lib/googlecloudsdk/api_lib/container/fleet/debug_util.pyContextGeneratorr<   "   si   !11
4D 001IJ-||*]](""''//335J,,-EFH%334LM  	
'(
		%	%	0	0


	EEKV8ZF
  -55@@MMHH/1E' _


F	$	%  }}Q']]1%q!,<'("00<<&8/   "  ///	
788??X- @ O /// 

	!6/2 
 /0	m 
	.	. 


	DDJF8ZE
 s   I A Jc                     [         R                  " 5       n U R                  R                  U R                  R                  SR                  [        R                  R                  R                  R                  5       5      S95      $ )Nzprojects/{}/locations/global)parent)r   GetClientInstanceprojects_locations_meshesListMESSAGES_MODULE1NetworkservicesProjectsLocationsMeshesListRequestr    r	   r   r   r   r   )clients    r;   
ListMeshesrE   n   so    --/&		)	)	.	.NN/66$$,,002 O 
     c                    SnSn[        5       nUR                   H  nUR                  c  M  [        R                  " SUR                  5      nUc  M8  UR                  S5      [        :w  d  UR                  S5      U R                  :w  a  Mr  [        R                  " SUR                  5      nUc  M  UR                  S5      nUR                  S5      n  X4$    X4$ )z8Generate meshName from membership, location and project. z1.*projects/(.*)/locations/(.*)/memberships/(.*): r   r   z.+/meshes/(.*)r   )	rE   meshesdescriptionr%   r&   r'   r   r   name)r0   target_mesh_nametarget_project_numberrI   	mesh_infor6   matcher_news          r;   MeshInfoGeneratorrP   z   s    <&==i$hh<G }}Q8#w}}Q'74??'JHH.	?k		h$**1-%mmA. 
	00) !( 
	00rF   )__doc__r%   apitools.base.pyr   r   googlecloudsdk.api_libr    googlecloudsdk.api_lib.containerr   r+   r   r(   &googlecloudsdk.api_lib.container.fleetr   *googlecloudsdk.command_lib.container.fleetr   r   3googlecloudsdk.command_lib.container.fleet.featuresr   googlecloudsdk.corer	   r   r/   r<   rE   rP    rF   r;   <module>rZ      sF    . 	 > 3 B C E N D * * %W "IX1rF   