def GetRegionalTarget(client,
                      resources,
                      args,
                      forwarding_rule_ref=None,
                      include_alpha=False):
    """Return the forwarding target for a regionally scoped request."""
    _ValidateRegionalArgs(args, include_alpha)
    if forwarding_rule_ref:
        region_arg = forwarding_rule_ref.region
        project_arg = forwarding_rule_ref.project
    else:
        region_arg = args.region
        project_arg = None

    if args.target_pool:
        if not args.target_pool_region and region_arg:
            args.target_pool_region = region_arg
        target_ref = flags.TARGET_POOL_ARG.ResolveAsResource(
            args,
            resources,
            scope_lister=compute_flags.GetDefaultScopeLister(client))
        target_region = target_ref.region
    elif args.target_instance:
        target_ref = flags.TARGET_INSTANCE_ARG.ResolveAsResource(
            args,
            resources,
            scope_lister=_GetZonesInRegionLister(
                ['--target-instance-zone'], region_arg, client, project_arg
                or properties.VALUES.core.project.GetOrFail()))
        target_region = utils.ZoneNameToRegionName(target_ref.zone)
    elif getattr(args, 'target_vpn_gateway', None):
        if not args.target_vpn_gateway_region and region_arg:
            args.target_vpn_gateway_region = region_arg
        target_ref = flags.TARGET_VPN_GATEWAY_ARG.ResolveAsResource(
            args, resources)
        target_region = target_ref.region
    elif getattr(args, 'backend_service', None):
        if not args.backend_service_region and region_arg:
            args.backend_service_region = region_arg
        target_ref = flags.BACKEND_SERVICE_ARG.ResolveAsResource(
            args, resources)
        target_region = target_ref.region
    elif args.target_http_proxy:
        target_ref = flags.TargetHttpProxyArg(
            include_alpha=include_alpha).ResolveAsResource(args, resources)
        target_region = region_arg
    elif args.target_https_proxy:
        target_ref = flags.TARGET_HTTPS_PROXY_ARG.ResolveAsResource(
            args, resources)
        target_region = region_arg
    elif args.target_ssl_proxy:
        target_ref = flags.TARGET_SSL_PROXY_ARG.ResolveAsResource(
            args, resources)
        target_region = region_arg
    elif args.target_tcp_proxy:
        target_ref = flags.TARGET_TCP_PROXY_ARG.ResolveAsResource(
            args, resources)
        target_region = region_arg

    return target_ref, target_region
Exemple #2
0
def GetGlobalTarget(resources, args, include_alpha=False):
    """Return the forwarding target for a globally scoped request."""
    _ValidateGlobalArgs(args, include_alpha)
    if args.target_http_proxy:
        return flags.TargetHttpProxyArg().ResolveAsResource(args, resources)

    if args.target_https_proxy:
        return flags.TARGET_HTTPS_PROXY_ARG.ResolveAsResource(args, resources)
    if args.target_ssl_proxy:
        return flags.TARGET_SSL_PROXY_ARG.ResolveAsResource(args, resources)
    if getattr(args, 'target_tcp_proxy', None):
        return flags.TARGET_TCP_PROXY_ARG.ResolveAsResource(args, resources)
Exemple #3
0
def GetGlobalTarget(resources, args):
    """Return the forwarding target for a globally scoped request."""
    _ValidateGlobalArgs(args)
    if args.target_http_proxy:
        return flags.TargetHttpProxyArg().ResolveAsResource(
            args, resources, default_scope=compute_scope.ScopeEnum.GLOBAL)

    if args.target_https_proxy:
        return flags.TargetHttpsProxyArg().ResolveAsResource(
            args, resources, default_scope=compute_scope.ScopeEnum.GLOBAL)
    if args.target_ssl_proxy:
        return flags.TARGET_SSL_PROXY_ARG.ResolveAsResource(args, resources)
    if getattr(args, 'target_tcp_proxy', None):
        return flags.TARGET_TCP_PROXY_ARG.ResolveAsResource(args, resources)
Exemple #4
0
def GetRegionalTarget(client,
                      resources,
                      args,
                      forwarding_rule_ref=None,
                      include_l7_internal_load_balancing=False,
                      include_target_service_attachment=False):
    """Return the forwarding target for a regionally scoped request."""
    _ValidateRegionalArgs(args)
    if forwarding_rule_ref:
        region_arg = forwarding_rule_ref.region
        project_arg = forwarding_rule_ref.project
    else:
        region_arg = args.region
        project_arg = None

    if args.target_pool:
        if not args.target_pool_region and region_arg:
            args.target_pool_region = region_arg
        target_ref = flags.TARGET_POOL_ARG.ResolveAsResource(
            args,
            resources,
            scope_lister=compute_flags.GetDefaultScopeLister(client))
        target_region = target_ref.region
    elif args.target_instance:
        target_ref = flags.TARGET_INSTANCE_ARG.ResolveAsResource(
            args,
            resources,
            scope_lister=_GetZonesInRegionLister(
                ['--target-instance-zone'], region_arg, client, project_arg
                or properties.VALUES.core.project.GetOrFail()))
        target_region = utils.ZoneNameToRegionName(target_ref.zone)
    elif getattr(args, 'target_vpn_gateway', None):
        if not args.target_vpn_gateway_region and region_arg:
            args.target_vpn_gateway_region = region_arg
        target_ref = flags.TARGET_VPN_GATEWAY_ARG.ResolveAsResource(
            args, resources)
        target_region = target_ref.region
    elif getattr(args, 'backend_service', None):
        if not args.backend_service_region and region_arg:
            args.backend_service_region = region_arg
        target_ref = flags.BACKEND_SERVICE_ARG.ResolveAsResource(
            args, resources)
        target_region = target_ref.region
    elif args.target_http_proxy:
        target_ref = flags.TargetHttpProxyArg(
            include_l7_internal_load_balancing=
            include_l7_internal_load_balancing).ResolveAsResource(
                args, resources, default_scope=compute_scope.ScopeEnum.GLOBAL)
        target_region = region_arg
    elif args.target_https_proxy:
        target_ref = flags.TargetHttpsProxyArg(
            include_l7_internal_load_balancing=
            include_l7_internal_load_balancing).ResolveAsResource(
                args, resources, default_scope=compute_scope.ScopeEnum.GLOBAL)
        target_region = region_arg
    elif args.target_ssl_proxy:
        target_ref = flags.TARGET_SSL_PROXY_ARG.ResolveAsResource(
            args, resources)
        target_region = region_arg
    elif args.target_tcp_proxy:
        target_ref = flags.TARGET_TCP_PROXY_ARG.ResolveAsResource(
            args, resources)
        target_region = region_arg
    elif include_target_service_attachment and args.target_service_attachment:
        target_ref = flags.TargetServiceAttachmentArg().ResolveAsResource(
            args, resources)
        target_region = target_ref.region
        if target_region != region_arg or (
                args.target_service_attachment_region and region_arg
                and args.target_service_attachment_region != region_arg):
            raise exceptions.ArgumentError(
                'The region of the provided service attachment must equal the '
                '[--region] of the forwarding rule.')

    return target_ref, target_region