Example #1
0
def _Modify(client, resources, args, url_map, url_map_ref, backend_service_arg,
            backend_bucket_arg):
    """Returns a modified URL map message."""
    replacement = _ModifyBase(client, args, url_map)

    # Creates PathRule objects from --path-rules, --backend-service-path-rules,
    # and --backend-bucket-path-rules.
    service_map = collections.defaultdict(set)
    bucket_map = collections.defaultdict(set)
    for path, service in six.iteritems(args.path_rules):
        service_map[service].add(path)
    for path, service in six.iteritems(args.backend_service_path_rules):
        service_map[service].add(path)
    for path, bucket in six.iteritems(args.backend_bucket_path_rules):
        bucket_map[bucket].add(path)
    path_rules = []
    for service, paths in sorted(six.iteritems(service_map)):
        path_rules.append(
            client.messages.PathRule(
                paths=sorted(paths),
                service=resources.Parse(
                    service,
                    params=_GetBackendServiceParamsForUrlMap(
                        url_map, url_map_ref),
                    collection=_GetBackendServiceCollectionForUrlMap(
                        url_map)).SelfLink()))
    for bucket, paths in sorted(six.iteritems(bucket_map)):
        path_rules.append(
            client.messages.PathRule(
                paths=sorted(paths),
                service=resources.Parse(
                    bucket,
                    params={
                        'project': properties.VALUES.core.project.GetOrFail
                    },
                    collection='compute.backendBuckets').SelfLink()))

    if args.default_service:
        default_backend_uri = url_maps_utils.ResolveUrlMapDefaultService(
            args, backend_service_arg, url_map_ref, resources).SelfLink()
    else:
        default_backend_uri = backend_bucket_arg.ResolveAsResource(
            args, resources).SelfLink()

    new_path_matcher = client.messages.PathMatcher(
        defaultService=default_backend_uri,
        description=args.description,
        name=args.path_matcher_name,
        pathRules=path_rules)

    replacement.pathMatchers.append(new_path_matcher)
    return replacement
Example #2
0
    def Modify(self, resources, args, url_map, url_map_ref):
        """Returns a modified URL map message."""
        replacement = encoding.CopyProtoMessage(url_map)

        if args.default_service:
            default_backend_uri = url_maps_utils.ResolveUrlMapDefaultService(
                args, self.BACKEND_SERVICE_ARG, url_map_ref,
                resources).SelfLink()
        else:
            default_backend_uri = self.BACKEND_BUCKET_ARG.ResolveAsResource(
                args, resources).SelfLink()

        replacement.defaultService = default_backend_uri

        return replacement
def _Modify(resources, args, url_map, url_map_ref, backend_bucket_arg,
            backend_service_arg):
    """Returns a modified URL map message."""
    replacement = encoding.CopyProtoMessage(url_map)

    if args.default_service:
        default_backend_uri = url_maps_utils.ResolveUrlMapDefaultService(
            args, backend_service_arg, url_map_ref, resources).SelfLink()
    else:
        default_backend_uri = backend_bucket_arg.ResolveAsResource(
            args, resources).SelfLink()

    replacement.defaultService = default_backend_uri

    return replacement
Example #4
0
def _Run(args, holder, backend_bucket_arg, backend_service_arg, url_map_arg):
  """Issues requests necessary to create a Url Map."""
  client = holder.client

  url_map_ref = url_map_arg.ResolveAsResource(
      args,
      holder.resources,
      default_scope=compute_scope.ScopeEnum.GLOBAL,
      scope_lister=compute_flags.GetDefaultScopeLister(client))

  if args.default_service:
    default_backend_uri = url_maps_utils.ResolveUrlMapDefaultService(
        args, backend_service_arg, url_map_ref, holder.resources).SelfLink()
  else:
    default_backend_uri = backend_bucket_arg.ResolveAsResource(
        args, holder.resources).SelfLink()

  if url_maps_utils.IsGlobalUrlMapRef(url_map_ref):
    return _MakeGlobalRequest(args, url_map_ref, default_backend_uri, client)
  elif url_maps_utils.IsRegionalUrlMapRef(url_map_ref):
    return _MakeRegionalRequest(args, url_map_ref, default_backend_uri, client)
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client

        url_map_ref = self.URL_MAP_ARG.ResolveAsResource(
            args,
            holder.resources,
            scope_lister=compute_flags.GetDefaultScopeLister(client))

        if args.default_service:
            default_backend_uri = url_maps_utils.ResolveUrlMapDefaultService(
                args, self.BACKEND_SERVICE_ARG, url_map_ref,
                holder.resources).SelfLink()
        else:
            default_backend_uri = self.BACKEND_BUCKET_ARG.ResolveAsResource(
                args, holder.resources).SelfLink()

        if url_maps_utils.IsGlobalUrlMapRef(url_map_ref):
            return self._MakeGlobalRequest(args, url_map_ref,
                                           default_backend_uri, client)
        elif url_maps_utils.IsRegionalUrlMapRef(url_map_ref):
            return self._MakeRegionalRequest(args, url_map_ref,
                                             default_backend_uri, client)