diff --git a/.changelog/7644.txt b/.changelog/7644.txt new file mode 100644 index 00000000000..14a5f44d351 --- /dev/null +++ b/.changelog/7644.txt @@ -0,0 +1,3 @@ +```release-note:bug +provider: fixed an issue where the `USER_PROJECT_OVERRIDE` environment variable was not being read +``` diff --git a/google/config.go b/google/config.go index 27f69cdd4f6..249debf3519 100644 --- a/google/config.go +++ b/google/config.go @@ -486,54 +486,62 @@ var DefaultClientScopes = []string{ "https://www.googleapis.com/auth/userinfo.email", } -func HandleSDKDefaults(d *schema.ResourceData) { +func HandleSDKDefaults(d *schema.ResourceData) error { if d.Get("impersonate_service_account") == "" { - d.Set("impersonate_service_account", MultiEnvSearch([]string{ + d.Set("impersonate_service_account", MultiEnvDefault([]string{ "GOOGLE_IMPERSONATE_SERVICE_ACCOUNT", - })) + }, nil)) } if d.Get("project") == "" { - d.Set("project", MultiEnvSearch([]string{ + d.Set("project", MultiEnvDefault([]string{ "GOOGLE_PROJECT", "GOOGLE_CLOUD_PROJECT", "GCLOUD_PROJECT", "CLOUDSDK_CORE_PROJECT", - })) + }, nil)) } if d.Get("billing_project") == "" { - d.Set("billing_project", MultiEnvSearch([]string{ + d.Set("billing_project", MultiEnvDefault([]string{ "GOOGLE_BILLING_PROJECT", - })) + }, nil)) } if d.Get("region") == "" { - d.Set("region", MultiEnvSearch([]string{ + d.Set("region", MultiEnvDefault([]string{ "GOOGLE_REGION", "GCLOUD_REGION", "CLOUDSDK_COMPUTE_REGION", - })) + }, nil)) } if d.Get("zone") == "" { - d.Set("zone", MultiEnvSearch([]string{ + d.Set("zone", MultiEnvDefault([]string{ "GOOGLE_ZONE", "GCLOUD_ZONE", "CLOUDSDK_COMPUTE_ZONE", - })) + }, nil)) } - if d.Get("user_project_override") == "" { - d.Set("user_project_override", MultiEnvSearch([]string{ + if _, ok := d.GetOkExists("user_project_override"); !ok { + override := MultiEnvDefault([]string{ "USER_PROJECT_OVERRIDE", - })) + }, nil) + + if override != nil { + b, err := strconv.ParseBool(override.(string)) + if err != nil { + return err + } + d.Set("user_project_override", b) + } } if d.Get("request_reason") == "" { - d.Set("request_reason", MultiEnvSearch([]string{ + d.Set("request_reason", MultiEnvDefault([]string{ "CLOUDSDK_CORE_REQUEST_REASON", - })) + }, nil)) } // Generated Products @@ -1033,6 +1041,8 @@ func HandleSDKDefaults(d *schema.ResourceData) { "GOOGLE_CONTAINERAZURE_CUSTOM_ENDPOINT", }, DefaultBasePaths[ContainerAzureBasePathKey])) } + + return nil } func (c *Config) LoadAndValidate(ctx context.Context) error { diff --git a/google/provider.go b/google/provider.go index e8b7dd903eb..65b72e02b0a 100644 --- a/google/provider.go +++ b/google/provider.go @@ -1321,7 +1321,10 @@ func ResourceMapWithErrors() (map[string]*schema.Resource, error) { } func providerConfigure(ctx context.Context, d *schema.ResourceData, p *schema.Provider) (interface{}, diag.Diagnostics) { - HandleSDKDefaults(d) + err := HandleSDKDefaults(d) + if err != nil { + return nil, diag.FromErr(err) + } HandleDCLCustomEndpointDefaults(d) config := Config{ diff --git a/google/provider_dcl_endpoints.go b/google/provider_dcl_endpoints.go index d0252391e6c..bd484d798f2 100644 --- a/google/provider_dcl_endpoints.go +++ b/google/provider_dcl_endpoints.go @@ -112,54 +112,54 @@ func ConfigureDCLProvider(provider *schema.Provider) { func HandleDCLCustomEndpointDefaults(d *schema.ResourceData) { if d.Get(ApikeysEndpointEntryKey) == "" { - d.Set(ApikeysEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(ApikeysEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_APIKEYS_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(AssuredWorkloadsEndpointEntryKey) == "" { - d.Set(AssuredWorkloadsEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(AssuredWorkloadsEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_ASSURED_WORKLOADS_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(CloudBuildWorkerPoolEndpointEntryKey) == "" { - d.Set(CloudBuildWorkerPoolEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(CloudBuildWorkerPoolEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_CLOUD_BUILD_WORKER_POOL_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(ClouddeployEndpointEntryKey) == "" { - d.Set(ClouddeployEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(ClouddeployEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_CLOUDDEPLOY_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(CloudResourceManagerEndpointEntryKey) == "" { - d.Set(CloudResourceManagerEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(CloudResourceManagerEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_CLOUD_RESOURCE_MANAGER_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(EventarcEndpointEntryKey) == "" { - d.Set(EventarcEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(EventarcEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_EVENTARC_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(FirebaserulesEndpointEntryKey) == "" { - d.Set(FirebaserulesEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(FirebaserulesEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_FIREBASERULES_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(NetworkConnectivityEndpointEntryKey) == "" { - d.Set(NetworkConnectivityEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(NetworkConnectivityEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_NETWORK_CONNECTIVITY_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(OrgPolicyEndpointEntryKey) == "" { - d.Set(OrgPolicyEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(OrgPolicyEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_ORG_POLICY_CUSTOM_ENDPOINT", - })) + }, "")) } if d.Get(RecaptchaEnterpriseEndpointEntryKey) == "" { - d.Set(RecaptchaEnterpriseEndpointEntryKey, MultiEnvSearch([]string{ + d.Set(RecaptchaEnterpriseEndpointEntryKey, MultiEnvDefault([]string{ "GOOGLE_RECAPTCHA_ENTERPRISE_CUSTOM_ENDPOINT", - })) + }, "")) } }