Beispiel #1
0
  def Run(self, args):
    """Issues the request to list all VPN Gateways."""
    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    helper = vpn_gateways_utils.VpnGatewayHelper(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)
Beispiel #2
0
 def Run(self, args):
   """Issues the request to describe a VPN Gateway."""
   holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
   helper = vpn_gateways_utils.VpnGatewayHelper(holder)
   ref = _VPN_GATEWAY_ARG.ResolveAsResource(
       args,
       holder.resources,
       scope_lister=compute_flags.GetDefaultScopeLister(holder.client))
   return helper.Describe(ref)
Beispiel #3
0
  def Run(self, args):
    """Issues the request to delete a VPN Gateway."""
    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    helper = vpn_gateways_utils.VpnGatewayHelper(holder)
    client = holder.client.apitools_client
    refs = _VPN_GATEWAY_ARG.ResolveAsResource(args, holder.resources)
    utils.PromptForDeletion(refs)

    operation_refs = [helper.Delete(ref) for ref in refs]
    wait_message = 'Deleting VPN {}'.format(
        ('Gateways' if (len(operation_refs) > 1) else 'Gateway'))
    operation_poller = DeleteBatchPoller(holder.client, client.vpnGateways)
    return waiter.WaitFor(operation_poller,
                          poller.OperationBatch(operation_refs), wait_message)
Beispiel #4
0
    def Run(self, args):
        """Issues the request to create a new VPN gateway."""
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        helper = vpn_gateways_utils.VpnGatewayHelper(holder)
        vpn_gateway_ref = _VPN_GATEWAY_ARG.ResolveAsResource(
            args, holder.resources)
        network_ref = _NETWORK_ARG.ResolveAsResource(args, holder.resources)

        vpn_gateway_to_insert = helper.GetVpnGatewayForInsert(
            name=vpn_gateway_ref.Name(),
            description=args.description,
            network=network_ref.SelfLink())
        operation_ref = helper.Create(vpn_gateway_ref, vpn_gateway_to_insert)
        return helper.WaitForOperation(vpn_gateway_ref, operation_ref,
                                       'Creating VPN Gateway')
 def _Run(self, args):
   """Issues the request to create a new VPN gateway."""
   holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
   helper = vpn_gateways_utils.VpnGatewayHelper(holder)
   vpn_gateway_ref = _VPN_GATEWAY_ARG.ResolveAsResource(args, holder.resources)
   network_ref = _NETWORK_ARG.ResolveAsResource(args, holder.resources)
   vpn_interfaces_with_interconnect_attachments = None
   if args.interconnect_attachments is not None:
     vpn_interfaces_with_interconnect_attachments = self._mapInterconnectAttachments(
         args, holder.resources, vpn_gateway_ref.region,
         vpn_gateway_ref.project)
   vpn_gateway_to_insert = helper.GetVpnGatewayForInsert(
       name=vpn_gateway_ref.Name(),
       description=args.description,
       network=network_ref.SelfLink(),
       vpn_interfaces_with_interconnect_attachments=vpn_interfaces_with_interconnect_attachments,
       stack_type=args.stack_type)
   operation_ref = helper.Create(vpn_gateway_ref, vpn_gateway_to_insert)
   return helper.WaitForOperation(vpn_gateway_ref, operation_ref,
                                  'Creating VPN Gateway')
Beispiel #6
0
    def Run(self, args):
        """Issues API requests to update a VPN Gateway.

    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_gateways_utils.VpnGatewayHelper(holder)
        vpn_gateway_ref = _VPN_GATEWAY_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_gateway = helper.Describe(vpn_gateway_ref)
        labels_update = labels_diff.Apply(
            messages.RegionSetLabelsRequest.LabelsValue, vpn_gateway.labels)

        if not labels_update.needs_update:
            return vpn_gateway

        operation_ref = helper.SetLabels(vpn_gateway_ref,
                                         vpn_gateway.labelFingerprint,
                                         labels_update.labels)
        return helper.WaitForOperation(
            vpn_gateway_ref, operation_ref,
            'Updating labels of VPN gateway [{0}]'.format(
                vpn_gateway_ref.Name()))