in src/go/configgenerator/filtergen/service_control.go [93:147]
func NewServiceControlFilterGensFromOPConfig(serviceConfig *confpb.Service, opts options.ConfigGeneratorOptions, params ServiceControlOPFactoryParams) ([]FilterGenerator, error) {
if opts.SkipServiceControlFilter {
glog.Infof("Not adding service control (v1) filter gen because the feature is disabled by option.")
return nil, nil
}
if serviceConfig.GetControl().GetEnvironment() == "" {
glog.Infof("Not adding service control (v1) filter gen because the service control URL is not set in OP config.")
return nil, nil
}
grpcSupportRequired, err := IsGRPCSupportRequiredForOPConfig(serviceConfig, opts)
if err != nil {
return nil, err
}
scURL, err := ParseServiceControlURLFromOPConfig(serviceConfig, opts)
if err != nil {
return nil, err
}
requirements, err := MakeMethodRequirementsFromOPConfig(serviceConfig, opts)
if err != nil {
return nil, err
}
return []FilterGenerator{
&ServiceControlGenerator{
ServiceName: serviceConfig.GetName(),
ServiceConfigID: serviceConfig.GetId(),
ProducerProjectID: serviceConfig.GetProducerProjectId(),
ServiceConfig: serviceConfig,
GRPCSupportRequired: grpcSupportRequired,
ServiceControlURI: scURL,
CallCredentials: opts.ServiceControlCredentials,
AccessToken: helpers.NewFilterAccessTokenConfigerFromOPConfig(opts),
DisableTracing: opts.CommonOptions.TracingOptions.DisableTracing,
TracingProjectID: opts.CommonOptions.TracingOptions.ProjectId,
HttpRequestTimeout: opts.HttpRequestTimeout,
GeneratedHeaderPrefix: opts.GeneratedHeaderPrefix,
IAMURL: opts.IamURL,
DependencyErrorBehavior: opts.DependencyErrorBehavior,
ClientIPFromForwardedHeader: opts.ClientIPFromForwardedHeader,
LogRequestHeaders: opts.LogRequestHeaders,
LogResponseHeaders: opts.LogResponseHeaders,
LogJwtPayloads: opts.LogJwtPayloads,
MinStreamReportIntervalMs: opts.MinStreamReportIntervalMs,
ComputePlatformOverride: opts.ComputePlatformOverride,
MethodRequirements: requirements,
CallingConfig: MakeSCCallingConfigFromOPConfig(opts),
GCPAttributes: params.GCPAttributes,
EnableApiKeyUidReporting: opts.ServiceControlEnableApiKeyUidReporting,
},
}, nil
}