gcpdiag.queries.vpn
Queries related to VPN tunnel.
class
Vpn(gcpdiag.models.Resource):
27class Vpn(models.Resource): 28 """ 29 Represents a Vpn Tunnel. 30 https://cloud.google.com/compute/docs/reference/rest/v1/vpnTunnels 31 """ 32 33 _resource_data: dict 34 35 def __init__(self, project_id, resource_data): 36 super().__init__(project_id=project_id) 37 self._resource_data = resource_data 38 39 @property 40 def name(self) -> str: 41 return self._resource_data['name'] 42 43 @property 44 def under_maintenance(self) -> bool: 45 return self._resource_data.get('status') == 'UNDER_MAINTENANCE' 46 47 @property 48 def peer_ip(self) -> str: 49 return self._resource_data['peerIp'] 50 51 @property 52 def status(self) -> str: 53 return self._resource_data['status'] 54 55 @property 56 def router(self) -> str: 57 return self._resource_data['router'] 58 59 @property 60 def id(self) -> str: 61 return self._resource_data['id'] 62 63 @property 64 def local_traffic_selector(self) -> List[str]: 65 return self._resource_data.get('localTrafficSelector', []) 66 67 @property 68 def remote_traffic_selector(self) -> List[str]: 69 return self._resource_data.get('remoteTrafficSelector', []) 70 71 @property 72 def self_link(self) -> str: 73 return self._resource_data['selfLink'] 74 75 @property 76 def full_path(self) -> str: 77 result = re.match(r'https://www.googleapis.com/compute/v1/(.*)', self.self_link) 78 if result: 79 return result.group(1) 80 else: 81 return f'>> {self.self_link}' 82 83 @property 84 def short_path(self) -> str: 85 path = self.project_id + '/' + self.name 86 return path
Represents a Vpn Tunnel. https://cloud.google.com/compute/docs/reference/rest/v1/vpnTunnels
full_path: str
75 @property 76 def full_path(self) -> str: 77 result = re.match(r'https://www.googleapis.com/compute/v1/(.*)', self.self_link) 78 if result: 79 return result.group(1) 80 else: 81 return f'>> {self.self_link}'
Returns the full path of this resource.
Example: 'projects/gcpdiag-gke-1-9b90/zones/europe-west4-a/clusters/gke1'
@caching.cached_api_call(in_memory=True)
def
get_vpn(project_id: str, vpn_name: str, region: str) -> Vpn:
89@caching.cached_api_call(in_memory=True) 90def get_vpn(project_id: str, vpn_name: str, region: str) -> Vpn: 91 logging.debug('fetching VPN: %s', vpn_name) 92 compute = apis.get_api('compute', 'v1', project_id) 93 94 request = compute.vpnTunnels().get(project=project_id, vpnTunnel=vpn_name, region=region) 95 try: 96 response = request.execute(num_retries=config.API_RETRIES) 97 except googleapiclient_errors.HttpError as err: 98 raise utils.GcpApiError(err) 99 return Vpn(project_id, response)