From db20377d52dee111b55146958ec7e1fc00388729 Mon Sep 17 00:00:00 2001 From: Cody Oss Date: Wed, 23 Feb 2022 09:54:37 -0700 Subject: [PATCH] feat: make versionClient a var This will allow us to override the value after the client has been generated in an init function. For that code please see https://github.com/googleapis/google-cloud-go/pull/5687 --- internal/gengapic/doc_file.go | 9 ++++++++- internal/gengapic/gengrpc.go | 2 +- internal/gengapic/genrest.go | 2 +- internal/gengapic/testdata/custom_op_init.want | 2 +- internal/gengapic/testdata/deprecated_client_init.want | 4 ++-- internal/gengapic/testdata/doc_file.want | 9 ++++++++- internal/gengapic/testdata/doc_file_alpha.want | 9 ++++++++- .../gengapic/testdata/doc_file_alpha_emptyservice.want | 9 ++++++++- internal/gengapic/testdata/doc_file_beta.want | 9 ++++++++- .../gengapic/testdata/doc_file_beta_emptyservice.want | 9 ++++++++- internal/gengapic/testdata/doc_file_emptyservice.want | 9 ++++++++- internal/gengapic/testdata/empty_client_init.want | 4 ++-- internal/gengapic/testdata/foo_client_init.want | 2 +- internal/gengapic/testdata/foo_rest_client_init.want | 2 +- internal/gengapic/testdata/lro_client_init.want | 2 +- 15 files changed, 66 insertions(+), 17 deletions(-) diff --git a/internal/gengapic/doc_file.go b/internal/gengapic/doc_file.go index 78af33c3..85690093 100644 --- a/internal/gengapic/doc_file.go +++ b/internal/gengapic/doc_file.go @@ -131,7 +131,14 @@ func (g *generator) genDocFile(year int, scopes []string, serv *descriptor.Servi p("type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error)") p("") - p("const versionClient = %q", "UNKNOWN") + p("var versionClient string") + p("") + p("func getVersionClient() string {") + p(" if versionClient == \"\" {") + p(" return %q", "UNKNOWN") + p(" }") + p(" return versionClient") + p("}") p("") p("func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {") diff --git a/internal/gengapic/gengrpc.go b/internal/gengapic/gengrpc.go index 2d1c63b8..39f07232 100644 --- a/internal/gengapic/gengrpc.go +++ b/internal/gengapic/gengrpc.go @@ -393,7 +393,7 @@ func (g *generator) grpcClientUtilities(serv *descriptor.ServiceDescriptorProto, p("// use by Google-written clients.") p("func (c *%s) setGoogleClientInfo(keyval ...string) {", lowcaseServName) p(` kv := append([]string{"gl-go", versionGo()}, keyval...)`) - p(` kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)`) + p(` kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)`) p(` c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))`) p("}") p("") diff --git a/internal/gengapic/genrest.go b/internal/gengapic/genrest.go index 905402ad..f9d53dba 100644 --- a/internal/gengapic/genrest.go +++ b/internal/gengapic/genrest.go @@ -160,7 +160,7 @@ func (g *generator) restClientUtilities(serv *descriptor.ServiceDescriptorProto, p("// use by Google-written clients.") p("func (c *%s) setGoogleClientInfo(keyval ...string) {", lowcaseServName) p(` kv := append([]string{"gl-go", versionGo()}, keyval...)`) - p(` kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN")`) + p(` kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN")`) p(` c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))`) p("}") p("") diff --git a/internal/gengapic/testdata/custom_op_init.want b/internal/gengapic/testdata/custom_op_init.want index a8893099..22d74b3d 100644 --- a/internal/gengapic/testdata/custom_op_init.want +++ b/internal/gengapic/testdata/custom_op_init.want @@ -95,7 +95,7 @@ func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, e // use by Google-written clients. func (c *restClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN") + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } diff --git a/internal/gengapic/testdata/deprecated_client_init.want b/internal/gengapic/testdata/deprecated_client_init.want index 8b7264b2..ab67ed7c 100644 --- a/internal/gengapic/testdata/deprecated_client_init.want +++ b/internal/gengapic/testdata/deprecated_client_init.want @@ -121,7 +121,7 @@ func (c *gRPCClient) Connection() *grpc.ClientConn { // use by Google-written clients. func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } @@ -169,7 +169,7 @@ func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, e // use by Google-written clients. func (c *restClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN") + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } diff --git a/internal/gengapic/testdata/doc_file.want b/internal/gengapic/testdata/doc_file.want index 705d9eb7..1272cbb8 100644 --- a/internal/gengapic/testdata/doc_file.want +++ b/internal/gengapic/testdata/doc_file.want @@ -88,7 +88,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/doc_file_alpha.want b/internal/gengapic/testdata/doc_file_alpha.want index 5c61fa43..c6b4bba0 100644 --- a/internal/gengapic/testdata/doc_file_alpha.want +++ b/internal/gengapic/testdata/doc_file_alpha.want @@ -90,7 +90,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/doc_file_alpha_emptyservice.want b/internal/gengapic/testdata/doc_file_alpha_emptyservice.want index 879efe1c..42c53ba8 100644 --- a/internal/gengapic/testdata/doc_file_alpha_emptyservice.want +++ b/internal/gengapic/testdata/doc_file_alpha_emptyservice.want @@ -66,7 +66,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/doc_file_beta.want b/internal/gengapic/testdata/doc_file_beta.want index 4d602dcb..808723ff 100644 --- a/internal/gengapic/testdata/doc_file_beta.want +++ b/internal/gengapic/testdata/doc_file_beta.want @@ -90,7 +90,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/doc_file_beta_emptyservice.want b/internal/gengapic/testdata/doc_file_beta_emptyservice.want index dd26d8ce..187c8240 100644 --- a/internal/gengapic/testdata/doc_file_beta_emptyservice.want +++ b/internal/gengapic/testdata/doc_file_beta_emptyservice.want @@ -66,7 +66,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/doc_file_emptyservice.want b/internal/gengapic/testdata/doc_file_emptyservice.want index 585f6744..6ec98521 100644 --- a/internal/gengapic/testdata/doc_file_emptyservice.want +++ b/internal/gengapic/testdata/doc_file_emptyservice.want @@ -64,7 +64,14 @@ import ( type clientHookParams struct{} type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) -const versionClient = "UNKNOWN" +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { out, _ := metadata.FromOutgoingContext(ctx) diff --git a/internal/gengapic/testdata/empty_client_init.want b/internal/gengapic/testdata/empty_client_init.want index 9b5c9388..be9eb166 100644 --- a/internal/gengapic/testdata/empty_client_init.want +++ b/internal/gengapic/testdata/empty_client_init.want @@ -117,7 +117,7 @@ func (c *gRPCClient) Connection() *grpc.ClientConn { // use by Google-written clients. func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } @@ -163,7 +163,7 @@ func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, e // use by Google-written clients. func (c *restClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN") + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } diff --git a/internal/gengapic/testdata/foo_client_init.want b/internal/gengapic/testdata/foo_client_init.want index 52edb8ee..513f99b9 100644 --- a/internal/gengapic/testdata/foo_client_init.want +++ b/internal/gengapic/testdata/foo_client_init.want @@ -148,7 +148,7 @@ func (c *fooGRPCClient) Connection() *grpc.ClientConn { // use by Google-written clients. func (c *fooGRPCClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } diff --git a/internal/gengapic/testdata/foo_rest_client_init.want b/internal/gengapic/testdata/foo_rest_client_init.want index 5fbb4164..21a46a5c 100644 --- a/internal/gengapic/testdata/foo_rest_client_init.want +++ b/internal/gengapic/testdata/foo_rest_client_init.want @@ -107,7 +107,7 @@ func NewFooRESTClient(ctx context.Context, opts ...option.ClientOption) (*FooCli // use by Google-written clients. func (c *fooRESTClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "rest", "UNKNOWN") + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) } diff --git a/internal/gengapic/testdata/lro_client_init.want b/internal/gengapic/testdata/lro_client_init.want index 7b8e11e7..3a2134b5 100644 --- a/internal/gengapic/testdata/lro_client_init.want +++ b/internal/gengapic/testdata/lro_client_init.want @@ -173,7 +173,7 @@ func (c *fooGRPCClient) Connection() *grpc.ClientConn { // use by Google-written clients. func (c *fooGRPCClient) setGoogleClientInfo(keyval ...string) { kv := append([]string{"gl-go", versionGo()}, keyval...) - kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) }