in src/go/configgenerator/filtergen/util.go [127:157]
func IsGRPCSupportRequiredForOPConfig(serviceConfig *servicepb.Service, opts options.ConfigGeneratorOptions) (bool, error) {
if isLocalBackendGRPC, err := util.IsBackendGRPC(opts.BackendAddress); err != nil {
return false, fmt.Errorf("fail to check local backend address: %v", err)
} else if isLocalBackendGRPC {
return true, nil
}
if opts.EnableBackendAddressOverride {
return false, nil
}
for _, rule := range serviceConfig.GetBackend().GetRules() {
if util.ShouldSkipOPDiscoveryAPI(rule.GetSelector(), opts.AllowDiscoveryAPIs) {
glog.Warningf("Skip backend rule %q because discovery API is not supported.", rule.GetSelector())
continue
}
if rule.GetAddress() == "" {
glog.Infof("Skip backend rule %q because it does not have dynamic routing address.", rule.GetSelector())
return false, nil
}
if isRemoteBackendGRPC, err := util.IsBackendGRPC(rule.GetAddress()); err != nil {
return false, fmt.Errorf("fail to check remote backend address for selector %q: %v", rule.GetSelector(), err)
} else if isRemoteBackendGRPC {
return true, nil
}
}
return false, nil
}