def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) helper = vpn_tunnels_utils.VpnTunnelHelper(holder) project = properties.VALUES.core.project.GetOrFail() args.filter, filter_expr = filter_rewrite.Rewriter().Rewrite( args.filter) return helper.List(project=project, filter_expr=filter_expr)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client helper = vpn_tunnels_utils.VpnTunnelHelper(holder) vpn_tunnel_ref = _VPN_TUNNEL_ARG.ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(client)) return helper.Describe(vpn_tunnel_ref)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) helper = vpn_tunnels_utils.VpnTunnelHelper(holder) project = properties.VALUES.core.project.GetOrFail() display_info = args.GetDisplayInfo() defaults = resource_projection_spec.ProjectionSpec( symbols=display_info.transforms, aliases=display_info.aliases) args.filter, filter_expr = filter_rewrite.Rewriter().Rewrite( args.filter, defaults=defaults) return helper.List(project=project, filter_expr=filter_expr)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client helper = vpn_tunnels_utils.VpnTunnelHelper(holder) vpn_tunnel_refs = _VPN_TUNNEL_ARG.ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(client)) utils.PromptForDeletion(vpn_tunnel_refs, 'region') operation_refs = [helper.Delete(ref) for ref in vpn_tunnel_refs] wait_message = 'Deleting VPN {}'.format( ('tunnels' if (len(operation_refs) > 1) else 'tunnel')) operation_poller = DeleteBatchPoller(client, client.apitools_client.vpnTunnels) return waiter.WaitFor(operation_poller, poller.OperationBatch(operation_refs), wait_message)
def Run(self, args): """Issues API requests to construct VPN Tunnels.""" holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client helper = vpn_tunnels_utils.VpnTunnelHelper(holder) # TODO(b/38253176) Add test coverage if args.ike_networks is not None: raise DeprecatedArgumentException( '--ike-networks', 'It has been renamed to --local-traffic-selector.') vpn_tunnel_ref = _VPN_TUNNEL_ARG.ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(client)) args.target_vpn_gateway_region = vpn_tunnel_ref.region target_vpn_gateway_ref = _TARGET_VPN_GATEWAY_ARG.ResolveAsResource( args, holder.resources) # TODO(b/38253800) Add test coverage router_link = None if args.router is not None: args.router_region = vpn_tunnel_ref.region router_ref = _ROUTER_ARG.ResolveAsResource(args, holder.resources) router_link = router_ref.SelfLink() vpn_tunnel_to_insert = helper.GetVpnTunnelForInsert( name=vpn_tunnel_ref.Name(), description=args.description, ike_version=args.ike_version, peer_ip=args.peer_address, shared_secret=args.shared_secret, target_vpn_gateway=target_vpn_gateway_ref.SelfLink(), router=router_link, local_traffic_selector=args.local_traffic_selector, remote_traffic_selector=args.remote_traffic_selector) operation_ref = helper.Create(vpn_tunnel_ref, vpn_tunnel_to_insert) return helper.WaitForOperation(vpn_tunnel_ref, operation_ref, 'Creating VPN tunnel')
def Run(self, args): """Issues API requests to update a VPN Tunnel. Args: args: argparse.Namespace, The arguments received by this command. Returns: [protorpc.messages.Message], A list of responses returned by the compute API. """ holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) messages = holder.client.messages helper = vpn_tunnels_utils.VpnTunnelHelper(holder) vpn_tunnel_ref = _VPN_TUNNEL_ARG.ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(holder.client)) labels_diff = labels_util.Diff.FromUpdateArgs(args) if not labels_diff.MayHaveUpdates(): raise calliope_exceptions.RequiredArgumentException( 'LABELS', 'At least one of --update-labels or ' '--remove-labels must be specified.') vpn_tunnel = helper.Describe(vpn_tunnel_ref) labels_update = labels_diff.Apply( messages.RegionSetLabelsRequest.LabelsValue, vpn_tunnel.labels) if not labels_update.needs_update: return vpn_tunnel operation_ref = helper.SetLabels(vpn_tunnel_ref, vpn_tunnel.labelFingerprint, labels_update.labels) return helper.WaitForOperation( vpn_tunnel_ref, operation_ref, 'Updating labels of VPN tunnel [{0}]'.format( vpn_tunnel_ref.Name()))
def _Run(self, args, is_vpn_gateway_supported): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) client = holder.client helper = vpn_tunnels_utils.VpnTunnelHelper(holder) # TODO(b/38253176) Add test coverage if args.ike_networks is not None: raise DeprecatedArgumentException( '--ike-networks', 'It has been renamed to --local-traffic-selector.') vpn_tunnel_ref = _VPN_TUNNEL_ARG.ResolveAsResource( args, holder.resources, scope_lister=compute_flags.GetDefaultScopeLister(client)) router_link = None if args.IsSpecified('router'): args.router_region = vpn_tunnel_ref.region router_ref = _ROUTER_ARG.ResolveAsResource(args, holder.resources) router_link = router_ref.SelfLink() target_vpn_gateway = None vpn_gateway = None vpn_gateway_interface = None peer_external_gateway = None peer_external_gateway_interface = None peer_gcp_gateway = None if is_vpn_gateway_supported and args.IsSpecified('vpn_gateway'): self._ValidateHighAvailabilityVpnArgs(args) args.vpn_gateway_region = vpn_tunnel_ref.region vpn_gateway = self._VPN_GATEWAY_ARG.ResolveAsResource( args, holder.resources).SelfLink() vpn_gateway_interface = args.interface peer_external_gateway = self._GetPeerExternalGateway( holder.resources, args) peer_external_gateway_interface = args.peer_external_gateway_interface peer_gcp_gateway = self._GetPeerGcpGateway(holder.resources, args) else: self._ValidateClassicVpnArgs(args) args.target_vpn_gateway_region = vpn_tunnel_ref.region target_vpn_gateway = self._TARGET_VPN_GATEWAY_ARG.ResolveAsResource( args, holder.resources).SelfLink() if target_vpn_gateway: vpn_tunnel_to_insert = helper.GetClassicVpnTunnelForInsert( name=vpn_tunnel_ref.Name(), description=args.description, ike_version=args.ike_version, peer_ip=args.peer_address, shared_secret=args.shared_secret, target_vpn_gateway=target_vpn_gateway, router=router_link, local_traffic_selector=args.local_traffic_selector, remote_traffic_selector=args.remote_traffic_selector) else: vpn_tunnel_to_insert = helper.GetHighAvailabilityVpnTunnelForInsert( name=vpn_tunnel_ref.Name(), description=args.description, ike_version=args.ike_version, # TODO(b/127839209): remove peer_ip for HA tunnels once peer gateway # feature is enabled in Arcus. peer_ip=args.peer_address, shared_secret=args.shared_secret, vpn_gateway=vpn_gateway, vpn_gateway_interface=vpn_gateway_interface, router=router_link, peer_external_gateway=peer_external_gateway, peer_external_gateway_interface=peer_external_gateway_interface, peer_gcp_gateway=peer_gcp_gateway) operation_ref = helper.Create(vpn_tunnel_ref, vpn_tunnel_to_insert) return helper.WaitForOperation(vpn_tunnel_ref, operation_ref, 'Creating VPN tunnel')