Skip to content

Commit

Permalink
feat: make versionClient a var
Browse files Browse the repository at this point in the history
This will allow us to override the value after the client has been
generated in an init function. For that code please see
googleapis/google-cloud-go#5687
  • Loading branch information
codyoss committed Feb 23, 2022
1 parent 1dac9ff commit db20377
Show file tree
Hide file tree
Showing 15 changed files with 66 additions and 17 deletions.
9 changes: 8 additions & 1 deletion internal/gengapic/doc_file.go
Expand Up @@ -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 {")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/gengrpc.go
Expand Up @@ -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("")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/genrest.go
Expand Up @@ -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("")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/testdata/custom_op_init.want
Expand Up @@ -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...))
}

Expand Down
4 changes: 2 additions & 2 deletions internal/gengapic/testdata/deprecated_client_init.want
Expand Up @@ -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...))
}

Expand Down Expand Up @@ -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...))
}

Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file.want
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file_alpha.want
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file_alpha_emptyservice.want
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file_beta.want
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file_beta_emptyservice.want
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion internal/gengapic/testdata/doc_file_emptyservice.want
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions internal/gengapic/testdata/empty_client_init.want
Expand Up @@ -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...))
}

Expand Down Expand Up @@ -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...))
}

Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/testdata/foo_client_init.want
Expand Up @@ -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...))
}

Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/testdata/foo_rest_client_init.want
Expand Up @@ -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...))
}

Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/testdata/lro_client_init.want
Expand Up @@ -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...))
}

Expand Down

0 comments on commit db20377

Please sign in to comment.