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
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)
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)
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