Skip to content

Commit

Permalink
Remove DefaultUniverseDomain option
Browse files Browse the repository at this point in the history
  • Loading branch information
quartzmo committed Apr 1, 2024
1 parent a8ce8e1 commit dbb73d8
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 66 deletions.
10 changes: 4 additions & 6 deletions auth/grpctransport/grpctransport.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,17 +143,14 @@ type InternalOptions struct {
// DefaultAudience specifies a default audience to be used as the audience
// field ("aud") for the JWT token authentication.
DefaultAudience string
// DefaultEndpointTemplate combined with DefaultUniverseDomain specifies
// DefaultEndpointTemplate combined with UniverseDomain specifies
// the default endpoint.
DefaultEndpointTemplate string
// DefaultMTLSEndpoint specifies the default mTLS endpoint.
DefaultMTLSEndpoint string
// DefaultScopes specifies the default OAuth2 scopes to be used for a
// service.
DefaultScopes []string
// DefaultUniverseDomain is the default value for universe domain.
// Universe domain is the default service domain for a given Cloud universe.
DefaultUniverseDomain string
}

// Dial returns a GRPCClientConnPool that can be used to communicate with a
Expand Down Expand Up @@ -186,8 +183,9 @@ func Dial(ctx context.Context, secure bool, opts *Options) (GRPCClientConnPool,
// return a GRPCClientConnPool if pool == 1 or else a pool of of them if >1
func dial(ctx context.Context, secure bool, opts *Options) (*grpc.ClientConn, error) {
tOpts := &transport.Options{
Endpoint: opts.Endpoint,
Client: opts.client(),
Endpoint: opts.Endpoint,
Client: opts.client(),
UniverseDomain: opts.UniverseDomain,
}
if io := opts.InternalOptions; io != nil {
tOpts.DefaultEndpointTemplate = io.DefaultEndpointTemplate
Expand Down
8 changes: 3 additions & 5 deletions auth/httptransport/httptransport.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,17 +123,14 @@ type InternalOptions struct {
// DefaultAudience specifies a default audience to be used as the audience
// field ("aud") for the JWT token authentication.
DefaultAudience string
// DefaultEndpointTemplate combined with DefaultUniverseDomain specifies
// the default endpoint.
// DefaultEndpointTemplate combined with UniverseDomain specifies the
// default endpoint.
DefaultEndpointTemplate string
// DefaultMTLSEndpoint specifies the default mTLS endpoint.
DefaultMTLSEndpoint string
// DefaultScopes specifies the default OAuth2 scopes to be used for a
// service.
DefaultScopes []string
// DefaultUniverseDomain is the default value for universe domain.
// Universe domain is the default service domain for a given Cloud universe.
DefaultUniverseDomain string
}

// AddAuthorizationMiddleware adds a middleware to the provided client's
Expand Down Expand Up @@ -168,6 +165,7 @@ func NewClient(opts *Options) (*http.Client, error) {
Endpoint: opts.Endpoint,
ClientCertProvider: opts.ClientCertProvider,
Client: opts.client(),
UniverseDomain: opts.UniverseDomain,
}
if io := opts.InternalOptions; io != nil {
tOpts.DefaultEndpointTemplate = io.DefaultEndpointTemplate
Expand Down
21 changes: 4 additions & 17 deletions auth/internal/transport/cba.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,38 +61,25 @@ type Options struct {
ClientCertProvider cert.Provider
Client *http.Client
UniverseDomain string
DefaultUniverseDomain string
}

// getDefaultUniverseDomain returns the default service domain for a given Cloud
// universe, as configured with internaloption.WithDefaultUniverseDomain.
// The default value is "googleapis.com".
func (o *Options) getDefaultUniverseDomain() string {
if o.DefaultUniverseDomain == "" {
return internal.DefaultUniverseDomain
}
return o.DefaultUniverseDomain
}

// getUniverseDomain returns the default service domain for a given Cloud
// universe, as configured with option.WithUniverseDomain.
// The default value is the value of getDefaultUniverseDomain, as configured
// with internaloption.WithDefaultUniverseDomain.
// universe.
func (o *Options) getUniverseDomain() string {
if o.UniverseDomain == "" {
return o.getDefaultUniverseDomain()
return internal.DefaultUniverseDomain
}
return o.UniverseDomain
}

// isUniverseDomainGDU returns true if the universe domain is the default Google
// universe.
func (o *Options) isUniverseDomainGDU() bool {
return o.getUniverseDomain() == o.getDefaultUniverseDomain()
return o.getUniverseDomain() == internal.DefaultUniverseDomain
}

// defaultEndpoint returns the DefaultEndpointTemplate merged with the
// Universe Domain if the DefaultEndpointTemplate is set, otherwise returns an
// universe domain if the DefaultEndpointTemplate is set, otherwise returns an
// empty string.
func (o *Options) defaultEndpoint() string {
if o.DefaultEndpointTemplate == "" {
Expand Down
62 changes: 24 additions & 38 deletions auth/internal/transport/cba_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import (
"os"
"testing"
"time"

"cloud.google.com/go/auth/internal"
)

const (
Expand Down Expand Up @@ -66,66 +64,55 @@ var (

func TestOptions_UniverseDomain(t *testing.T) {
testCases := []struct {
name string
opts *Options
wantDefaultUniverseDomain string
wantUniverseDomain string
wantDefaultEndpoint string
wantIsGDU bool
wantMergedEndpoint string
name string
opts *Options
wantUniverseDomain string
wantDefaultEndpoint string
wantIsGDU bool
wantMergedEndpoint string
}{
{
name: "empty",
opts: &Options{},
wantDefaultUniverseDomain: "googleapis.com",
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "",
wantIsGDU: true,
wantMergedEndpoint: "",
name: "empty",
opts: &Options{},
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "",
wantIsGDU: true,
wantMergedEndpoint: "",
},
{
name: "defaults",
opts: &Options{
DefaultEndpointTemplate: "https://test.UNIVERSE_DOMAIN/",
DefaultUniverseDomain: "googleapis.com",
},
wantDefaultUniverseDomain: "googleapis.com",
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "https://test.googleapis.com/",
wantIsGDU: true,
wantMergedEndpoint: "",
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "https://test.googleapis.com/",
wantIsGDU: true,
wantMergedEndpoint: "",
},
{
name: "non-GDU",
opts: &Options{
DefaultEndpointTemplate: "https://test.UNIVERSE_DOMAIN/",
DefaultUniverseDomain: "googleapis.com",
UniverseDomain: "example.com",
},
wantDefaultUniverseDomain: "googleapis.com",
wantUniverseDomain: "example.com",
wantDefaultEndpoint: "https://test.example.com/",
wantIsGDU: false,
wantMergedEndpoint: "",
wantUniverseDomain: "example.com",
wantDefaultEndpoint: "https://test.example.com/",
wantIsGDU: false,
wantMergedEndpoint: "",
},
{
name: "merged endpoint",
opts: &Options{
DefaultEndpointTemplate: "https://test.UNIVERSE_DOMAIN/bar/baz",
DefaultUniverseDomain: "googleapis.com",
Endpoint: "myhost:8000",
},
wantDefaultUniverseDomain: "googleapis.com",
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "https://test.googleapis.com/bar/baz",
wantIsGDU: true,
wantMergedEndpoint: "https://myhost:8000/bar/baz",
wantUniverseDomain: "googleapis.com",
wantDefaultEndpoint: "https://test.googleapis.com/bar/baz",
wantIsGDU: true,
wantMergedEndpoint: "https://myhost:8000/bar/baz",
},
}
for _, tc := range testCases {
if got := tc.opts.getDefaultUniverseDomain(); got != tc.wantDefaultUniverseDomain {
t.Errorf("%s: got %v, want %v", tc.name, got, tc.wantDefaultUniverseDomain)
}
if got := tc.opts.getUniverseDomain(); got != tc.wantUniverseDomain {
t.Errorf("%s: got %v, want %v", tc.name, got, tc.wantUniverseDomain)
}
Expand Down Expand Up @@ -597,7 +584,6 @@ func TestGetGRPCTransportCredsAndEndpoint_UniverseDomain(t *testing.T) {
opts: &Options{
DefaultEndpointTemplate: testEndpointTemplate,
DefaultMTLSEndpoint: testMTLSEndpoint,
DefaultUniverseDomain: internal.DefaultUniverseDomain,
UniverseDomain: testUniverseDomain,
},
wantEndpoint: testUniverseDomainEndpoint,
Expand Down

0 comments on commit dbb73d8

Please sign in to comment.