diff --git a/templates/terraform/custom_check_destroy/storage_hmac_key.go.erb b/templates/terraform/custom_check_destroy/storage_hmac_key.go.erb index 1677f4c44b7d..826d24772a55 100644 --- a/templates/terraform/custom_check_destroy/storage_hmac_key.go.erb +++ b/templates/terraform/custom_check_destroy/storage_hmac_key.go.erb @@ -5,7 +5,7 @@ if err != nil { return err } -res, err := sendRequest(config, "GET", "", url, nil) +res, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return nil } diff --git a/templates/terraform/custom_delete/active_directory_domain_trust.go.erb b/templates/terraform/custom_delete/active_directory_domain_trust.go.erb index 7cc0b867703e..0bacbeccb950 100644 --- a/templates/terraform/custom_delete/active_directory_domain_trust.go.erb +++ b/templates/terraform/custom_delete/active_directory_domain_trust.go.erb @@ -55,13 +55,13 @@ log.Printf("[DEBUG] Deleting DomainTrust %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + res, err := sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DomainTrust") } err = activeDirectoryOperationWaitTime( - config, res, project, "Deleting DomainTrust", + config, res, project, "Deleting DomainTrust", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { diff --git a/templates/terraform/custom_delete/appversion_delete.go.erb b/templates/terraform/custom_delete/appversion_delete.go.erb index 9ebd832b4a3d..b94147861ed8 100644 --- a/templates/terraform/custom_delete/appversion_delete.go.erb +++ b/templates/terraform/custom_delete/appversion_delete.go.erb @@ -23,12 +23,12 @@ if d.Get("delete_service_on_destroy") == true { } var obj map[string]interface{} log.Printf("[DEBUG] Deleting Service %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return handleNotFoundError(err, d, "Service") } err = appEngineOperationWaitTime( - config, res, project, "Deleting Service", + config, res, project, "Deleting Service", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { @@ -43,12 +43,12 @@ if d.Get("delete_service_on_destroy") == true { } var obj map[string]interface{} log.Printf("[DEBUG] Deleting AppVersion %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return handleNotFoundError(err, d, "AppVersion") } err = appEngineOperationWaitTime( - config, res, project, "Deleting AppVersion", + config, res, project, "Deleting AppVersion", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { diff --git a/templates/terraform/custom_delete/clear_folder_access_approval_settings.go.erb b/templates/terraform/custom_delete/clear_folder_access_approval_settings.go.erb index 3eda85d289f4..ec376af022fe 100644 --- a/templates/terraform/custom_delete/clear_folder_access_approval_settings.go.erb +++ b/templates/terraform/custom_delete/clear_folder_access_approval_settings.go.erb @@ -20,7 +20,7 @@ if err != nil { return err } -res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err := sendRequestWithTimeout(config, "PATCH", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error emptying FolderSettings %q: %s", d.Id(), err) diff --git a/templates/terraform/custom_delete/clear_organization_access_approval_settings.go.erb b/templates/terraform/custom_delete/clear_organization_access_approval_settings.go.erb index 4fac6c988f3e..7f0299d6c869 100644 --- a/templates/terraform/custom_delete/clear_organization_access_approval_settings.go.erb +++ b/templates/terraform/custom_delete/clear_organization_access_approval_settings.go.erb @@ -20,7 +20,7 @@ if err != nil { return err } -res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err := sendRequestWithTimeout(config, "PATCH", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error emptying OrganizationSettings %q: %s", d.Id(), err) diff --git a/templates/terraform/custom_delete/clear_project_access_approval_settings.go.erb b/templates/terraform/custom_delete/clear_project_access_approval_settings.go.erb index 767428b57382..d20a2a99002d 100644 --- a/templates/terraform/custom_delete/clear_project_access_approval_settings.go.erb +++ b/templates/terraform/custom_delete/clear_project_access_approval_settings.go.erb @@ -20,7 +20,7 @@ if err != nil { return err } -res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err := sendRequestWithTimeout(config, "PATCH", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error emptying ProjectSettings %q: %s", d.Id(), err) diff --git a/templates/terraform/custom_delete/per_instance_config.go.erb b/templates/terraform/custom_delete/per_instance_config.go.erb index 7e843fcf7ec9..a26ec6399e2d 100644 --- a/templates/terraform/custom_delete/per_instance_config.go.erb +++ b/templates/terraform/custom_delete/per_instance_config.go.erb @@ -21,13 +21,13 @@ } log.Printf("[DEBUG] Deleting PerInstanceConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + res, err := sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "PerInstanceConfig") } err = computeOperationWaitTime( - config, res, project, "Deleting PerInstanceConfig", + config, res, project, "Deleting PerInstanceConfig", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { @@ -52,14 +52,14 @@ } log.Printf("[DEBUG] Applying updates to PerInstanceConfig %q: %#v", d.Id(), obj) - res, err = sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err = sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error deleting PerInstanceConfig %q: %s", d.Id(), err) } err = computeOperationWaitTime( - config, res, project, "Applying update to PerInstanceConfig", + config, res, project, "Applying update to PerInstanceConfig", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error deleting PerInstanceConfig %q: %s", d.Id(), err) diff --git a/templates/terraform/custom_delete/region_per_instance_config.go.erb b/templates/terraform/custom_delete/region_per_instance_config.go.erb index 0db1e30feac9..bb9c09db776b 100644 --- a/templates/terraform/custom_delete/region_per_instance_config.go.erb +++ b/templates/terraform/custom_delete/region_per_instance_config.go.erb @@ -21,13 +21,13 @@ } log.Printf("[DEBUG] Deleting RegionPerInstanceConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + res, err := sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionPerInstanceConfig") } err = computeOperationWaitTime( - config, res, project, "Deleting RegionPerInstanceConfig", + config, res, project, "Deleting RegionPerInstanceConfig", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { @@ -52,14 +52,14 @@ } log.Printf("[DEBUG] Applying updates to PerInstanceConfig %q: %#v", d.Id(), obj) - res, err = sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err = sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating PerInstanceConfig %q: %s", d.Id(), err) } err = computeOperationWaitTime( - config, res, project, "Applying update to PerInstanceConfig", + config, res, project, "Applying update to PerInstanceConfig", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/custom_delete/replace_all_access_levels_empty_list.go.erb b/templates/terraform/custom_delete/replace_all_access_levels_empty_list.go.erb index 203d9ecaa262..25c5e2f8c1b0 100644 --- a/templates/terraform/custom_delete/replace_all_access_levels_empty_list.go.erb +++ b/templates/terraform/custom_delete/replace_all_access_levels_empty_list.go.erb @@ -7,7 +7,7 @@ if err != nil { } log.Printf("[DEBUG] Deleting AccessLevels %q: %#v", d.Id(), obj) -res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err := sendRequestWithTimeout(config, "POST", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error deleting AccessLevels %q: %s", d.Id(), err) @@ -16,7 +16,7 @@ if err != nil { } err = accessContextManagerOperationWaitTime( - config, res, "Updating AccessLevels", + config, res, "Updating AccessLevels", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/custom_delete/replace_all_service_perimeters_empty_list.go.erb b/templates/terraform/custom_delete/replace_all_service_perimeters_empty_list.go.erb index 9e88d3046880..452afec19731 100644 --- a/templates/terraform/custom_delete/replace_all_service_perimeters_empty_list.go.erb +++ b/templates/terraform/custom_delete/replace_all_service_perimeters_empty_list.go.erb @@ -7,7 +7,7 @@ if err != nil { } log.Printf("[DEBUG] Deleting servicePerimeters %q: %#v", d.Id(), obj) -res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err := sendRequestWithTimeout(config, "POST", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error deleting ServicePerimeters %q: %s", d.Id(), err) @@ -16,7 +16,7 @@ if err != nil { } err = accessContextManagerOperationWaitTime( - config, res, "Updating ServicePerimeters", + config, res, "Updating ServicePerimeters", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/custom_expand/secret_version_enable.go.erb b/templates/terraform/custom_expand/secret_version_enable.go.erb index 5d057920a0c3..69e6d92a96b0 100644 --- a/templates/terraform/custom_expand/secret_version_enable.go.erb +++ b/templates/terraform/custom_expand/secret_version_enable.go.erb @@ -32,7 +32,12 @@ func expand<%= prefix -%><%= titlelize_property(property) -%>(v interface{}, d T parts := strings.Split(name, "/") project := parts[1] - _, err = sendRequest(config, "POST", project, url, nil) + userAgent, err := generateUserAgentString(d.(*schema.ResourceData), config.userAgent) + if err != nil { + return nil, err + } + + _, err = sendRequest(config, "POST", project, url, userAgent, nil) if err != nil { return nil, err } diff --git a/templates/terraform/custom_flatten/secret_version_access.go.erb b/templates/terraform/custom_flatten/secret_version_access.go.erb index 437ee5709878..b44e10a8e1b8 100644 --- a/templates/terraform/custom_flatten/secret_version_access.go.erb +++ b/templates/terraform/custom_flatten/secret_version_access.go.erb @@ -29,7 +29,12 @@ func flatten<%= prefix -%><%= titlelize_property(property) -%>(v interface{}, d parts := strings.Split(d.Get("name").(string), "/") project := parts[1] - accessRes, err := sendRequest(config, "GET", project, url, nil) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + + accessRes, err := sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return err } diff --git a/templates/terraform/examples/base_configs/test_file.go.erb b/templates/terraform/examples/base_configs/test_file.go.erb index 9035fd7ae263..9d464db8d675 100644 --- a/templates/terraform/examples/base_configs/test_file.go.erb +++ b/templates/terraform/examples/base_configs/test_file.go.erb @@ -114,7 +114,7 @@ func testAccCheck<%= resource_name -%>DestroyProducer(t *testing.T) func(s *terr return err } - _, err = sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", "", url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + _, err = sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", "", url, config.userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err == nil { return fmt.Errorf("<%= resource_name -%> still exists at %s", url) } diff --git a/templates/terraform/iam_policy.go.erb b/templates/terraform/iam_policy.go.erb index 2525828d40bc..844dcd85473e 100644 --- a/templates/terraform/iam_policy.go.erb +++ b/templates/terraform/iam_policy.go.erb @@ -202,7 +202,12 @@ func (u *<%= resource_name -%>IamUpdater) GetResourceIamPolicy() (*cloudresource } <% end -%> - policy, err := sendRequest(u.Config, "<%= object.iam_policy.fetch_iam_policy_verb.to_s.upcase -%>", <% if resource_params.include?('project') %>project<% else %>""<% end %>, url, obj<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + userAgent, err := generateUserAgentString(u.d, u.Config.userAgent) + if err != nil { + return nil, err + } + + policy, err := sendRequest(u.Config, "<%= object.iam_policy.fetch_iam_policy_verb.to_s.upcase -%>", <% if resource_params.include?('project') %>project<% else %>""<% end %>, url, userAgent, obj<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return nil, errwrap.Wrapf(fmt.Sprintf("Error retrieving IAM policy for %s: {{err}}", u.DescribeResource()), err) } @@ -245,7 +250,12 @@ func (u *<%= resource_name -%>IamUpdater) SetResourceIamPolicy(policy *cloudreso } <% end -%> - _, err = sendRequestWithTimeout(u.Config, "<%= object.iam_policy.set_iam_policy_verb.to_s.upcase -%>", <% if resource_params.include?('project') %>project<% else %>""<% end %>, url, obj, u.d.Timeout(schema.TimeoutCreate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + userAgent, err := generateUserAgentString(u.d, u.Config.userAgent) + if err != nil { + return err + } + + _, err = sendRequestWithTimeout(u.Config, "<%= object.iam_policy.set_iam_policy_verb.to_s.upcase -%>", <% if resource_params.include?('project') %>project<% else %>""<% end %>, url, userAgent, obj, u.d.Timeout(schema.TimeoutCreate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return errwrap.Wrapf(fmt.Sprintf("Error setting IAM policy for %s: {{err}}", u.DescribeResource()), err) } diff --git a/templates/terraform/nested_query.go.erb b/templates/terraform/nested_query.go.erb index 2a989c64a70b..fb9ac5151a7c 100644 --- a/templates/terraform/nested_query.go.erb +++ b/templates/terraform/nested_query.go.erb @@ -239,7 +239,13 @@ func resource<%= resource_name -%>ListForPatch(d *schema.ResourceData, meta inte return nil, err } <% end -%> - res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", <% if has_project %>project<% else %>""<% end %>, url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return nil, err + } + + res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", <% if has_project %>project<% else %>""<% end %>, url, userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return nil, err } diff --git a/templates/terraform/operation.go.erb b/templates/terraform/operation.go.erb index c5c92d51fdb7..ba1bc48aba10 100644 --- a/templates/terraform/operation.go.erb +++ b/templates/terraform/operation.go.erb @@ -10,7 +10,8 @@ import ( ) type <%= product_name -%>OperationWaiter struct { - Config *Config + Config *Config + UserAgent string <% if has_project -%> Project string <% end -%> @@ -23,16 +24,18 @@ func (w *<%= product_name -%>OperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("<%= [object.__product.base_url, async.operation.base_url].flatten.join.gsub('{{op_id}}', '%s') -%>", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", <% if has_project %>w.Project<% else %>""<% end %>, url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + + return sendRequest(w.Config, "GET", <% if has_project %>w.Project<% else %>""<% end %>, url, w.UserAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) } -func create<%= product_name %>Waiter(config *Config, op map[string]interface{}, <% if has_project -%> project, <% end -%> activity string) (*<%=product_name%>OperationWaiter, error) { +func create<%= product_name %>Waiter(config *Config, op map[string]interface{}, <% if has_project -%> project, <% end -%> activity, userAgent string) (*<%=product_name%>OperationWaiter, error) { if val, ok := op["name"]; !ok || val == "" { // This was a synchronous call - there is no operation to wait for. return nil, nil } w := &<%= product_name -%>OperationWaiter{ - Config: config, + Config: config, + UserAgent: userAgent, <% if has_project -%> Project: project, <% end -%> @@ -49,8 +52,8 @@ func create<%= product_name %>Waiter(config *Config, op map[string]interface{}, Might as well just nolint it so we can pass the linter checks. -%> // nolint: deadcode,unused -func <%= product_name.camelize(:lower) -%>OperationWaitTimeWithResponse(config *Config, op map[string]interface{}, response *map[string]interface{},<% if has_project -%> project,<% end -%> activity string, timeout time.Duration) error { - w, err := create<%= product_name %>Waiter(config, op, <% if has_project -%> project, <%end-%> activity) +func <%= product_name.camelize(:lower) -%>OperationWaitTimeWithResponse(config *Config, op map[string]interface{}, response *map[string]interface{},<% if has_project -%> project,<% end -%> activity, userAgent string, timeout time.Duration) error { + w, err := create<%= product_name %>Waiter(config, op, <% if has_project -%> project, <%end-%> activity, userAgent) if err != nil || w == nil { // If w is nil, the op was synchronous. return err @@ -62,8 +65,8 @@ func <%= product_name.camelize(:lower) -%>OperationWaitTimeWithResponse(config * } <% end -%> -func <%= product_name.camelize(:lower) -%>OperationWaitTime(config *Config, op map[string]interface{}, <% if has_project -%> project,<% end -%> activity string, timeout time.Duration) error { - w, err := create<%= product_name %>Waiter(config, op, <% if has_project -%> project, <%end-%> activity) +func <%= product_name.camelize(:lower) -%>OperationWaitTime(config *Config, op map[string]interface{}, <% if has_project -%> project,<% end -%> activity, userAgent string, timeout time.Duration) error { + w, err := create<%= product_name %>Waiter(config, op, <% if has_project -%> project, <%end-%> activity, userAgent) if err != nil || w == nil { // If w is nil, the op was synchronous. return err diff --git a/templates/terraform/post_create/compute_backend_service_security_policy.go.erb b/templates/terraform/post_create/compute_backend_service_security_policy.go.erb index a34cf43d8639..844f7de4de0f 100644 --- a/templates/terraform/post_create/compute_backend_service_security_policy.go.erb +++ b/templates/terraform/post_create/compute_backend_service_security_policy.go.erb @@ -12,7 +12,7 @@ if o, n := d.GetChange("security_policy"); o.(string) != n.(string) { return errwrap.Wrapf("Error setting Backend Service security policy: {{err}}", err) } // This uses the create timeout for simplicity, though technically this code appears in both create and update - waitErr := computeOperationWaitTime(config, op, project, "Setting Backend Service Security Policy", d.Timeout(schema.TimeoutCreate)) + waitErr := computeOperationWaitTime(config, op, project, "Setting Backend Service Security Policy", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { return waitErr } diff --git a/templates/terraform/post_create/compute_network_delete_default_route.erb b/templates/terraform/post_create/compute_network_delete_default_route.erb index b38aa55d0ccc..28c237d62c5b 100644 --- a/templates/terraform/post_create/compute_network_delete_default_route.erb +++ b/templates/terraform/post_create/compute_network_delete_default_route.erb @@ -19,7 +19,7 @@ if d.Get("delete_default_routes_on_create").(bool) { if err != nil { return fmt.Errorf("Error deleting route: %s", err) } - err = computeOperationWaitTime(config, op, project, "Deleting Route", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Deleting Route", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } diff --git a/templates/terraform/post_create/global_network_endpoint_group.go.erb b/templates/terraform/post_create/global_network_endpoint_group.go.erb index 1469845ef724..100ca4a0cde1 100644 --- a/templates/terraform/post_create/global_network_endpoint_group.go.erb +++ b/templates/terraform/post_create/global_network_endpoint_group.go.erb @@ -19,7 +19,7 @@ if err != nil { } log.Printf("[DEBUG] Creating new GlobalNetworkEndpoint: %#v", wrappedReq) -_, err = sendRequestWithTimeout(config, "POST", project, attachUrl, wrappedReq, d.Timeout(schema.TimeoutCreate)) +_, err = sendRequestWithTimeout(config, "POST", project, attachUrl, userAgent, wrappedReq, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalNetworkEndpoint: %s", err) } \ No newline at end of file diff --git a/templates/terraform/post_create/labels.erb b/templates/terraform/post_create/labels.erb index 030fd48fd2c4..7616dc339c00 100644 --- a/templates/terraform/post_create/labels.erb +++ b/templates/terraform/post_create/labels.erb @@ -20,13 +20,13 @@ if v, ok := d.GetOkExists("labels"); !isEmptyValue(reflect.ValueOf(v)) && (ok || if err != nil { return err } - res, err = sendRequest(config, "POST", project, url, obj<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err = sendRequest(config, "POST", project, url, userAgent, obj<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return fmt.Errorf("Error adding labels to <%= resource_name -%> %q: %s", d.Id(), err) } err = computeOperationWaitTime( - config, res, project, "Updating <%= resource_name -%> Labels", + config, res, project, "Updating <%= resource_name -%> Labels", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/post_create/org_security_policy_association.go.erb b/templates/terraform/post_create/org_security_policy_association.go.erb index 8e32895dc513..30b9d779a069 100644 --- a/templates/terraform/post_create/org_security_policy_association.go.erb +++ b/templates/terraform/post_create/org_security_policy_association.go.erb @@ -6,7 +6,7 @@ if err != nil { return err } -policyRes, err := sendRequest(config, "GET", "", url, nil) +policyRes, err := sendRequest(config, "GET", "", url, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeOrganizationSecurityPolicy %q", d.Get("policy_id"))) } diff --git a/templates/terraform/post_create/org_security_policy_rule.go.erb b/templates/terraform/post_create/org_security_policy_rule.go.erb index cdf5e14a3f43..6cb520a850f8 100644 --- a/templates/terraform/post_create/org_security_policy_rule.go.erb +++ b/templates/terraform/post_create/org_security_policy_rule.go.erb @@ -6,7 +6,7 @@ if err != nil { return err } -policyRes, err := sendRequest(config, "GET", "", url, nil) +policyRes, err := sendRequest(config, "GET", "", url, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeOrganizationSecurityPolicy %q", d.Get("policy_id"))) } diff --git a/templates/terraform/post_update/compute_per_instance_config.go.erb b/templates/terraform/post_update/compute_per_instance_config.go.erb index 2d641b55ea40..025d5b303291 100644 --- a/templates/terraform/post_update/compute_per_instance_config.go.erb +++ b/templates/terraform/post_update/compute_per_instance_config.go.erb @@ -25,14 +25,14 @@ if err != nil { } log.Printf("[DEBUG] Applying updates to PerInstanceConfig %q: %#v", d.Id(), obj) -res, err = sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err = sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating PerInstanceConfig %q: %s", d.Id(), err) } err = computeOperationWaitTime( - config, res, project, "Applying update to PerInstanceConfig", + config, res, project, "Applying update to PerInstanceConfig", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/post_update/compute_region_per_instance_config.go.erb b/templates/terraform/post_update/compute_region_per_instance_config.go.erb index 75870d1a5568..c66b31769a77 100644 --- a/templates/terraform/post_update/compute_region_per_instance_config.go.erb +++ b/templates/terraform/post_update/compute_region_per_instance_config.go.erb @@ -25,14 +25,14 @@ if err != nil { } log.Printf("[DEBUG] Applying updates to PerInstanceConfig %q: %#v", d.Id(), obj) -res, err = sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) +res, err = sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating PerInstanceConfig %q: %s", d.Id(), err) } err = computeOperationWaitTime( - config, res, project, "Applying update to PerInstanceConfig", + config, res, project, "Applying update to PerInstanceConfig", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { diff --git a/templates/terraform/pre_delete/detach_disk.erb b/templates/terraform/pre_delete/detach_disk.erb index 2f5a4e923801..23ff74476539 100644 --- a/templates/terraform/pre_delete/detach_disk.erb +++ b/templates/terraform/pre_delete/detach_disk.erb @@ -1,4 +1,4 @@ -readRes, err := sendRequest(config, "GET", project, url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) +readRes, err := sendRequest(config, "GET", project, url, userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDisk %q", d.Id())) } @@ -42,7 +42,7 @@ if v, ok := readRes["users"].([]interface{}); ok { call.zone, call.instance, err.Error()) } err = computeOperationWaitTime(config, op, call.project, - fmt.Sprintf("Detaching disk from %s/%s/%s", call.project, call.zone, call.instance), d.Timeout(schema.TimeoutDelete)) + fmt.Sprintf("Detaching disk from %s/%s/%s", call.project, call.zone, call.instance), userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { if opErr, ok := err.(ComputeOperationError); ok && len(opErr.Errors) == 1 && opErr.Errors[0].Code == "RESOURCE_NOT_FOUND" { log.Printf("[WARN] instance %q was deleted while awaiting detach", call.instance) diff --git a/templates/terraform/pre_delete/detach_network.erb b/templates/terraform/pre_delete/detach_network.erb index 881f7173f8e2..d013e4512725 100644 --- a/templates/terraform/pre_delete/detach_network.erb +++ b/templates/terraform/pre_delete/detach_network.erb @@ -8,7 +8,7 @@ if d.Get("networks.#").(int) > 0 { return err } - _, err = sendRequestWithTimeout(config, "PATCH", project, url, patched, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, userAgent, patched, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return fmt.Errorf("Error updating Policy %q: %s", d.Id(), err) } diff --git a/templates/terraform/pre_delete/storage_hmac_key.go.erb b/templates/terraform/pre_delete/storage_hmac_key.go.erb index a8a299a116f5..8a4b34aba0db 100644 --- a/templates/terraform/pre_delete/storage_hmac_key.go.erb +++ b/templates/terraform/pre_delete/storage_hmac_key.go.erb @@ -3,7 +3,7 @@ if err != nil { return err } -getRes, err := sendRequest(config, "GET", project, getUrl, nil) +getRes, err := sendRequest(config, "GET", project, getUrl, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageHmacKey %q", d.Id())) } @@ -18,7 +18,7 @@ if v := getRes["state"]; v == "ACTIVE" { } log.Printf("[DEBUG] Deactivating HmacKey %q: %#v", d.Id(), getRes) - _, err = sendRequestWithTimeout(config, "PUT", project, updateUrl, getRes, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", project, updateUrl, userAgent, getRes, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error deactivating HmacKey %q: %s", d.Id(), err) } diff --git a/templates/terraform/resource.erb b/templates/terraform/resource.erb index 64704d509262..8720c2c9bfbc 100644 --- a/templates/terraform/resource.erb +++ b/templates/terraform/resource.erb @@ -145,19 +145,15 @@ func resource<%= resource_name -%><%= prop.name.camelize(:upper) -%>SetStyleDiff <% end -%> func resource<%= resource_name -%>Create(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) - if err != nil { - return err - } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) - <% if object.custom_code.custom_create -%> <%= lines(compile(pwd + '/' + object.custom_code.custom_create)) -%> <% else -%> + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + obj := make(map[string]interface{}) <% object.settable_properties.each do |prop| -%> <% schemaPrefix = prop.flatten_object ? "nil" : "d.Get( \"#{prop.name.underscore}\" )" -%> @@ -232,7 +228,7 @@ func resource<%= resource_name -%>Create(d *schema.ResourceData, meta interface{ } <%= lines(compile(pwd + '/' + object.custom_code.pre_create)) if object.custom_code.pre_create -%> - res, err := sendRequestWithTimeout(config, "<%= object.create_verb.to_s.upcase -%>", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "<%= object.create_verb.to_s.upcase -%>", billingProject, url, userAgent, obj, d.Timeout(schema.TimeoutCreate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { <% if object.custom_code.post_create_failure && object.async.nil? # Only add if not handled by async error handling -%> resource<%= resource_name -%>PostCreateFailure(d, meta) @@ -278,7 +274,7 @@ func resource<%= resource_name -%>Create(d *schema.ResourceData, meta interface{ // identity fields and d.Id() before read var opRes map[string]interface{} err = <%= client_name_camel -%>OperationWaitTimeWithResponse( - config, res, &opRes, <% if has_project -%> project, <% end -%> "Creating <%= object.name -%>", + config, res, &opRes, <% if has_project -%> project, <% end -%> "Creating <%= object.name -%>", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { <% if object.custom_code.post_create_failure -%> @@ -328,7 +324,7 @@ func resource<%= resource_name -%>Create(d *schema.ResourceData, meta interface{ <% else -%> err = <%= client_name_camel -%>OperationWaitTime( - config, res, <% if has_project -%> project, <% end -%> "Creating <%= object.name -%>", + config, res, <% if has_project -%> project, <% end -%> "Creating <%= object.name -%>", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { @@ -386,7 +382,12 @@ func resource<%= resource_name -%>PollRead(d *schema.ResourceData, meta interfac billingProject = bp } - res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return nil, err + } + + res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, url, userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return res, err } @@ -426,16 +427,12 @@ func resource<%= resource_name -%>PollRead(d *schema.ResourceData, meta interfac <% end -%> func resource<%= resource_name -%>Read(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) - url, err := replaceVars(d, config, "<%= "{{#{object.__product.name}BasePath}}#{object.self_link_uri}" -%>") if err != nil { return err @@ -462,7 +459,7 @@ func resource<%= resource_name -%>Read(d *schema.ResourceData, meta interface{}) billingProject = bp } - res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, url, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, url, userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { <% if object.read_error_transform -%> return handleNotFoundError(<%= object.read_error_transform %>(err), d, fmt.Sprintf("<%= resource_name -%> %q", d.Id())) @@ -560,15 +557,12 @@ func resource<%= resource_name -%>Read(d *schema.ResourceData, meta interface{}) <% if updatable?(object, object.root_properties) -%> func resource<%= resource_name -%>Update(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { - return err + return err } - - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent billingProject := "" @@ -606,7 +600,7 @@ if <%= props.map { |prop| "d.HasChange(\"#{prop.name.underscore}\")" }.join ' || billingProject = bp } - getRes, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, getUrl, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + getRes, err := sendRequest(config, "<%= object.read_verb.to_s.upcase -%>", billingProject, getUrl, userAgent, nil<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("<%= resource_name -%> %q", d.Id())) } @@ -681,7 +675,7 @@ if <%= props.map { |prop| "d.HasChange(\"#{prop.name.underscore}\")" }.join ' || billingProject = bp } - res, err := sendRequestWithTimeout(config, "<%= key[:update_verb] -%>", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "<%= key[:update_verb] -%>", billingProject, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return fmt.Errorf("Error updating <%= object.name -%> %q: %s", d.Id(), err) } else { @@ -691,7 +685,7 @@ if <%= props.map { |prop| "d.HasChange(\"#{prop.name.underscore}\")" }.join ' || <% if object.async&.allow?('update') -%> <% if object.async.is_a? Api::OpAsync-%> err = <%= client_name_camel -%>OperationWaitTime( - config, res, <% if has_project -%> project, <% end -%> "Updating <%= object.name -%>", + config, res, <% if has_project -%> project, <% end -%> "Updating <%= object.name -%>", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err @@ -778,7 +772,7 @@ if <%= props.map { |prop| "d.HasChange(\"#{prop.name.underscore}\")" }.join ' || billingProject = bp } - res, err := sendRequestWithTimeout(config, "<%= object.update_verb -%>", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "<%= object.update_verb -%>", billingProject, url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return fmt.Errorf("Error updating <%= object.name -%> %q: %s", d.Id(), err) @@ -789,7 +783,7 @@ if <%= props.map { |prop| "d.HasChange(\"#{prop.name.underscore}\")" }.join ' || <% if object.async&.allow?('update') -%> <% if object.async.is_a? Api::OpAsync -%> err = <%= client_name_camel -%>OperationWaitTime( - config, res, <% if has_project -%> project, <% end -%> "Updating <%= object.name -%>", + config, res, <% if has_project -%> project, <% end -%> "Updating <%= object.name -%>", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { @@ -822,15 +816,12 @@ func resource<%= resource_name -%>Delete(d *schema.ResourceData, meta interface{ return nil <% else -%> - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { - return err + return err } - - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent <% if object.custom_code.custom_delete -%> <%= lines(compile(pwd + '/' + object.custom_code.custom_delete)) -%> @@ -890,7 +881,7 @@ func resource<%= resource_name -%>Delete(d *schema.ResourceData, meta interface{ billingProject = bp } - res, err := sendRequestWithTimeout(config, "<%= object.delete_verb.to_s.upcase -%>", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) + res, err := sendRequestWithTimeout(config, "<%= object.delete_verb.to_s.upcase -%>", billingProject, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)<%= object.error_retry_predicates ? ", " + object.error_retry_predicates.join(',') : "" -%>) if err != nil { return handleNotFoundError(err, d, "<%= object.name -%>") } @@ -907,7 +898,7 @@ func resource<%= resource_name -%>Delete(d *schema.ResourceData, meta interface{ } <% else -%> err = <%= client_name_camel -%>OperationWaitTime( - config, res, <% if has_project -%> project, <% end -%> "Deleting <%= object.name -%>", + config, res, <% if has_project -%> project, <% end -%> "Deleting <%= object.name -%>", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { diff --git a/templates/terraform/sweeper_file.go.erb b/templates/terraform/sweeper_file.go.erb index ef8a22fa9077..b0edc134cca4 100644 --- a/templates/terraform/sweeper_file.go.erb +++ b/templates/terraform/sweeper_file.go.erb @@ -68,7 +68,7 @@ func testSweep<%= sweeper_name -%>(region string) error { return nil } - res, err := sendRequest(config, "GET", config.Project, listUrl, nil) + res, err := sendRequest(config, "GET", config.Project, listUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error in response from request %s: %s", listUrl, err) return nil @@ -146,7 +146,7 @@ func testSweep<%= sweeper_name -%>(region string) error { deleteUrl = deleteUrl+name // Don't wait on operations as we may have a lot to delete - _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, nil) + _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error deleting for url %s : %s", deleteUrl, err) } else { diff --git a/third_party/terraform/data_sources/data_source_cloud_identity_group_memberships.go.erb b/third_party/terraform/data_sources/data_source_cloud_identity_group_memberships.go.erb index e53910a6024a..8f9ee9632ced 100644 --- a/third_party/terraform/data_sources/data_source_cloud_identity_group_memberships.go.erb +++ b/third_party/terraform/data_sources/data_source_cloud_identity_group_memberships.go.erb @@ -38,14 +38,12 @@ func dataSourceGoogleCloudIdentityGroupMemberships() *schema.Resource { } func dataSourceGoogleCloudIdentityGroupMembershipsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCloudIdentity.UserAgent = fmt.Sprintf("%s %s", config.clientCloudIdentity.UserAgent, m.ModuleName) + config.clientCloudIdentity.UserAgent = userAgent result := []map[string]interface{}{} err = config.clientCloudIdentity.Groups.Memberships.List(d.Get("group").(string)).View("FULL").Pages(config.context, func(resp *cloudidentity.ListMembershipsResponse) error { diff --git a/third_party/terraform/data_sources/data_source_cloud_identity_groups.go.erb b/third_party/terraform/data_sources/data_source_cloud_identity_groups.go.erb index 88e5796e0a01..3119db9ee7fd 100644 --- a/third_party/terraform/data_sources/data_source_cloud_identity_groups.go.erb +++ b/third_party/terraform/data_sources/data_source_cloud_identity_groups.go.erb @@ -41,14 +41,12 @@ groups or customers/{customer_id} for Google Groups.`, } func dataSourceGoogleCloudIdentityGroupsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCloudIdentity.UserAgent = fmt.Sprintf("%s %s", config.clientCloudIdentity.UserAgent, m.ModuleName) + config.clientCloudIdentity.UserAgent = userAgent result := []map[string]interface{}{} err = config.clientCloudIdentity.Groups.List().Parent(d.Get("parent").(string)).View("FULL").Pages(config.context, func(resp *cloudidentity.ListGroupsResponse) error { diff --git a/third_party/terraform/data_sources/data_source_dns_keys.go b/third_party/terraform/data_sources/data_source_dns_keys.go index 0e7a2b803b68..710f23faa5eb 100644 --- a/third_party/terraform/data_sources/data_source_dns_keys.go +++ b/third_party/terraform/data_sources/data_source_dns_keys.go @@ -189,14 +189,12 @@ func flattenDigests(dnsKeyDigests []*dns.DnsKeyDigest) []map[string]interface{} } func dataSourceDNSKeysRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDns.UserAgent = fmt.Sprintf("%s %s", config.clientDns.UserAgent, m.ModuleName) + config.clientDns.UserAgent = userAgent fv, err := parseProjectFieldValue("managedZones", d.Get("managed_zone").(string), "project", d, config, false) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_dns_managed_zone.go b/third_party/terraform/data_sources/data_source_dns_managed_zone.go index 6d34577126b9..37a8e140dde2 100644 --- a/third_party/terraform/data_sources/data_source_dns_managed_zone.go +++ b/third_party/terraform/data_sources/data_source_dns_managed_zone.go @@ -49,14 +49,12 @@ func dataSourceDnsManagedZone() *schema.Resource { } func dataSourceDnsManagedZoneRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDns.UserAgent = fmt.Sprintf("%s %s", config.clientDns.UserAgent, m.ModuleName) + config.clientDns.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_active_folder.go b/third_party/terraform/data_sources/data_source_google_active_folder.go index 4a3d63688ee8..f66d42603411 100644 --- a/third_party/terraform/data_sources/data_source_google_active_folder.go +++ b/third_party/terraform/data_sources/data_source_google_active_folder.go @@ -30,14 +30,12 @@ func dataSourceGoogleActiveFolder() *schema.Resource { } func dataSourceGoogleActiveFolderRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManagerV2Beta1.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManagerV2Beta1.UserAgent, m.ModuleName) + config.clientResourceManagerV2Beta1.UserAgent = userAgent parent := d.Get("parent").(string) displayName := d.Get("display_name").(string) diff --git a/third_party/terraform/data_sources/data_source_google_bigquery_default_service_account.go b/third_party/terraform/data_sources/data_source_google_bigquery_default_service_account.go index decb7a2c10ef..900c0300ed89 100644 --- a/third_party/terraform/data_sources/data_source_google_bigquery_default_service_account.go +++ b/third_party/terraform/data_sources/data_source_google_bigquery_default_service_account.go @@ -23,14 +23,12 @@ func dataSourceGoogleBigqueryDefaultServiceAccount() *schema.Resource { } func dataSourceGoogleBigqueryDefaultServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientBigQuery.UserAgent = fmt.Sprintf("%s %s", config.clientBigQuery.UserAgent, m.ModuleName) + config.clientBigQuery.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_billing_account.go b/third_party/terraform/data_sources/data_source_google_billing_account.go index 2c29eb4741c4..b7972d311b1d 100644 --- a/third_party/terraform/data_sources/data_source_google_billing_account.go +++ b/third_party/terraform/data_sources/data_source_google_billing_account.go @@ -45,14 +45,12 @@ func dataSourceGoogleBillingAccount() *schema.Resource { } func dataSourceBillingAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientBilling.UserAgent = fmt.Sprintf("%s %s", config.clientBilling.UserAgent, m.ModuleName) + config.clientBilling.UserAgent = userAgent open, openOk := d.GetOkExists("open") diff --git a/third_party/terraform/data_sources/data_source_google_client_openid_userinfo.go b/third_party/terraform/data_sources/data_source_google_client_openid_userinfo.go index 19829bfb713d..0d99f25ae40e 100644 --- a/third_party/terraform/data_sources/data_source_google_client_openid_userinfo.go +++ b/third_party/terraform/data_sources/data_source_google_client_openid_userinfo.go @@ -20,16 +20,13 @@ func dataSourceGoogleClientOpenIDUserinfo() *schema.Resource { } func dataSourceGoogleClientOpenIDUserinfoRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) - email, err := GetCurrentUserEmail(config) + email, err := GetCurrentUserEmail(config, userAgent) if err != nil { return err } diff --git a/third_party/terraform/data_sources/data_source_google_composer_image_versions.go b/third_party/terraform/data_sources/data_source_google_composer_image_versions.go index 0db6d77a0b74..0f21df6567b3 100644 --- a/third_party/terraform/data_sources/data_source_google_composer_image_versions.go +++ b/third_party/terraform/data_sources/data_source_google_composer_image_versions.go @@ -44,14 +44,11 @@ func dataSourceGoogleComposerImageVersions() *schema.Resource { } func dataSourceGoogleComposerImageVersionsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) project, err := getProject(d, config) if err != nil { @@ -68,7 +65,7 @@ func dataSourceGoogleComposerImageVersionsRead(d *schema.ResourceData, meta inte return err } - versions, err := paginatedListRequest(project, url, config, flattenGoogleComposerImageVersions) + versions, err := paginatedListRequest(project, url, userAgent, config, flattenGoogleComposerImageVersions) if err != nil { return fmt.Errorf("Error listing Composer image versions: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_google_compute_address.go b/third_party/terraform/data_sources/data_source_google_compute_address.go index 8df194d4a970..9df2e3caa1b7 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_address.go +++ b/third_party/terraform/data_sources/data_source_google_compute_address.go @@ -54,14 +54,12 @@ func dataSourceGoogleComputeAddress() *schema.Resource { } func dataSourceGoogleComputeAddressRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_default_service_account.go b/third_party/terraform/data_sources/data_source_google_compute_default_service_account.go index 70eea9fd5a57..baa0ef6920a9 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_default_service_account.go +++ b/third_party/terraform/data_sources/data_source_google_compute_default_service_account.go @@ -35,14 +35,12 @@ func dataSourceGoogleComputeDefaultServiceAccount() *schema.Resource { } func dataSourceGoogleComputeDefaultServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_forwarding_rule.go b/third_party/terraform/data_sources/data_source_google_compute_forwarding_rule.go index 3cfaeaa813fb..1f78662ec030 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_forwarding_rule.go +++ b/third_party/terraform/data_sources/data_source_google_compute_forwarding_rule.go @@ -88,14 +88,12 @@ func dataSourceGoogleComputeForwardingRule() *schema.Resource { } func dataSourceGoogleComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_global_address.go b/third_party/terraform/data_sources/data_source_google_compute_global_address.go index 69d7ed88e405..74659e526783 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_global_address.go +++ b/third_party/terraform/data_sources/data_source_google_compute_global_address.go @@ -41,14 +41,12 @@ func dataSourceGoogleComputeGlobalAddress() *schema.Resource { } func dataSourceGoogleComputeGlobalAddressRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_image.go b/third_party/terraform/data_sources/data_source_google_compute_image.go index 28983c218afd..0b16a82d87e1 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_image.go +++ b/third_party/terraform/data_sources/data_source_google_compute_image.go @@ -105,14 +105,12 @@ func dataSourceGoogleComputeImage() *schema.Resource { } func dataSourceGoogleComputeImageRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_instance.go b/third_party/terraform/data_sources/data_source_google_compute_instance.go index c1e6b6f0a9f6..08a0b9a7be38 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_instance.go +++ b/third_party/terraform/data_sources/data_source_google_compute_instance.go @@ -20,14 +20,12 @@ func dataSourceGoogleComputeInstance() *schema.Resource { } func dataSourceGoogleComputeInstanceRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, zone, name, err := GetZonalResourcePropertiesFromSelfLinkOrSchema(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_instance_serial_port.go b/third_party/terraform/data_sources/data_source_google_compute_instance_serial_port.go index 37fbb1f2657c..49a18bc91b86 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_instance_serial_port.go +++ b/third_party/terraform/data_sources/data_source_google_compute_instance_serial_port.go @@ -36,14 +36,12 @@ func dataSourceGoogleComputeInstanceSerialPort() *schema.Resource { } func computeInstanceSerialPortRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_network.go b/third_party/terraform/data_sources/data_source_google_compute_network.go index 74298ced57c5..797e199f83b7 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_network.go +++ b/third_party/terraform/data_sources/data_source_google_compute_network.go @@ -46,14 +46,12 @@ func dataSourceGoogleComputeNetwork() *schema.Resource { } func dataSourceGoogleComputeNetworkRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_node_types.go b/third_party/terraform/data_sources/data_source_google_compute_node_types.go index 5625e13f5167..85ad277efed8 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_node_types.go +++ b/third_party/terraform/data_sources/data_source_google_compute_node_types.go @@ -34,14 +34,12 @@ func dataSourceGoogleComputeNodeTypes() *schema.Resource { } func dataSourceGoogleComputeNodeTypesRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_region_instance_group.go b/third_party/terraform/data_sources/data_source_google_compute_region_instance_group.go index eeb6fe5788b3..d30e0e3b5fc7 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_region_instance_group.go +++ b/third_party/terraform/data_sources/data_source_google_compute_region_instance_group.go @@ -86,14 +86,12 @@ func dataSourceGoogleComputeRegionInstanceGroup() *schema.Resource { } func dataSourceComputeRegionInstanceGroupRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, region, name, err := GetRegionalResourcePropertiesFromSelfLinkOrSchema(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_regions.go b/third_party/terraform/data_sources/data_source_google_compute_regions.go index ad62e9e08fc1..7158f96635d9 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_regions.go +++ b/third_party/terraform/data_sources/data_source_google_compute_regions.go @@ -35,14 +35,12 @@ func dataSourceGoogleComputeRegions() *schema.Resource { } func dataSourceGoogleComputeRegionsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_resource_policy.go.erb b/third_party/terraform/data_sources/data_source_google_compute_resource_policy.go.erb index 4da72a957b8b..fb74f790b4b3 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_resource_policy.go.erb +++ b/third_party/terraform/data_sources/data_source_google_compute_resource_policy.go.erb @@ -42,14 +42,12 @@ func dataSourceGoogleComputeResourcePolicy() *schema.Resource { } func dataSourceGoogleComputeResourcePolicyRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_subnetwork.go b/third_party/terraform/data_sources/data_source_google_compute_subnetwork.go index e63c05bf45fb..f4a8e9f30d34 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_subnetwork.go +++ b/third_party/terraform/data_sources/data_source_google_compute_subnetwork.go @@ -73,14 +73,12 @@ func dataSourceGoogleComputeSubnetwork() *schema.Resource { } func dataSourceGoogleComputeSubnetworkRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, region, name, err := GetRegionalResourcePropertiesFromSelfLinkOrSchema(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_vpn_gateway.go b/third_party/terraform/data_sources/data_source_google_compute_vpn_gateway.go index 7d4f92b17231..7eccb0e59ecb 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_vpn_gateway.go +++ b/third_party/terraform/data_sources/data_source_google_compute_vpn_gateway.go @@ -48,14 +48,12 @@ func dataSourceGoogleComputeVpnGateway() *schema.Resource { } func dataSourceGoogleComputeVpnGatewayRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_compute_zones.go b/third_party/terraform/data_sources/data_source_google_compute_zones.go index ecf97d9cf787..3abc1475b459 100644 --- a/third_party/terraform/data_sources/data_source_google_compute_zones.go +++ b/third_party/terraform/data_sources/data_source_google_compute_zones.go @@ -40,14 +40,12 @@ func dataSourceGoogleComputeZones() *schema.Resource { } func dataSourceGoogleComputeZonesRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent region := config.Region if r, ok := d.GetOk("region"); ok { diff --git a/third_party/terraform/data_sources/data_source_google_container_engine_versions.go.erb b/third_party/terraform/data_sources/data_source_google_container_engine_versions.go.erb index db7743840d03..ae3ca0a03443 100644 --- a/third_party/terraform/data_sources/data_source_google_container_engine_versions.go.erb +++ b/third_party/terraform/data_sources/data_source_google_container_engine_versions.go.erb @@ -56,14 +56,12 @@ func dataSourceGoogleContainerEngineVersions() *schema.Resource { } func dataSourceGoogleContainerEngineVersionsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientContainerBeta.UserAgent = fmt.Sprintf("%s %s", config.clientContainerBeta.UserAgent, m.ModuleName) + config.clientContainerBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_firebase_web_app_config.go.erb b/third_party/terraform/data_sources/data_source_google_firebase_web_app_config.go.erb index 5f6aeaadf253..3ddf287960c5 100644 --- a/third_party/terraform/data_sources/data_source_google_firebase_web_app_config.go.erb +++ b/third_party/terraform/data_sources/data_source_google_firebase_web_app_config.go.erb @@ -77,14 +77,11 @@ call projects.addGoogleAnalytics.`, } func dataSourceGoogleFirebaseWebappConfigRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) id := d.Get("web_app_id").(string) @@ -98,7 +95,7 @@ func dataSourceGoogleFirebaseWebappConfigRead(d *schema.ResourceData, meta inter return err } - res, err := sendRequest(config, "GET", project, url, nil) + res, err := sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("FirebaseWebApp config %q", d.Id())) } diff --git a/third_party/terraform/data_sources/data_source_google_iam_role.go b/third_party/terraform/data_sources/data_source_google_iam_role.go index b43ec59ebb19..5480f83a2f4f 100644 --- a/third_party/terraform/data_sources/data_source_google_iam_role.go +++ b/third_party/terraform/data_sources/data_source_google_iam_role.go @@ -32,14 +32,12 @@ func dataSourceGoogleIamRole() *schema.Resource { } func dataSourceGoogleIamRoleRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent roleName := d.Get("name").(string) role, err := config.clientIAM.Roles.Get(roleName).Do() diff --git a/third_party/terraform/data_sources/data_source_google_iam_testable_permissions.go b/third_party/terraform/data_sources/data_source_google_iam_testable_permissions.go index 5d0eb8d34d81..5d093ef7a1d4 100644 --- a/third_party/terraform/data_sources/data_source_google_iam_testable_permissions.go +++ b/third_party/terraform/data_sources/data_source_google_iam_testable_permissions.go @@ -63,14 +63,11 @@ func dataSourceGoogleIamTestablePermissions() *schema.Resource { } func dataSourceGoogleIamTestablePermissionsRead(d *schema.ResourceData, meta interface{}) (err error) { - var m providerMeta - - err = d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) body := make(map[string]interface{}) body["pageSize"] = 500 @@ -88,7 +85,7 @@ func dataSourceGoogleIamTestablePermissionsRead(d *schema.ResourceData, meta int for { url := "https://iam.googleapis.com/v1/permissions:queryTestablePermissions" body["fullResourceName"] = d.Get("full_resource_name").(string) - res, err := sendRequest(config, "POST", "", url, body) + res, err := sendRequest(config, "POST", "", url, userAgent, body) if err != nil { return fmt.Errorf("Error retrieving permissions: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_google_kms_crypto_key_version.go b/third_party/terraform/data_sources/data_source_google_kms_crypto_key_version.go index ad9fb117c292..90a44c1ed830 100644 --- a/third_party/terraform/data_sources/data_source_google_kms_crypto_key_version.go +++ b/third_party/terraform/data_sources/data_source_google_kms_crypto_key_version.go @@ -56,14 +56,11 @@ func dataSourceGoogleKmsCryptoKeyVersion() *schema.Resource { } func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) url, err := replaceVars(d, config, "{{KMSBasePath}}{{crypto_key}}/cryptoKeyVersions/{{version}}") if err != nil { @@ -76,7 +73,7 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf if err != nil { return err } - res, err := sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil) + res, err := sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsCryptoKeyVersion %q", d.Id())) } @@ -100,7 +97,7 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Getting purpose of CryptoKey: %#v", url) - res, err = sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil) + res, err = sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, userAgent, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsCryptoKey %q", d.Id())) } @@ -112,7 +109,7 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Getting public key of CryptoKeyVersion: %#v", url) - res, err = sendRequestWithTimeout(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil, d.Timeout(schema.TimeoutRead), isCryptoKeyVersionsPendingGeneration) + res, err = sendRequestWithTimeout(config, "GET", cryptoKeyId.KeyRingId.Project, url, userAgent, nil, d.Timeout(schema.TimeoutRead), isCryptoKeyVersionsPendingGeneration) if err != nil { log.Printf("Error generating public key: %s", err) diff --git a/third_party/terraform/data_sources/data_source_google_kms_secret.go b/third_party/terraform/data_sources/data_source_google_kms_secret.go index fc2fbd04a665..54b1d15aa8a3 100644 --- a/third_party/terraform/data_sources/data_source_google_kms_secret.go +++ b/third_party/terraform/data_sources/data_source_google_kms_secret.go @@ -36,14 +36,12 @@ func dataSourceGoogleKmsSecret() *schema.Resource { } func dataSourceGoogleKmsSecretRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientKms.UserAgent = fmt.Sprintf("%s %s", config.clientKms.UserAgent, m.ModuleName) + config.clientKms.UserAgent = userAgent cryptoKeyId, err := parseKmsCryptoKeyId(d.Get("crypto_key").(string), config) diff --git a/third_party/terraform/data_sources/data_source_google_kms_secret_ciphertext.go b/third_party/terraform/data_sources/data_source_google_kms_secret_ciphertext.go index db12e1011375..3b23902fc1f5 100644 --- a/third_party/terraform/data_sources/data_source_google_kms_secret_ciphertext.go +++ b/third_party/terraform/data_sources/data_source_google_kms_secret_ciphertext.go @@ -34,14 +34,12 @@ func dataSourceGoogleKmsSecretCiphertext() *schema.Resource { } func dataSourceGoogleKmsSecretCiphertextRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientKms.UserAgent = fmt.Sprintf("%s %s", config.clientKms.UserAgent, m.ModuleName) + config.clientKms.UserAgent = userAgent cryptoKeyId, err := parseKmsCryptoKeyId(d.Get("crypto_key").(string), config) diff --git a/third_party/terraform/data_sources/data_source_google_monitoring_uptime_check_ips.go b/third_party/terraform/data_sources/data_source_google_monitoring_uptime_check_ips.go index 79da6e1ee5a7..73fa61da8462 100644 --- a/third_party/terraform/data_sources/data_source_google_monitoring_uptime_check_ips.go +++ b/third_party/terraform/data_sources/data_source_google_monitoring_uptime_check_ips.go @@ -37,18 +37,15 @@ func dataSourceGoogleMonitoringUptimeCheckIps() *schema.Resource { } func dataSourceGoogleMonitoringUptimeCheckIpsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) url := "https://monitoring.googleapis.com/v3/uptimeCheckIps" - uptimeCheckIps, err := paginatedListRequest("", url, config, flattenUptimeCheckIpsList) + uptimeCheckIps, err := paginatedListRequest("", url, userAgent, config, flattenUptimeCheckIpsList) if err != nil { return fmt.Errorf("Error retrieving monitoring uptime check ips: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_google_organization.go b/third_party/terraform/data_sources/data_source_google_organization.go index 785e8be3b299..bb2c1a29e26e 100644 --- a/third_party/terraform/data_sources/data_source_google_organization.go +++ b/third_party/terraform/data_sources/data_source_google_organization.go @@ -49,14 +49,12 @@ func dataSourceGoogleOrganization() *schema.Resource { } func dataSourceOrganizationRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManager.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManager.UserAgent, m.ModuleName) + config.clientResourceManager.UserAgent = userAgent var organization *cloudresourcemanager.Organization if v, ok := d.GetOk("domain"); ok { diff --git a/third_party/terraform/data_sources/data_source_google_projects.go b/third_party/terraform/data_sources/data_source_google_projects.go index 263feed4620d..83b296c00af6 100644 --- a/third_party/terraform/data_sources/data_source_google_projects.go +++ b/third_party/terraform/data_sources/data_source_google_projects.go @@ -62,14 +62,11 @@ func dataSourceGoogleProjects() *schema.Resource { } func datasourceGoogleProjectsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) params := make(map[string]string) projects := make([]map[string]interface{}, 0) @@ -83,7 +80,7 @@ func datasourceGoogleProjectsRead(d *schema.ResourceData, meta interface{}) erro return err } - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, userAgent, nil) if err != nil { return fmt.Errorf("Error retrieving projects: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_google_service_account.go b/third_party/terraform/data_sources/data_source_google_service_account.go index b476a3b2b756..cfe8db448043 100644 --- a/third_party/terraform/data_sources/data_source_google_service_account.go +++ b/third_party/terraform/data_sources/data_source_google_service_account.go @@ -41,14 +41,12 @@ func dataSourceGoogleServiceAccount() *schema.Resource { } func dataSourceGoogleServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent serviceAccountName, err := serviceAccountFQN(d.Get("account_id").(string), d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_service_account_access_token.go b/third_party/terraform/data_sources/data_source_google_service_account_access_token.go index c2d0837be0d1..1cb38502381c 100644 --- a/third_party/terraform/data_sources/data_source_google_service_account_access_token.go +++ b/third_party/terraform/data_sources/data_source_google_service_account_access_token.go @@ -56,14 +56,12 @@ func dataSourceGoogleServiceAccountAccessToken() *schema.Resource { } func dataSourceGoogleServiceAccountAccessTokenRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIamCredentials.UserAgent = fmt.Sprintf("%s %s", config.clientIamCredentials.UserAgent, m.ModuleName) + config.clientIamCredentials.UserAgent = userAgent log.Printf("[INFO] Acquire Service Account AccessToken for %s", d.Get("target_service_account").(string)) diff --git a/third_party/terraform/data_sources/data_source_google_service_account_id_token.go b/third_party/terraform/data_sources/data_source_google_service_account_id_token.go index 893a4cacb0a7..48055c8c16c5 100644 --- a/third_party/terraform/data_sources/data_source_google_service_account_id_token.go +++ b/third_party/terraform/data_sources/data_source_google_service_account_id_token.go @@ -64,14 +64,12 @@ func dataSourceGoogleServiceAccountIdToken() *schema.Resource { } func dataSourceGoogleServiceAccountIdTokenRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIamCredentials.UserAgent = fmt.Sprintf("%s %s", config.clientIamCredentials.UserAgent, m.ModuleName) + config.clientIamCredentials.UserAgent = userAgent targetAudience := d.Get("target_audience").(string) creds, err := config.GetCredentials([]string{userInfoScope}) diff --git a/third_party/terraform/data_sources/data_source_google_service_account_key.go b/third_party/terraform/data_sources/data_source_google_service_account_key.go index 8a5e7e113468..45ead32eaa4e 100644 --- a/third_party/terraform/data_sources/data_source_google_service_account_key.go +++ b/third_party/terraform/data_sources/data_source_google_service_account_key.go @@ -41,14 +41,12 @@ func dataSourceGoogleServiceAccountKey() *schema.Resource { } func dataSourceGoogleServiceAccountKeyRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent keyName := d.Get("name").(string) diff --git a/third_party/terraform/data_sources/data_source_google_sql_ca_certs.go b/third_party/terraform/data_sources/data_source_google_sql_ca_certs.go index e6ef268929fa..57aa165cc4be 100644 --- a/third_party/terraform/data_sources/data_source_google_sql_ca_certs.go +++ b/third_party/terraform/data_sources/data_source_google_sql_ca_certs.go @@ -60,14 +60,12 @@ func dataSourceGoogleSQLCaCerts() *schema.Resource { } func dataSourceGoogleSQLCaCertsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientSqlAdmin.UserAgent = fmt.Sprintf("%s %s", config.clientSqlAdmin.UserAgent, m.ModuleName) + config.clientSqlAdmin.UserAgent = userAgent fv, err := parseProjectFieldValue("instances", d.Get("instance").(string), "project", d, config, false) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_storage_bucket_object.go b/third_party/terraform/data_sources/data_source_google_storage_bucket_object.go index a520cea095c6..071ff39c5f86 100644 --- a/third_party/terraform/data_sources/data_source_google_storage_bucket_object.go +++ b/third_party/terraform/data_sources/data_source_google_storage_bucket_object.go @@ -22,14 +22,11 @@ func dataSourceGoogleStorageBucketObject() *schema.Resource { } func dataSourceGoogleStorageBucketObjectRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) bucket := d.Get("bucket").(string) name := d.Get("name").(string) @@ -43,7 +40,7 @@ func dataSourceGoogleStorageBucketObjectRead(d *schema.ResourceData, meta interf // Using REST apis because the storage go client doesn't support folders url := fmt.Sprintf("https://www.googleapis.com/storage/v1/b/%s/o/%s", bucket, name) - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, userAgent, nil) if err != nil { return fmt.Errorf("Error retrieving storage bucket object: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_google_storage_project_service_account.go b/third_party/terraform/data_sources/data_source_google_storage_project_service_account.go index d9d72e51a350..ba674370f069 100644 --- a/third_party/terraform/data_sources/data_source_google_storage_project_service_account.go +++ b/third_party/terraform/data_sources/data_source_google_storage_project_service_account.go @@ -29,14 +29,12 @@ func dataSourceGoogleStorageProjectServiceAccount() *schema.Resource { } func dataSourceGoogleStorageProjectServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_google_storage_transfer_project_service_account.go b/third_party/terraform/data_sources/data_source_google_storage_transfer_project_service_account.go index 3b59fb786290..eccdc8eea4ba 100644 --- a/third_party/terraform/data_sources/data_source_google_storage_transfer_project_service_account.go +++ b/third_party/terraform/data_sources/data_source_google_storage_transfer_project_service_account.go @@ -23,14 +23,12 @@ func dataSourceGoogleStorageTransferProjectServiceAccount() *schema.Resource { } func dataSourceGoogleStorageTransferProjectServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorageTransfer.UserAgent = fmt.Sprintf("%s %s", config.clientStorageTransfer.UserAgent, m.ModuleName) + config.clientStorageTransfer.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/data_sources/data_source_monitoring_notification_channel.go b/third_party/terraform/data_sources/data_source_monitoring_notification_channel.go index 089d3a194162..464d3073d334 100644 --- a/third_party/terraform/data_sources/data_source_monitoring_notification_channel.go +++ b/third_party/terraform/data_sources/data_source_monitoring_notification_channel.go @@ -24,14 +24,11 @@ func dataSourceMonitoringNotificationChannel() *schema.Resource { } func dataSourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) url, err := replaceVars(d, config, "{{MonitoringBasePath}}v3/projects/{{project}}/notificationChannels") if err != nil { @@ -87,7 +84,7 @@ func dataSourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta in return err } - response, err := sendRequest(config, "GET", project, url, nil) + response, err := sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return fmt.Errorf("Error retrieving NotificationChannels: %s", err) } diff --git a/third_party/terraform/data_sources/data_source_monitoring_service.go b/third_party/terraform/data_sources/data_source_monitoring_service.go index fc4ffe03ce9a..97156ecceee2 100644 --- a/third_party/terraform/data_sources/data_source_monitoring_service.go +++ b/third_party/terraform/data_sources/data_source_monitoring_service.go @@ -36,14 +36,11 @@ func dataSourceMonitoringServiceType( // It takes the list query filter (i.e. ?filter=$listFilter) and a ReadFunc to handle reading any type-specific schema. func dataSourceMonitoringServiceTypeReadFromList(listFilter string, typeStateSetter monitoringServiceTypeStateSetter) schema.ReadFunc { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) project, err := getProject(d, config) if err != nil { @@ -61,7 +58,7 @@ func dataSourceMonitoringServiceTypeReadFromList(listFilter string, typeStateSet return err } - resp, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + resp, err := sendRequest(config, "GET", project, url, userAgent, nil, isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("unable to list Monitoring Service for data source: %v", err) } diff --git a/third_party/terraform/data_sources/data_source_secret_manager_secret_version.go.erb b/third_party/terraform/data_sources/data_source_secret_manager_secret_version.go.erb index bbe11941f164..cfa873d06465 100644 --- a/third_party/terraform/data_sources/data_source_secret_manager_secret_version.go.erb +++ b/third_party/terraform/data_sources/data_source_secret_manager_secret_version.go.erb @@ -55,14 +55,11 @@ func dataSourceSecretManagerSecretVersion() *schema.Resource { } func dataSourceSecretManagerSecretVersionRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) fv, err := parseProjectFieldValue("secrets", d.Get("secret").(string), "project", d, config, false) if err != nil { @@ -95,7 +92,7 @@ func dataSourceSecretManagerSecretVersionRead(d *schema.ResourceData, meta inter } var version map[string]interface{} - version, err = sendRequest(config, "GET", project, url, nil) + version, err = sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return fmt.Errorf("Error retrieving available secret manager secret versions: %s", err.Error()) } @@ -115,7 +112,7 @@ func dataSourceSecretManagerSecretVersionRead(d *schema.ResourceData, meta inter } url = fmt.Sprintf("%s:access", url) - resp, err := sendRequest(config, "GET", project, url, nil) + resp, err := sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return fmt.Errorf("Error retrieving available secret manager secret version access: %s", err.Error()) } diff --git a/third_party/terraform/data_sources/data_source_tpu_tensorflow_versions.go b/third_party/terraform/data_sources/data_source_tpu_tensorflow_versions.go index f1cdf457f140..a1893145e48f 100644 --- a/third_party/terraform/data_sources/data_source_tpu_tensorflow_versions.go +++ b/third_party/terraform/data_sources/data_source_tpu_tensorflow_versions.go @@ -33,14 +33,11 @@ func dataSourceTpuTensorflowVersions() *schema.Resource { } func dataSourceTpuTensorFlowVersionsRead(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) project, err := getProject(d, config) if err != nil { @@ -57,7 +54,7 @@ func dataSourceTpuTensorFlowVersionsRead(d *schema.ResourceData, meta interface{ return err } - versionsRaw, err := paginatedListRequest(project, url, config, flattenTpuTensorflowVersions) + versionsRaw, err := paginatedListRequest(project, url, userAgent, config, flattenTpuTensorflowVersions) if err != nil { return fmt.Errorf("Error listing TPU Tensorflow versions: %s", err) } diff --git a/third_party/terraform/resources/resource_app_engine_application.go b/third_party/terraform/resources/resource_app_engine_application.go index a73aacb17cd9..96b12006a7a3 100644 --- a/third_party/terraform/resources/resource_app_engine_application.go +++ b/third_party/terraform/resources/resource_app_engine_application.go @@ -194,14 +194,12 @@ func appEngineApplicationLocationIDCustomizeDiff(_ context.Context, d *schema.Re } func resourceAppEngineApplicationCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientAppEngine.UserAgent = fmt.Sprintf("%s %s", config.clientAppEngine.UserAgent, m.ModuleName) + config.clientAppEngine.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -228,7 +226,7 @@ func resourceAppEngineApplicationCreate(d *schema.ResourceData, meta interface{} d.SetId(project) // Wait for the operation to complete - waitErr := appEngineOperationWaitTime(config, op, project, "App Engine app to create", d.Timeout(schema.TimeoutCreate)) + waitErr := appEngineOperationWaitTime(config, op, project, "App Engine app to create", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { d.SetId("") return waitErr @@ -240,6 +238,11 @@ func resourceAppEngineApplicationCreate(d *schema.ResourceData, meta interface{} func resourceAppEngineApplicationRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientAppEngine.UserAgent = userAgent pid := d.Id() app, err := config.clientAppEngine.Apps.Get(pid).Do() @@ -308,6 +311,11 @@ func resourceAppEngineApplicationRead(d *schema.ResourceData, meta interface{}) func resourceAppEngineApplicationUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientAppEngine.UserAgent = userAgent pid := d.Id() app, err := expandAppEngineApplication(d, pid) if err != nil { @@ -328,7 +336,7 @@ func resourceAppEngineApplicationUpdate(d *schema.ResourceData, meta interface{} } // Wait for the operation to complete - waitErr := appEngineOperationWaitTime(config, op, pid, "App Engine app to update", d.Timeout(schema.TimeoutUpdate)) + waitErr := appEngineOperationWaitTime(config, op, pid, "App Engine app to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if waitErr != nil { return waitErr } diff --git a/third_party/terraform/resources/resource_bigquery_table.go b/third_party/terraform/resources/resource_bigquery_table.go index 3f77e0fcbd73..51ff932edcd8 100644 --- a/third_party/terraform/resources/resource_bigquery_table.go +++ b/third_party/terraform/resources/resource_bigquery_table.go @@ -679,14 +679,12 @@ func resourceTable(d *schema.ResourceData, meta interface{}) (*bigquery.Table, e } func resourceBigQueryTableCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientBigQuery.UserAgent = fmt.Sprintf("%s %s", config.clientBigQuery.UserAgent, m.ModuleName) + config.clientBigQuery.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -715,6 +713,11 @@ func resourceBigQueryTableCreate(d *schema.ResourceData, meta interface{}) error func resourceBigQueryTableRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientBigQuery.UserAgent = userAgent log.Printf("[INFO] Reading BigQuery table: %s", d.Id()) @@ -855,6 +858,11 @@ func resourceBigQueryTableRead(d *schema.ResourceData, meta interface{}) error { func resourceBigQueryTableUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientBigQuery.UserAgent = userAgent table, err := resourceTable(d, meta) if err != nil { @@ -880,6 +888,11 @@ func resourceBigQueryTableUpdate(d *schema.ResourceData, meta interface{}) error func resourceBigQueryTableDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientBigQuery.UserAgent = userAgent log.Printf("[INFO] Deleting BigQuery table: %s", d.Id()) diff --git a/third_party/terraform/resources/resource_bigtable_gc_policy.go b/third_party/terraform/resources/resource_bigtable_gc_policy.go index db0a45690d78..5cf383522e6d 100644 --- a/third_party/terraform/resources/resource_bigtable_gc_policy.go +++ b/third_party/terraform/resources/resource_bigtable_gc_policy.go @@ -97,14 +97,12 @@ func resourceBigtableGCPolicy() *schema.Resource { } func resourceBigtableGCPolicyCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - // Need to set UserAgent + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() @@ -152,6 +150,11 @@ func resourceBigtableGCPolicyCreate(d *schema.ResourceData, meta interface{}) er func resourceBigtableGCPolicyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) @@ -191,6 +194,11 @@ func resourceBigtableGCPolicyRead(d *schema.ResourceData, meta interface{}) erro func resourceBigtableGCPolicyDestroy(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) diff --git a/third_party/terraform/resources/resource_bigtable_instance.go b/third_party/terraform/resources/resource_bigtable_instance.go index 80c4b279f9ce..62361b8cfda7 100644 --- a/third_party/terraform/resources/resource_bigtable_instance.go +++ b/third_party/terraform/resources/resource_bigtable_instance.go @@ -126,14 +126,12 @@ func resourceBigtableInstance() *schema.Resource { } func resourceBigtableInstanceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - // Need to set UserAgent + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() @@ -188,6 +186,11 @@ func resourceBigtableInstanceCreate(d *schema.ResourceData, meta interface{}) er func resourceBigtableInstanceRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) @@ -248,6 +251,11 @@ func resourceBigtableInstanceRead(d *schema.ResourceData, meta interface{}) erro func resourceBigtableInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) @@ -297,6 +305,12 @@ func resourceBigtableInstanceDestroy(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("cannot destroy instance without setting deletion_protection=false and running `terraform apply`") } config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent + ctx := context.Background() project, err := getProject(d, config) diff --git a/third_party/terraform/resources/resource_bigtable_table.go b/third_party/terraform/resources/resource_bigtable_table.go index 1ccd8e1f3e06..ea8f967a2810 100644 --- a/third_party/terraform/resources/resource_bigtable_table.go +++ b/third_party/terraform/resources/resource_bigtable_table.go @@ -74,14 +74,12 @@ func resourceBigtableTable() *schema.Resource { } func resourceBigtableTableCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - // Need to set UserAgent + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() @@ -144,6 +142,11 @@ func resourceBigtableTableCreate(d *schema.ResourceData, meta interface{}) error func resourceBigtableTableRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) @@ -179,6 +182,11 @@ func resourceBigtableTableRead(d *schema.ResourceData, meta interface{}) error { func resourceBigtableTableUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent ctx := context.Background() project, err := getProject(d, config) @@ -227,6 +235,12 @@ func resourceBigtableTableUpdate(d *schema.ResourceData, meta interface{}) error func resourceBigtableTableDestroy(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.bigtableClientFactory.UserAgent = userAgent + ctx := context.Background() project, err := getProject(d, config) diff --git a/third_party/terraform/resources/resource_cloud_identity_group_sweeper_test.go.erb b/third_party/terraform/resources/resource_cloud_identity_group_sweeper_test.go.erb index 1b3221396258..d6a2d231c870 100644 --- a/third_party/terraform/resources/resource_cloud_identity_group_sweeper_test.go.erb +++ b/third_party/terraform/resources/resource_cloud_identity_group_sweeper_test.go.erb @@ -57,7 +57,7 @@ func testSweepCloudIdentityGroup(region string) error { return nil } - res, err := sendRequest(config, "GET", config.Project, listUrl, nil) + res, err := sendRequest(config, "GET", config.Project, listUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error in response from request %s: %s", listUrl, err) return nil @@ -97,7 +97,7 @@ func testSweepCloudIdentityGroup(region string) error { deleteUrl = deleteUrl + name // Don't wait on operations as we may have a lot to delete - _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, nil) + _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error deleting for url %s : %s", deleteUrl, err) } else { diff --git a/third_party/terraform/resources/resource_cloudfunctions_function.go b/third_party/terraform/resources/resource_cloudfunctions_function.go index d157e030f2a8..3eddabaf8b19 100644 --- a/third_party/terraform/resources/resource_cloudfunctions_function.go +++ b/third_party/terraform/resources/resource_cloudfunctions_function.go @@ -332,14 +332,12 @@ func resourceCloudFunctionsFunction() *schema.Resource { } func resourceCloudFunctionsCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCloudFunctions.UserAgent = fmt.Sprintf("%s %s", config.clientCloudFunctions.UserAgent, m.ModuleName) + config.clientCloudFunctions.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -453,6 +451,11 @@ func resourceCloudFunctionsCreate(d *schema.ResourceData, meta interface{}) erro func resourceCloudFunctionsRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCloudFunctions.UserAgent = userAgent cloudFuncId, err := parseCloudFunctionId(d, config) if err != nil { @@ -553,6 +556,11 @@ func resourceCloudFunctionsRead(d *schema.ResourceData, meta interface{}) error func resourceCloudFunctionsUpdate(d *schema.ResourceData, meta interface{}) error { log.Printf("[DEBUG]: Updating google_cloudfunctions_function") config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCloudFunctions.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -662,6 +670,11 @@ func resourceCloudFunctionsUpdate(d *schema.ResourceData, meta interface{}) erro func resourceCloudFunctionsDestroy(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCloudFunctions.UserAgent = userAgent cloudFuncId, err := parseCloudFunctionId(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_composer_environment.go.erb b/third_party/terraform/resources/resource_composer_environment.go.erb index a4897ab28465..7127422d65bc 100644 --- a/third_party/terraform/resources/resource_composer_environment.go.erb +++ b/third_party/terraform/resources/resource_composer_environment.go.erb @@ -463,14 +463,12 @@ func resourceComposerEnvironment() *schema.Resource { } func resourceComposerEnvironmentCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComposer.UserAgent = fmt.Sprintf("%s %s", config.clientComposer.UserAgent, m.ModuleName) + config.clientComposer.UserAgent = userAgent envName, err := resourceComposerEnvironmentName(d, config) if err != nil { @@ -505,7 +503,7 @@ func resourceComposerEnvironmentCreate(d *schema.ResourceData, meta interface{}) d.SetId(id) waitErr := composerOperationWaitTime( - config, op, envName.Project, "Creating Environment", + config, op, envName.Project, "Creating Environment", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { @@ -533,6 +531,11 @@ func resourceComposerEnvironmentCreate(d *schema.ResourceData, meta interface{}) func resourceComposerEnvironmentRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComposer.UserAgent = userAgent envName, err := resourceComposerEnvironmentName(d, config) if err != nil { @@ -566,6 +569,11 @@ func resourceComposerEnvironmentRead(d *schema.ResourceData, meta interface{}) e func resourceComposerEnvironmentUpdate(d *schema.ResourceData, meta interface{}) error { tfConfig := meta.(*Config) + userAgent, err := generateUserAgentString(d, tfConfig.userAgent) + if err != nil { + return err + } + tfConfig.clientComposer.UserAgent = userAgent d.Partial(true) @@ -731,6 +739,11 @@ func resourceComposerEnvironmentPostCreateUpdate(updateEnv *composer.Environment } func resourceComposerEnvironmentPatchField(updateMask string, env *composer.Environment, d *schema.ResourceData, config *Config) error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + envJson, _ := env.MarshalJSON() log.Printf("[DEBUG] Updating Environment %q (updateMask = %q): %s", d.Id(), updateMask, string(envJson)) envName, err := resourceComposerEnvironmentName(d, config) @@ -746,7 +759,7 @@ func resourceComposerEnvironmentPatchField(updateMask string, env *composer.Envi } waitErr := composerOperationWaitTime( - config, op, envName.Project, "Updating newly created Environment", + config, op, envName.Project, "Updating newly created Environment", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { // The resource didn't actually update. @@ -759,6 +772,11 @@ func resourceComposerEnvironmentPatchField(updateMask string, env *composer.Envi func resourceComposerEnvironmentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComposer.UserAgent = userAgent envName, err := resourceComposerEnvironmentName(d, config) if err != nil { @@ -772,7 +790,7 @@ func resourceComposerEnvironmentDelete(d *schema.ResourceData, meta interface{}) } err = composerOperationWaitTime( - config, op, envName.Project, "Deleting Environment", + config, op, envName.Project, "Deleting Environment", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err @@ -1356,6 +1374,11 @@ func validateComposerEnvironmentEnvVariables(v interface{}, k string) (ws []stri } func handleComposerEnvironmentCreationOpFailure(id string, envName *composerEnvironmentName, d *schema.ResourceData, config *Config) error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + log.Printf("[WARNING] Creation operation for Composer Environment %q failed, check Environment isn't still running", id) // Try to get possible created but invalid environment. env, err := config.clientComposer.Projects.Locations.Environments.Get(envName.resourceName()).Do() @@ -1380,7 +1403,7 @@ func handleComposerEnvironmentCreationOpFailure(id string, envName *composerEnvi waitErr := composerOperationWaitTime( config, op, envName.Project, - fmt.Sprintf("Deleting invalid created Environment with state %q", env.State), + fmt.Sprintf("Deleting invalid created Environment with state %q", env.State), userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { return fmt.Errorf("Error waiting to delete invalid Environment with state %q: %s", env.State, waitErr) diff --git a/third_party/terraform/resources/resource_compute_attached_disk.go b/third_party/terraform/resources/resource_compute_attached_disk.go index ef85cb32fefd..d5753c0cdccf 100644 --- a/third_party/terraform/resources/resource_compute_attached_disk.go +++ b/third_party/terraform/resources/resource_compute_attached_disk.go @@ -75,14 +75,12 @@ func resourceComputeAttachedDisk() *schema.Resource { } func resourceAttachedDiskCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent zv, err := parseZonalFieldValue("instances", d.Get("instance").(string), "project", "zone", d, config, false) if err != nil { @@ -116,7 +114,7 @@ func resourceAttachedDiskCreate(d *schema.ResourceData, meta interface{}) error d.SetId(fmt.Sprintf("projects/%s/zones/%s/instances/%s/%s", zv.Project, zv.Zone, zv.Name, diskName)) waitErr := computeOperationWaitTime(config, op, zv.Project, - "disk to attach", d.Timeout(schema.TimeoutCreate)) + "disk to attach", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { d.SetId("") return waitErr @@ -127,6 +125,11 @@ func resourceAttachedDiskCreate(d *schema.ResourceData, meta interface{}) error func resourceAttachedDiskRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent zv, err := parseZonalFieldValue("instances", d.Get("instance").(string), "project", "zone", d, config, false) if err != nil { @@ -183,6 +186,11 @@ func resourceAttachedDiskRead(d *schema.ResourceData, meta interface{}) error { func resourceAttachedDiskDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent zv, err := parseZonalFieldValue("instances", d.Get("instance").(string), "project", "zone", d, config, false) if err != nil { @@ -209,7 +217,7 @@ func resourceAttachedDiskDelete(d *schema.ResourceData, meta interface{}) error } waitErr := computeOperationWaitTime(config, op, zv.Project, - fmt.Sprintf("Detaching disk from %s", zv.Name), d.Timeout(schema.TimeoutDelete)) + fmt.Sprintf("Detaching disk from %s", zv.Name), userAgent, d.Timeout(schema.TimeoutDelete)) if waitErr != nil { return waitErr } diff --git a/third_party/terraform/resources/resource_compute_instance.go.erb b/third_party/terraform/resources/resource_compute_instance.go.erb index 880f78d6bc4e..a7b1c3da7153 100644 --- a/third_party/terraform/resources/resource_compute_instance.go.erb +++ b/third_party/terraform/resources/resource_compute_instance.go.erb @@ -896,14 +896,12 @@ func waitUntilInstanceHasDesiredStatus(config *Config, d *schema.ResourceData) e } func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -937,7 +935,7 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err d.SetId(fmt.Sprintf("projects/%s/zones/%s/instances/%s", project, z, instance.Name)) // Wait for the operation to complete - waitErr := computeOperationWaitTime(config, op, project, "instance to create", d.Timeout(schema.TimeoutCreate)) + waitErr := computeOperationWaitTime(config, op, project, "instance to create", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { // The resource didn't actually create d.SetId("") @@ -954,6 +952,11 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err func resourceComputeInstanceRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1210,6 +1213,12 @@ func resourceComputeInstanceRead(d *schema.ResourceData, meta interface{}) error func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1259,7 +1268,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating metadata: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "metadata to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "metadata to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1285,7 +1294,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating tags: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "tags to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "tags to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1301,7 +1310,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating labels: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "labels to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "labels to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1320,7 +1329,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err } opErr := computeOperationWaitTime( - config, op, project, "scheduling policy update", + config, op, project, "scheduling policy update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr @@ -1393,7 +1402,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return fmt.Errorf("Error deleting old access_config: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "old access_config to delete", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "old access_config to delete", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1418,7 +1427,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return fmt.Errorf("Error adding new access_config: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "new access_config to add", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "new access_config to add", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1448,7 +1457,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return errwrap.Wrapf("Error removing alias_ip_range: {{err}}", err) } - opErr := computeOperationWaitTime(config, op, project, "updating alias ip ranges", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "updating alias ip ranges", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1466,7 +1475,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return errwrap.Wrapf("Error updating network interface: {{err}}", err) } - opErr := computeOperationWaitTime(config, op, project, "network interface to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "network interface to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1547,7 +1556,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return errwrap.Wrapf("Error detaching disk: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "detaching disk", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "detaching disk", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1562,7 +1571,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return errwrap.Wrapf("Error attaching disk : {{err}}", err) } - opErr := computeOperationWaitTime(config, op, project, "attaching disk", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "attaching disk", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1594,7 +1603,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating deletion protection flag: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "deletion protection to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "deletion protection to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1620,7 +1629,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err } } opErr := computeOperationWaitTime( - config, op, project, "updating status", + config, op, project, "updating status", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr @@ -1646,7 +1655,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return errwrap.Wrapf("Error stopping instance: {{err}}", err) } - opErr := computeOperationWaitTime(config, op, project, "stopping instance", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "stopping instance", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1664,7 +1673,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - opErr := computeOperationWaitTime(config, op, project, "updating machinetype", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "updating machinetype", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1685,7 +1694,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - opErr := computeOperationWaitTime(config, op, project, "updating min cpu platform", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "updating min cpu platform", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1703,7 +1712,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - opErr := computeOperationWaitTime(config, op, project, "updating service account", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "updating service account", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1718,7 +1727,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return fmt.Errorf("Error updating display device: %s", err) } - opErr := computeOperationWaitTime(config, op, project, "updating display device", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "updating display device", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1733,7 +1742,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err } opErr := computeOperationWaitTime(config, op, project, - "shielded vm config update", d.Timeout(schema.TimeoutUpdate)) + "shielded vm config update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1744,7 +1753,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return errwrap.Wrapf("Error updating network interface: {{err}}", err) } - opErr := computeOperationWaitTime(config, op, project, "network interface to update", d.Timeout(schema.TimeoutUpdate)) + opErr := computeOperationWaitTime(config, op, project, "network interface to update", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1758,7 +1767,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err } opErr := computeOperationWaitTime(config, op, project, - "starting instance", d.Timeout(schema.TimeoutUpdate)) + "starting instance", userAgent, d.Timeout(schema.TimeoutUpdate)) if opErr != nil { return opErr } @@ -1960,6 +1969,11 @@ func desiredStatusDiff(_ context.Context, diff *schema.ResourceDiff, meta interf func resourceComputeInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1981,7 +1995,7 @@ func resourceComputeInstanceDelete(d *schema.ResourceData, meta interface{}) err } // Wait for the operation to complete - opErr := computeOperationWaitTime(config, op, project, "instance to delete", d.Timeout(schema.TimeoutDelete)) + opErr := computeOperationWaitTime(config, op, project, "instance to delete", userAgent, d.Timeout(schema.TimeoutDelete)) if opErr != nil { return opErr } diff --git a/third_party/terraform/resources/resource_compute_instance_from_template.go b/third_party/terraform/resources/resource_compute_instance_from_template.go index 9a5eeec97a61..1e6561326d13 100644 --- a/third_party/terraform/resources/resource_compute_instance_from_template.go +++ b/third_party/terraform/resources/resource_compute_instance_from_template.go @@ -89,14 +89,12 @@ func recurseOnSchema(s map[string]*schema.Schema, f func(*schema.Schema)) { } func resourceComputeInstanceFromTemplateCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -171,7 +169,7 @@ func resourceComputeInstanceFromTemplateCreate(d *schema.ResourceData, meta inte // Wait for the operation to complete waitErr := computeOperationWaitTime(config, op, project, - "instance to create", d.Timeout(schema.TimeoutCreate)) + "instance to create", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { // The resource didn't actually create d.SetId("") diff --git a/third_party/terraform/resources/resource_compute_instance_group.go b/third_party/terraform/resources/resource_compute_instance_group.go index c22ea911632d..1e3fdaafa1a1 100644 --- a/third_party/terraform/resources/resource_compute_instance_group.go +++ b/third_party/terraform/resources/resource_compute_instance_group.go @@ -135,14 +135,12 @@ func validInstanceURLs(instanceUrls []string) bool { } func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -184,7 +182,7 @@ func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{} d.SetId(fmt.Sprintf("projects/%s/zones/%s/instanceGroups/%s", project, zone, name)) // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Creating InstanceGroup", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating InstanceGroup", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { d.SetId("") return err @@ -218,7 +216,7 @@ func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{} } // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Adding instances to InstanceGroup", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Adding instances to InstanceGroup", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -229,6 +227,11 @@ func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{} func resourceComputeInstanceGroupRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -302,6 +305,11 @@ func resourceComputeInstanceGroupRead(d *schema.ResourceData, meta interface{}) } func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -348,7 +356,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} } } else { // Wait for the operation to complete - err = computeOperationWaitTime(config, removeOp, project, "Updating InstanceGroup", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, removeOp, project, "Updating InstanceGroup", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -369,7 +377,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} } // Wait for the operation to complete - err = computeOperationWaitTime(config, addOp, project, "Updating InstanceGroup", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, addOp, project, "Updating InstanceGroup", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -390,7 +398,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error updating named ports for InstanceGroup: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating InstanceGroup", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating InstanceGroup", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -403,6 +411,11 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} func resourceComputeInstanceGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -419,7 +432,7 @@ func resourceComputeInstanceGroupDelete(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error deleting InstanceGroup: %s", err) } - err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroup", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroup", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_instance_group_manager.go.erb b/third_party/terraform/resources/resource_compute_instance_group_manager.go.erb index 9458063e0c91..8e15c07252df 100644 --- a/third_party/terraform/resources/resource_compute_instance_group_manager.go.erb +++ b/third_party/terraform/resources/resource_compute_instance_group_manager.go.erb @@ -323,14 +323,12 @@ func getNamedPortsBeta(nps []interface{}) []*computeBeta.NamedPort { } func resourceComputeInstanceGroupManagerCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -376,7 +374,7 @@ func resourceComputeInstanceGroupManagerCreate(d *schema.ResourceData, meta inte d.SetId(id) // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { // Check if the create operation failed because Terraform was prematurely terminated. If it was we can persist the // operation id to state so that a subsequent refresh of this resource will wait until the operation has terminated @@ -464,6 +462,11 @@ func getManager(d *schema.ResourceData, meta interface{}) (*computeBeta.Instance func resourceComputeInstanceGroupManagerRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { return err @@ -480,7 +483,7 @@ func resourceComputeInstanceGroupManagerRead(d *schema.ResourceData, meta interf if err := d.Set("operation", op.Name); err != nil { return fmt.Errorf("Error setting operation: %s", err) } - err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { // remove from state to allow refresh to finish log.Printf("[DEBUG] Resumed operation returned an error, removing from state: %s",err) @@ -566,6 +569,11 @@ func resourceComputeInstanceGroupManagerRead(d *schema.ResourceData, meta interf func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -617,7 +625,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte return fmt.Errorf("Error updating managed group instances: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating managed group instances", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating managed group instances", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -643,7 +651,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete: - err = computeOperationWaitTime(config, op, project, "Updating InstanceGroupManager", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -662,7 +670,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Updating InstanceGroupManager", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -675,6 +683,11 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte func resourceComputeInstanceGroupManagerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -699,7 +712,7 @@ func resourceComputeInstanceGroupManagerDelete(d *schema.ResourceData, meta inte currentSize := int64(d.Get("target_size").(int)) // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroupManager", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutDelete)) for err != nil && currentSize > 0 { if !strings.Contains(err.Error(), "timeout") { @@ -720,7 +733,7 @@ func resourceComputeInstanceGroupManagerDelete(d *schema.ResourceData, meta inte log.Printf("[INFO] timeout occurred, but instance group is shrinking (%d < %d)", instanceGroupSize, currentSize) currentSize = instanceGroupSize - err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroupManager", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutDelete)) } d.SetId("") diff --git a/third_party/terraform/resources/resource_compute_instance_template.go.erb b/third_party/terraform/resources/resource_compute_instance_template.go.erb index becda48c1a6c..daa2723765e4 100644 --- a/third_party/terraform/resources/resource_compute_instance_template.go.erb +++ b/third_party/terraform/resources/resource_compute_instance_template.go.erb @@ -818,14 +818,12 @@ func expandInstanceTemplateGuestAccelerators(d TerraformResourceData, config *Co } func resourceComputeInstanceTemplateCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -897,7 +895,7 @@ func resourceComputeInstanceTemplateCreate(d *schema.ResourceData, meta interfac // Store the ID now d.SetId(fmt.Sprintf("projects/%s/global/instanceTemplates/%s", project, instanceTemplate.Name)) - err = computeOperationWaitTime(config, op, project, "Creating Instance Template", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating Instance Template", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -1118,6 +1116,11 @@ func flattenDisks(disks []*computeBeta.AttachedDisk, d *schema.ResourceData, def func resourceComputeInstanceTemplateRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { return err @@ -1263,6 +1266,11 @@ func resourceComputeInstanceTemplateRead(d *schema.ResourceData, meta interface{ func resourceComputeInstanceTemplateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1276,7 +1284,7 @@ func resourceComputeInstanceTemplateDelete(d *schema.ResourceData, meta interfac return fmt.Errorf("Error deleting instance template: %s", err) } - err = computeOperationWaitTime(config, op, project, "Deleting Instance Template", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting Instance Template", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_network_peering.go b/third_party/terraform/resources/resource_compute_network_peering.go index d5e4788ffd49..fa956174baec 100644 --- a/third_party/terraform/resources/resource_compute_network_peering.go +++ b/third_party/terraform/resources/resource_compute_network_peering.go @@ -100,14 +100,12 @@ func resourceComputeNetworkPeering() *schema.Resource { } func resourceComputeNetworkPeeringCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent networkFieldValue, err := ParseNetworkFieldValue(d.Get("network").(string), d, config) if err != nil { @@ -134,7 +132,7 @@ func resourceComputeNetworkPeeringCreate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error adding network peering: %s", err) } - err = computeOperationWaitTime(config, addOp, networkFieldValue.Project, "Adding Network Peering", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, addOp, networkFieldValue.Project, "Adding Network Peering", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -146,6 +144,11 @@ func resourceComputeNetworkPeeringCreate(d *schema.ResourceData, meta interface{ func resourceComputeNetworkPeeringRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent peeringName := d.Get("name").(string) networkFieldValue, err := ParseNetworkFieldValue(d.Get("network").(string), d, config) @@ -195,6 +198,11 @@ func resourceComputeNetworkPeeringRead(d *schema.ResourceData, meta interface{}) func resourceComputeNetworkPeeringDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent // Remove the `network` to `peer_network` peering name := d.Get("name").(string) @@ -227,7 +235,7 @@ func resourceComputeNetworkPeeringDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error removing peering `%s` from network `%s`: %s", name, networkFieldValue.Name, err) } } else { - err = computeOperationWaitTime(config, removeOp, networkFieldValue.Project, "Removing Network Peering", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, removeOp, networkFieldValue.Project, "Removing Network Peering", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_project_default_network_tier.go b/third_party/terraform/resources/resource_compute_project_default_network_tier.go index 9663bc8ac1ce..222b61fd55b4 100644 --- a/third_party/terraform/resources/resource_compute_project_default_network_tier.go +++ b/third_party/terraform/resources/resource_compute_project_default_network_tier.go @@ -47,14 +47,12 @@ func resourceComputeProjectDefaultNetworkTier() *schema.Resource { } func resourceComputeProjectDefaultNetworkTierCreateOrUpdate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -70,7 +68,7 @@ func resourceComputeProjectDefaultNetworkTierCreateOrUpdate(d *schema.ResourceDa } log.Printf("[DEBUG] SetDefaultNetworkTier: %d (%s)", op.Id, op.SelfLink) - err = computeOperationWaitTime(config, op, projectID, "SetDefaultNetworkTier", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, projectID, "SetDefaultNetworkTier", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("SetDefaultNetworkTier failed: %s", err) } @@ -82,6 +80,11 @@ func resourceComputeProjectDefaultNetworkTierCreateOrUpdate(d *schema.ResourceDa func resourceComputeProjectDefaultNetworkTierRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent projectId := d.Id() diff --git a/third_party/terraform/resources/resource_compute_project_metadata.go b/third_party/terraform/resources/resource_compute_project_metadata.go index 8d2140474a41..bdd0bf2cabcf 100644 --- a/third_party/terraform/resources/resource_compute_project_metadata.go +++ b/third_party/terraform/resources/resource_compute_project_metadata.go @@ -46,14 +46,12 @@ func resourceComputeProjectMetadata() *schema.Resource { } func resourceComputeProjectMetadataCreateOrUpdate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -64,7 +62,7 @@ func resourceComputeProjectMetadataCreateOrUpdate(d *schema.ResourceData, meta i Items: expandComputeMetadata(d.Get("metadata").(map[string]interface{})), } - err = resourceComputeProjectMetadataSet(projectID, config, md, d.Timeout(schema.TimeoutCreate)) + err = resourceComputeProjectMetadataSet(projectID, userAgent, config, md, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("SetCommonInstanceMetadata failed: %s", err) } @@ -76,6 +74,11 @@ func resourceComputeProjectMetadataCreateOrUpdate(d *schema.ResourceData, meta i func resourceComputeProjectMetadataRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent // At import time, we have no state to draw from. We'll wrongly pull the // provider default project if we use a normal getProject, so we need to @@ -107,6 +110,11 @@ func resourceComputeProjectMetadataRead(d *schema.ResourceData, meta interface{} func resourceComputeProjectMetadataDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -114,7 +122,7 @@ func resourceComputeProjectMetadataDelete(d *schema.ResourceData, meta interface } md := &compute.Metadata{} - err = resourceComputeProjectMetadataSet(projectID, config, md, d.Timeout(schema.TimeoutDelete)) + err = resourceComputeProjectMetadataSet(projectID, userAgent, config, md, d.Timeout(schema.TimeoutDelete)) if err != nil { return fmt.Errorf("SetCommonInstanceMetadata failed: %s", err) } @@ -122,7 +130,7 @@ func resourceComputeProjectMetadataDelete(d *schema.ResourceData, meta interface return resourceComputeProjectMetadataRead(d, meta) } -func resourceComputeProjectMetadataSet(projectID string, config *Config, md *compute.Metadata, timeout time.Duration) error { +func resourceComputeProjectMetadataSet(projectID, userAgent string, config *Config, md *compute.Metadata, timeout time.Duration) error { createMD := func() error { log.Printf("[DEBUG] Loading project service: %s", projectID) project, err := config.clientCompute.Projects.Get(projectID).Do() @@ -137,7 +145,7 @@ func resourceComputeProjectMetadataSet(projectID string, config *Config, md *com } log.Printf("[DEBUG] SetCommonMetadata: %d (%s)", op.Id, op.SelfLink) - return computeOperationWaitTime(config, op, project.Name, "SetCommonMetadata", timeout) + return computeOperationWaitTime(config, op, project.Name, "SetCommonMetadata", userAgent, timeout) } err := MetadataRetryWrapper(createMD) diff --git a/third_party/terraform/resources/resource_compute_project_metadata_item.go b/third_party/terraform/resources/resource_compute_project_metadata_item.go index 345a45596951..5fb9ad48d80b 100644 --- a/third_party/terraform/resources/resource_compute_project_metadata_item.go +++ b/third_party/terraform/resources/resource_compute_project_metadata_item.go @@ -56,14 +56,12 @@ func resourceComputeProjectMetadataItem() *schema.Resource { } func resourceComputeProjectMetadataItemCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -73,7 +71,7 @@ func resourceComputeProjectMetadataItemCreate(d *schema.ResourceData, meta inter key := d.Get("key").(string) val := d.Get("value").(string) - err = updateComputeCommonInstanceMetadata(config, projectID, key, &val, d.Timeout(schema.TimeoutCreate), failIfPresent) + err = updateComputeCommonInstanceMetadata(config, projectID, key, userAgent, &val, d.Timeout(schema.TimeoutCreate), failIfPresent) if err != nil { return err } @@ -85,6 +83,11 @@ func resourceComputeProjectMetadataItemCreate(d *schema.ResourceData, meta inter func resourceComputeProjectMetadataItemRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -120,6 +123,11 @@ func resourceComputeProjectMetadataItemRead(d *schema.ResourceData, meta interfa func resourceComputeProjectMetadataItemUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -131,7 +139,7 @@ func resourceComputeProjectMetadataItemUpdate(d *schema.ResourceData, meta inter _, n := d.GetChange("value") new := n.(string) - err = updateComputeCommonInstanceMetadata(config, projectID, key, &new, d.Timeout(schema.TimeoutUpdate), overwritePresent) + err = updateComputeCommonInstanceMetadata(config, projectID, key, userAgent, &new, d.Timeout(schema.TimeoutUpdate), overwritePresent) if err != nil { return err } @@ -141,6 +149,11 @@ func resourceComputeProjectMetadataItemUpdate(d *schema.ResourceData, meta inter func resourceComputeProjectMetadataItemDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent projectID, err := getProject(d, config) if err != nil { @@ -149,7 +162,7 @@ func resourceComputeProjectMetadataItemDelete(d *schema.ResourceData, meta inter key := d.Get("key").(string) - err = updateComputeCommonInstanceMetadata(config, projectID, key, nil, d.Timeout(schema.TimeoutDelete), overwritePresent) + err = updateComputeCommonInstanceMetadata(config, projectID, key, userAgent, nil, d.Timeout(schema.TimeoutDelete), overwritePresent) if err != nil { return err } @@ -158,7 +171,7 @@ func resourceComputeProjectMetadataItemDelete(d *schema.ResourceData, meta inter return nil } -func updateComputeCommonInstanceMetadata(config *Config, projectID string, key string, afterVal *string, timeout time.Duration, failIfPresent metadataPresentBehavior) error { +func updateComputeCommonInstanceMetadata(config *Config, projectID, key, userAgent string, afterVal *string, timeout time.Duration, failIfPresent metadataPresentBehavior) error { updateMD := func() error { log.Printf("[DEBUG] Loading project metadata: %s", projectID) project, err := config.clientCompute.Projects.Get(projectID).Do() @@ -206,7 +219,7 @@ func updateComputeCommonInstanceMetadata(config *Config, projectID string, key s log.Printf("[DEBUG] SetCommonInstanceMetadata: %d (%s)", op.Id, op.SelfLink) - return computeOperationWaitTime(config, op, project.Name, "SetCommonInstanceMetadata", timeout) + return computeOperationWaitTime(config, op, project.Name, "SetCommonInstanceMetadata", userAgent, timeout) } return MetadataRetryWrapper(updateMD) diff --git a/third_party/terraform/resources/resource_compute_region_instance_group_manager.go.erb b/third_party/terraform/resources/resource_compute_region_instance_group_manager.go.erb index a6e1129449a4..4d33de5850e5 100644 --- a/third_party/terraform/resources/resource_compute_region_instance_group_manager.go.erb +++ b/third_party/terraform/resources/resource_compute_region_instance_group_manager.go.erb @@ -314,14 +314,12 @@ func resourceComputeRegionInstanceGroupManager() *schema.Resource { } func resourceComputeRegionInstanceGroupManagerCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -364,7 +362,7 @@ func resourceComputeRegionInstanceGroupManagerCreate(d *schema.ResourceData, met d.SetId(id) // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating InstanceGroupManager", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -412,6 +410,11 @@ func waitForInstancesRefreshFunc(f getInstanceManagerFunc, d *schema.ResourceDat func resourceComputeRegionInstanceGroupManagerRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent manager, err := getRegionalManager(d, meta) if err != nil { return err @@ -497,6 +500,11 @@ func resourceComputeRegionInstanceGroupManagerRead(d *schema.ResourceData, meta func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -548,7 +556,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met return fmt.Errorf("Error updating region managed group instances: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating region managed group instances", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating region managed group instances", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -570,7 +578,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met return fmt.Errorf("Error updating RegionInstanceGroupManager: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating RegionInstanceGroupManager", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating RegionInstanceGroupManager", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -587,7 +595,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met return fmt.Errorf("Error resizing RegionInstanceGroupManager: %s", err) } - err = computeOperationWaitTime(config, op, project, "Resizing RegionInstanceGroupManager", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Resizing RegionInstanceGroupManager", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -600,6 +608,11 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met func resourceComputeRegionInstanceGroupManagerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -620,7 +633,7 @@ func resourceComputeRegionInstanceGroupManagerDelete(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeOperationWaitTime(config, op, project, "Deleting RegionInstanceGroupManager", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting RegionInstanceGroupManager", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return fmt.Errorf("Error waiting for delete to complete: %s", err) } diff --git a/third_party/terraform/resources/resource_compute_router_interface.go b/third_party/terraform/resources/resource_compute_router_interface.go index bb058925ad31..d5705146d920 100644 --- a/third_party/terraform/resources/resource_compute_router_interface.go +++ b/third_party/terraform/resources/resource_compute_router_interface.go @@ -84,14 +84,12 @@ func resourceComputeRouterInterface() *schema.Resource { } func resourceComputeRouterInterfaceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -165,7 +163,7 @@ func resourceComputeRouterInterfaceCreate(d *schema.ResourceData, meta interface return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } d.SetId(fmt.Sprintf("%s/%s/%s", region, routerName, ifaceName)) - err = computeOperationWaitTime(config, op, project, "Patching router", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Patching router", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { d.SetId("") return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) @@ -175,8 +173,12 @@ func resourceComputeRouterInterfaceCreate(d *schema.ResourceData, meta interface } func resourceComputeRouterInterfaceRead(d *schema.ResourceData, meta interface{}) error { - config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -233,8 +235,12 @@ func resourceComputeRouterInterfaceRead(d *schema.ResourceData, meta interface{} } func resourceComputeRouterInterfaceDelete(d *schema.ResourceData, meta interface{}) error { - config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -300,7 +306,7 @@ func resourceComputeRouterInterfaceDelete(d *schema.ResourceData, meta interface return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } - err = computeOperationWaitTime(config, op, project, "Patching router", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Patching router", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) } diff --git a/third_party/terraform/resources/resource_compute_security_policy.go.erb b/third_party/terraform/resources/resource_compute_security_policy.go.erb index 9828238e5ab0..e05c3ada915d 100644 --- a/third_party/terraform/resources/resource_compute_security_policy.go.erb +++ b/third_party/terraform/resources/resource_compute_security_policy.go.erb @@ -186,14 +186,12 @@ func rulesCustomizeDiff(_ context.Context, diff *schema.ResourceDiff, _ interfac } func resourceComputeSecurityPolicyCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -223,7 +221,7 @@ func resourceComputeSecurityPolicyCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Creating SecurityPolicy %q", sp), d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Creating SecurityPolicy %q", sp), userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -233,6 +231,11 @@ func resourceComputeSecurityPolicyCreate(d *schema.ResourceData, meta interface{ func resourceComputeSecurityPolicyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -269,6 +272,11 @@ func resourceComputeSecurityPolicyRead(d *schema.ResourceData, meta interface{}) func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -289,7 +297,7 @@ func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{ return errwrap.Wrapf(fmt.Sprintf("Error updating SecurityPolicy %q: {{err}}", sp), err) } - err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -317,7 +325,7 @@ func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{ return errwrap.Wrapf(fmt.Sprintf("Error updating SecurityPolicy %q: {{err}}", sp), err) } - err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -329,7 +337,7 @@ func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{ return errwrap.Wrapf(fmt.Sprintf("Error updating SecurityPolicy %q: {{err}}", sp), err) } - err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -346,7 +354,7 @@ func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{ return errwrap.Wrapf(fmt.Sprintf("Error updating SecurityPolicy %q: {{err}}", sp), err) } - err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, fmt.Sprintf("Updating SecurityPolicy %q", sp), userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -359,6 +367,11 @@ func resourceComputeSecurityPolicyUpdate(d *schema.ResourceData, meta interface{ func resourceComputeSecurityPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -371,7 +384,7 @@ func resourceComputeSecurityPolicyDelete(d *schema.ResourceData, meta interface{ return errwrap.Wrapf("Error deleting SecurityPolicy: {{err}}", err) } - err = computeOperationWaitTime(config, op, project, "Deleting SecurityPolicy", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting SecurityPolicy", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_shared_vpc_host_project.go b/third_party/terraform/resources/resource_compute_shared_vpc_host_project.go index 70021ae2e05c..1dd95fbf9b9e 100644 --- a/third_party/terraform/resources/resource_compute_shared_vpc_host_project.go +++ b/third_party/terraform/resources/resource_compute_shared_vpc_host_project.go @@ -34,14 +34,12 @@ func resourceComputeSharedVpcHostProject() *schema.Resource { } func resourceComputeSharedVpcHostProjectCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent hostProject := d.Get("project").(string) op, err := config.clientComputeBeta.Projects.EnableXpnHost(hostProject).Do() @@ -51,7 +49,7 @@ func resourceComputeSharedVpcHostProjectCreate(d *schema.ResourceData, meta inte d.SetId(hostProject) - err = computeOperationWaitTime(config, op, hostProject, "Enabling Shared VPC Host", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, hostProject, "Enabling Shared VPC Host", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { d.SetId("") return err @@ -62,6 +60,11 @@ func resourceComputeSharedVpcHostProjectCreate(d *schema.ResourceData, meta inte func resourceComputeSharedVpcHostProjectRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent hostProject := d.Id() @@ -84,6 +87,11 @@ func resourceComputeSharedVpcHostProjectRead(d *schema.ResourceData, meta interf func resourceComputeSharedVpcHostProjectDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent hostProject := d.Get("project").(string) op, err := config.clientComputeBeta.Projects.DisableXpnHost(hostProject).Do() @@ -91,7 +99,7 @@ func resourceComputeSharedVpcHostProjectDelete(d *schema.ResourceData, meta inte return fmt.Errorf("Error disabling Shared VPC Host %q: %s", hostProject, err) } - err = computeOperationWaitTime(config, op, hostProject, "Disabling Shared VPC Host", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, hostProject, "Disabling Shared VPC Host", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_shared_vpc_service_project.go b/third_party/terraform/resources/resource_compute_shared_vpc_service_project.go index c6c01ce8ef51..9cdd000a4c31 100644 --- a/third_party/terraform/resources/resource_compute_shared_vpc_service_project.go +++ b/third_party/terraform/resources/resource_compute_shared_vpc_service_project.go @@ -45,14 +45,12 @@ func resourceComputeSharedVpcServiceProject() *schema.Resource { } func resourceComputeSharedVpcServiceProjectCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientComputeBeta.UserAgent = fmt.Sprintf("%s %s", config.clientComputeBeta.UserAgent, m.ModuleName) + config.clientComputeBeta.UserAgent = userAgent hostProject := d.Get("host_project").(string) serviceProject := d.Get("service_project").(string) @@ -67,7 +65,7 @@ func resourceComputeSharedVpcServiceProjectCreate(d *schema.ResourceData, meta i if err != nil { return err } - err = computeOperationWaitTime(config, op, hostProject, "Enabling Shared VPC Resource", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, hostProject, "Enabling Shared VPC Resource", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -79,6 +77,11 @@ func resourceComputeSharedVpcServiceProjectCreate(d *schema.ResourceData, meta i func resourceComputeSharedVpcServiceProjectRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent split := strings.Split(d.Id(), "/") if len(split) != 2 { @@ -113,6 +116,11 @@ func resourceComputeSharedVpcServiceProjectRead(d *schema.ResourceData, meta int func resourceComputeSharedVpcServiceProjectDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientComputeBeta.UserAgent = userAgent hostProject := d.Get("host_project").(string) serviceProject := d.Get("service_project").(string) @@ -127,6 +135,11 @@ func resourceComputeSharedVpcServiceProjectDelete(d *schema.ResourceData, meta i } func disableXpnResource(d *schema.ResourceData, config *Config, hostProject, project string) error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + req := &computeBeta.ProjectsDisableXpnResourceRequest{ XpnResource: &computeBeta.XpnResourceId{ Id: project, @@ -137,7 +150,7 @@ func disableXpnResource(d *schema.ResourceData, config *Config, hostProject, pro if err != nil { return err } - err = computeOperationWaitTime(config, op, hostProject, "Disabling Shared VPC Resource", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, hostProject, "Disabling Shared VPC Resource", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_compute_target_pool.go b/third_party/terraform/resources/resource_compute_target_pool.go index 704ff743c9b5..c8292976a674 100644 --- a/third_party/terraform/resources/resource_compute_target_pool.go +++ b/third_party/terraform/resources/resource_compute_target_pool.go @@ -179,14 +179,12 @@ func convertInstancesToUrls(d *schema.ResourceData, config *Config, project stri } func resourceComputeTargetPoolCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -237,7 +235,7 @@ func resourceComputeTargetPoolCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - err = computeOperationWaitTime(config, op, project, "Creating Target Pool", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Creating Target Pool", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -246,6 +244,11 @@ func resourceComputeTargetPoolCreate(d *schema.ResourceData, meta interface{}) e func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -286,7 +289,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating health_check: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating Target Pool", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating Target Pool", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -302,7 +305,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating health_check: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating Target Pool", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating Target Pool", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -335,7 +338,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating instances: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating Target Pool", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating Target Pool", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -350,7 +353,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return fmt.Errorf("Error updating instances: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating Target Pool", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating Target Pool", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -367,7 +370,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating backup_pool: %s", err) } - err = computeOperationWaitTime(config, op, project, "Updating Target Pool", d.Timeout(schema.TimeoutUpdate)) + err = computeOperationWaitTime(config, op, project, "Updating Target Pool", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -390,6 +393,11 @@ func convertInstancesFromUrls(urls []string) []string { func resourceComputeTargetPoolRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -448,6 +456,11 @@ func resourceComputeTargetPoolRead(d *schema.ResourceData, meta interface{}) err func resourceComputeTargetPoolDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent region, err := getRegion(d, config) if err != nil { @@ -466,7 +479,7 @@ func resourceComputeTargetPoolDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error deleting TargetPool: %s", err) } - err = computeOperationWaitTime(config, op, project, "Deleting Target Pool", d.Timeout(schema.TimeoutDelete)) + err = computeOperationWaitTime(config, op, project, "Deleting Target Pool", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_container_cluster.go.erb b/third_party/terraform/resources/resource_container_cluster.go.erb index cb66e962a07e..8e5ff791c7cb 100644 --- a/third_party/terraform/resources/resource_container_cluster.go.erb +++ b/third_party/terraform/resources/resource_container_cluster.go.erb @@ -1191,14 +1191,12 @@ func resourceNodeConfigEmptyGuestAccelerator(_ context.Context, diff *schema.Res } func resourceContainerClusterCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientContainerBeta.UserAgent = fmt.Sprintf("%s %s", config.clientContainerBeta.UserAgent, m.ModuleName) + config.clientContainerBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1459,6 +1457,11 @@ func resourceContainerClusterCreate(d *schema.ResourceData, meta interface{}) er func resourceContainerClusterRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1681,6 +1684,11 @@ func resourceContainerClusterRead(d *schema.ResourceData, meta interface{}) erro func resourceContainerClusterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -2455,6 +2463,11 @@ func resourceContainerClusterUpdate(d *schema.ResourceData, meta interface{}) er func resourceContainerClusterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_container_node_pool.go.erb b/third_party/terraform/resources/resource_container_node_pool.go.erb index bf54a4d58cc7..f4526f2bb67e 100644 --- a/third_party/terraform/resources/resource_container_node_pool.go.erb +++ b/third_party/terraform/resources/resource_container_node_pool.go.erb @@ -255,14 +255,12 @@ func extractNodePoolInformation(d *schema.ResourceData, config *Config) (*NodePo } func resourceContainerNodePoolCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientContainerBeta.UserAgent = fmt.Sprintf("%s %s", config.clientContainerBeta.UserAgent, m.ModuleName) + config.clientContainerBeta.UserAgent = userAgent nodePoolInfo, err := extractNodePoolInformation(d, config) if err != nil { @@ -342,6 +340,11 @@ func resourceContainerNodePoolCreate(d *schema.ResourceData, meta interface{}) e func resourceContainerNodePoolRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent nodePoolInfo, err := extractNodePoolInformation(d, config) if err != nil { return err @@ -381,6 +384,11 @@ func resourceContainerNodePoolRead(d *schema.ResourceData, meta interface{}) err func resourceContainerNodePoolUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent nodePoolInfo, err := extractNodePoolInformation(d, config) if err != nil { return err @@ -408,6 +416,11 @@ func resourceContainerNodePoolUpdate(d *schema.ResourceData, meta interface{}) e func resourceContainerNodePoolDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientContainerBeta.UserAgent = userAgent nodePoolInfo, err := extractNodePoolInformation(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_container_registry.go b/third_party/terraform/resources/resource_container_registry.go index c687bda348ea..7074bbb704f1 100644 --- a/third_party/terraform/resources/resource_container_registry.go +++ b/third_party/terraform/resources/resource_container_registry.go @@ -43,14 +43,11 @@ func resourceContainerRegistry() *schema.Resource { } func resourceContainerRegistryCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) project, err := getProject(d, config) if err != nil { @@ -71,7 +68,7 @@ func resourceContainerRegistryCreate(d *schema.ResourceData, meta interface{}) e return err } - _, err = sendRequestWithTimeout(config, "GET", project, url, nil, d.Timeout(schema.TimeoutCreate)) + _, err = sendRequestWithTimeout(config, "GET", project, url, userAgent, nil, d.Timeout(schema.TimeoutCreate)) if err != nil { return err @@ -81,6 +78,11 @@ func resourceContainerRegistryCreate(d *schema.ResourceData, meta interface{}) e func resourceContainerRegistryRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent location := d.Get("location").(string) project, err := getProject(d, config) diff --git a/third_party/terraform/resources/resource_dataflow_flex_template_job.go.erb b/third_party/terraform/resources/resource_dataflow_flex_template_job.go.erb index fc99fdc42388..3bd64c306cbe 100644 --- a/third_party/terraform/resources/resource_dataflow_flex_template_job.go.erb +++ b/third_party/terraform/resources/resource_dataflow_flex_template_job.go.erb @@ -83,14 +83,12 @@ func resourceDataflowFlexTemplateJob() *schema.Resource { // resourceDataflowFlexTemplateJobCreate creates a Flex Template Job from TF code. func resourceDataflowFlexTemplateJobCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDataflow.UserAgent = fmt.Sprintf("%s %s", config.clientDataflow.UserAgent, m.ModuleName) + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -127,6 +125,11 @@ func resourceDataflowFlexTemplateJobCreate(d *schema.ResourceData, meta interfac // resourceDataflowFlexTemplateJobRead reads a Flex Template Job resource. func resourceDataflowFlexTemplateJobRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -175,6 +178,11 @@ func resourceDataflowFlexTemplateJobUpdate(d *schema.ResourceData, meta interfac func resourceDataflowFlexTemplateJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_dataflow_job.go b/third_party/terraform/resources/resource_dataflow_job.go index 207db9ec54dd..0448ce4a6752 100644 --- a/third_party/terraform/resources/resource_dataflow_job.go +++ b/third_party/terraform/resources/resource_dataflow_job.go @@ -221,14 +221,12 @@ func resourceDataflowJobTypeCustomizeDiff(_ context.Context, d *schema.ResourceD } func resourceDataflowJobCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDataflow.UserAgent = fmt.Sprintf("%s %s", config.clientDataflow.UserAgent, m.ModuleName) + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -265,6 +263,11 @@ func resourceDataflowJobCreate(d *schema.ResourceData, meta interface{}) error { func resourceDataflowJobRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -344,6 +347,11 @@ func resourceDataflowJobUpdateByReplacement(d *schema.ResourceData, meta interfa } config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -391,6 +399,11 @@ func resourceDataflowJobUpdateByReplacement(d *schema.ResourceData, meta interfa func resourceDataflowJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataflow.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_dataproc_cluster.go.erb b/third_party/terraform/resources/resource_dataproc_cluster.go.erb index b0be4fa5e237..f67b494a0974 100644 --- a/third_party/terraform/resources/resource_dataproc_cluster.go.erb +++ b/third_party/terraform/resources/resource_dataproc_cluster.go.erb @@ -767,14 +767,12 @@ func acceleratorsSchema() *schema.Resource { } func resourceDataprocClusterCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDataprocBeta.UserAgent = fmt.Sprintf("%s %s", config.clientDataprocBeta.UserAgent, m.ModuleName) + config.clientDataprocBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1169,6 +1167,11 @@ func expandAccelerators(configured []interface{}) []*dataproc.AcceleratorConfig func resourceDataprocClusterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataprocBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1270,6 +1273,11 @@ func resourceDataprocClusterUpdate(d *schema.ResourceData, meta interface{}) err func resourceDataprocClusterRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataprocBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1562,6 +1570,11 @@ func extractInitTimeout(t string) (int, error) { func resourceDataprocClusterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataprocBeta.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_dataproc_job.go b/third_party/terraform/resources/resource_dataproc_job.go index 23c621aaf21f..de1cb136954e 100644 --- a/third_party/terraform/resources/resource_dataproc_job.go +++ b/third_party/terraform/resources/resource_dataproc_job.go @@ -180,14 +180,12 @@ func resourceDataprocJobUpdate(d *schema.ResourceData, meta interface{}) error { } func resourceDataprocJobCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDataproc.UserAgent = fmt.Sprintf("%s %s", config.clientDataproc.UserAgent, m.ModuleName) + config.clientDataproc.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -265,6 +263,11 @@ func resourceDataprocJobCreate(d *schema.ResourceData, meta interface{}) error { func resourceDataprocJobRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataproc.UserAgent = userAgent region := d.Get("region").(string) project, err := getProject(d, config) @@ -341,6 +344,11 @@ func resourceDataprocJobRead(d *schema.ResourceData, meta interface{}) error { func resourceDataprocJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDataproc.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_dns_record_set.go b/third_party/terraform/resources/resource_dns_record_set.go index 22745cd4d7ce..495839ad2898 100644 --- a/third_party/terraform/resources/resource_dns_record_set.go +++ b/third_party/terraform/resources/resource_dns_record_set.go @@ -79,14 +79,12 @@ func resourceDnsRecordSet() *schema.Resource { } func resourceDnsRecordSetCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientDns.UserAgent = fmt.Sprintf("%s %s", config.clientDns.UserAgent, m.ModuleName) + config.clientDns.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -154,6 +152,11 @@ func resourceDnsRecordSetCreate(d *schema.ResourceData, meta interface{}) error func resourceDnsRecordSetRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDns.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -204,6 +207,11 @@ func resourceDnsRecordSetRead(d *schema.ResourceData, meta interface{}) error { func resourceDnsRecordSetDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDns.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -267,6 +275,11 @@ func resourceDnsRecordSetDelete(d *schema.ResourceData, meta interface{}) error func resourceDnsRecordSetUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientDns.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_endpoints_service.go b/third_party/terraform/resources/resource_endpoints_service.go index 95bf31670aaf..a01966bf9bd8 100644 --- a/third_party/terraform/resources/resource_endpoints_service.go +++ b/third_party/terraform/resources/resource_endpoints_service.go @@ -215,14 +215,12 @@ func getEndpointServiceGRPCConfigSource(serviceConfig, protoConfig string) *serv } func resourceEndpointsServiceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientServiceMan.UserAgent = fmt.Sprintf("%s %s", config.clientServiceMan.UserAgent, m.ModuleName) + config.clientServiceMan.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -253,7 +251,7 @@ func resourceEndpointsServiceCreate(d *schema.ResourceData, meta interface{}) er return err } - _, err = serviceManagementOperationWaitTime(config, op, "Creating new ManagedService.", d.Timeout(schema.TimeoutCreate)) + _, err = serviceManagementOperationWaitTime(config, op, "Creating new ManagedService.", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -294,6 +292,12 @@ func resourceEndpointsServiceUpdate(d *schema.ResourceData, meta interface{}) er // we currently only support full rollouts - anyone trying to do incremental // rollouts or A/B testing is going to need a more precise tool than this resource. config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceMan.UserAgent = userAgent + serviceName := d.Get("service_name").(string) log.Printf("[DEBUG] Updating ManagedService %q", serviceName) @@ -318,7 +322,7 @@ func resourceEndpointsServiceUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - s, err := serviceManagementOperationWaitTime(config, op, "Submitting service config.", d.Timeout(schema.TimeoutUpdate)) + s, err := serviceManagementOperationWaitTime(config, op, "Submitting service config.", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -340,7 +344,7 @@ func resourceEndpointsServiceUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - _, err = serviceManagementOperationWaitTime(config, op, "Performing service rollout.", d.Timeout(schema.TimeoutUpdate)) + _, err = serviceManagementOperationWaitTime(config, op, "Performing service rollout.", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -350,6 +354,11 @@ func resourceEndpointsServiceUpdate(d *schema.ResourceData, meta interface{}) er func resourceEndpointsServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceMan.UserAgent = userAgent log.Printf("[DEBUG] Deleting ManagedService %q", d.Id()) @@ -357,13 +366,18 @@ func resourceEndpointsServiceDelete(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - _, err = serviceManagementOperationWaitTime(config, op, "Deleting service.", d.Timeout(schema.TimeoutDelete)) + _, err = serviceManagementOperationWaitTime(config, op, "Deleting service.", userAgent, d.Timeout(schema.TimeoutDelete)) d.SetId("") return err } func resourceEndpointsServiceRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceMan.UserAgent = userAgent log.Printf("[DEBUG] Reading ManagedService %q", d.Id()) diff --git a/third_party/terraform/resources/resource_google_folder.go b/third_party/terraform/resources/resource_google_folder.go index 56ea4b247358..89bed5ac0c1c 100644 --- a/third_party/terraform/resources/resource_google_folder.go +++ b/third_party/terraform/resources/resource_google_folder.go @@ -68,14 +68,12 @@ func resourceGoogleFolder() *schema.Resource { } func resourceGoogleFolderCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManagerV2Beta1.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManagerV2Beta1.UserAgent, m.ModuleName) + config.clientResourceManagerV2Beta1.UserAgent = userAgent displayName := d.Get("display_name").(string) parent := d.Get("parent").(string) @@ -97,7 +95,7 @@ func resourceGoogleFolderCreate(d *schema.ResourceData, meta interface{}) error return err } - err = resourceManagerOperationWaitTime(config, opAsMap, "creating folder", d.Timeout(schema.TimeoutCreate)) + err = resourceManagerOperationWaitTime(config, opAsMap, "creating folder", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating folder '%s' in '%s': %s", displayName, parent, err) } @@ -123,6 +121,11 @@ func resourceGoogleFolderCreate(d *schema.ResourceData, meta interface{}) error func resourceGoogleFolderRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManagerV2Beta1.UserAgent = userAgent folder, err := getGoogleFolder(d.Id(), d, config) if err != nil { @@ -154,6 +157,11 @@ func resourceGoogleFolderRead(d *schema.ResourceData, meta interface{}) error { func resourceGoogleFolderUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManagerV2Beta1.UserAgent = userAgent displayName := d.Get("display_name").(string) d.Partial(true) @@ -189,7 +197,7 @@ func resourceGoogleFolderUpdate(d *schema.ResourceData, meta interface{}) error return err } - err = resourceManagerOperationWaitTime(config, opAsMap, "move folder", d.Timeout(schema.TimeoutUpdate)) + err = resourceManagerOperationWaitTime(config, opAsMap, "move folder", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error moving folder '%s' to '%s': %s", displayName, newParent, err) } @@ -202,9 +210,14 @@ func resourceGoogleFolderUpdate(d *schema.ResourceData, meta interface{}) error func resourceGoogleFolderDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManagerV2Beta1.UserAgent = userAgent displayName := d.Get("display_name").(string) - err := retryTimeDuration(func() error { + err = retryTimeDuration(func() error { _, reqErr := config.clientResourceManagerV2Beta1.Folders.Delete(d.Id()).Do() return reqErr }, d.Timeout(schema.TimeoutDelete)) diff --git a/third_party/terraform/resources/resource_google_folder_organization_policy.go b/third_party/terraform/resources/resource_google_folder_organization_policy.go index a63c17587156..c937277b2e8c 100644 --- a/third_party/terraform/resources/resource_google_folder_organization_policy.go +++ b/third_party/terraform/resources/resource_google_folder_organization_policy.go @@ -78,10 +78,15 @@ func resourceGoogleFolderOrganizationPolicyCreate(d *schema.ResourceData, meta i func resourceGoogleFolderOrganizationPolicyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent folder := canonicalFolderId(d.Get("folder").(string)) var policy *cloudresourcemanager.OrgPolicy - err := retryTimeDuration(func() (getErr error) { + err = retryTimeDuration(func() (getErr error) { policy, getErr = config.clientResourceManager.Folders.GetOrgPolicy(folder, &cloudresourcemanager.GetOrgPolicyRequest{ Constraint: canonicalOrgPolicyConstraint(d.Get("constraint").(string)), }).Do() @@ -130,6 +135,11 @@ func resourceGoogleFolderOrganizationPolicyUpdate(d *schema.ResourceData, meta i func resourceGoogleFolderOrganizationPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent folder := canonicalFolderId(d.Get("folder").(string)) return retryTimeDuration(func() (delErr error) { @@ -141,14 +151,12 @@ func resourceGoogleFolderOrganizationPolicyDelete(d *schema.ResourceData, meta i } func setFolderOrganizationPolicy(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManager.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManager.UserAgent, m.ModuleName) + config.clientResourceManager.UserAgent = userAgent folder := canonicalFolderId(d.Get("folder").(string)) diff --git a/third_party/terraform/resources/resource_google_organization_iam_custom_role.go b/third_party/terraform/resources/resource_google_organization_iam_custom_role.go index 7387983a4077..fbf41ec62dc7 100644 --- a/third_party/terraform/resources/resource_google_organization_iam_custom_role.go +++ b/third_party/terraform/resources/resource_google_organization_iam_custom_role.go @@ -72,14 +72,12 @@ func resourceGoogleOrganizationIamCustomRole() *schema.Resource { } func resourceGoogleOrganizationIamCustomRoleCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent org := d.Get("org_id").(string) roleId := fmt.Sprintf("organizations/%s/roles/%s", org, d.Get("role_id").(string)) @@ -127,6 +125,11 @@ func resourceGoogleOrganizationIamCustomRoleCreate(d *schema.ResourceData, meta func resourceGoogleOrganizationIamCustomRoleRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent role, err := config.clientIAM.Organizations.Roles.Get(d.Id()).Do() if err != nil { @@ -168,6 +171,11 @@ func resourceGoogleOrganizationIamCustomRoleRead(d *schema.ResourceData, meta in func resourceGoogleOrganizationIamCustomRoleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent d.Partial(true) @@ -204,6 +212,11 @@ func resourceGoogleOrganizationIamCustomRoleUpdate(d *schema.ResourceData, meta func resourceGoogleOrganizationIamCustomRoleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent r, err := config.clientIAM.Organizations.Roles.Get(d.Id()).Do() if err == nil && r != nil && r.Deleted && d.Get("deleted").(bool) { diff --git a/third_party/terraform/resources/resource_google_organization_policy.go b/third_party/terraform/resources/resource_google_organization_policy.go index 436c2a502ec6..b2b9c86c958f 100644 --- a/third_party/terraform/resources/resource_google_organization_policy.go +++ b/third_party/terraform/resources/resource_google_organization_policy.go @@ -188,10 +188,15 @@ func resourceGoogleOrganizationPolicyCreate(d *schema.ResourceData, meta interfa func resourceGoogleOrganizationPolicyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent org := "organizations/" + d.Get("org_id").(string) var policy *cloudresourcemanager.OrgPolicy - err := retryTimeDuration(func() (readErr error) { + err = retryTimeDuration(func() (readErr error) { policy, readErr = config.clientResourceManager.Organizations.GetOrgPolicy(org, &cloudresourcemanager.GetOrgPolicyRequest{ Constraint: canonicalOrgPolicyConstraint(d.Get("constraint").(string)), }).Do() @@ -240,9 +245,14 @@ func resourceGoogleOrganizationPolicyUpdate(d *schema.ResourceData, meta interfa func resourceGoogleOrganizationPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent org := "organizations/" + d.Get("org_id").(string) - err := retryTimeDuration(func() error { + err = retryTimeDuration(func() error { _, dErr := config.clientResourceManager.Organizations.ClearOrgPolicy(org, &cloudresourcemanager.ClearOrgPolicyRequest{ Constraint: canonicalOrgPolicyConstraint(d.Get("constraint").(string)), }).Do() @@ -285,14 +295,12 @@ func isOrganizationPolicyUnset(d *schema.ResourceData) bool { } func setOrganizationPolicy(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManager.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManager.UserAgent, m.ModuleName) + config.clientResourceManager.UserAgent = userAgent org := "organizations/" + d.Get("org_id").(string) diff --git a/third_party/terraform/resources/resource_google_project.go b/third_party/terraform/resources/resource_google_project.go index aab74c16aba7..832ec0e94870 100644 --- a/third_party/terraform/resources/resource_google_project.go +++ b/third_party/terraform/resources/resource_google_project.go @@ -101,14 +101,12 @@ func resourceGoogleProject() *schema.Resource { } func resourceGoogleProjectCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManager.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManager.UserAgent, m.ModuleName) + config.clientResourceManager.UserAgent = userAgent if err = resourceGoogleProjectCheckPreRequisites(config, d); err != nil { return fmt.Errorf("failed pre-requisites: %v", err) @@ -151,7 +149,7 @@ func resourceGoogleProjectCreate(d *schema.ResourceData, meta interface{}) error return err } - waitErr := resourceManagerOperationWaitTime(config, opAsMap, "creating folder", d.Timeout(schema.TimeoutCreate)) + waitErr := resourceManagerOperationWaitTime(config, opAsMap, "creating folder", userAgent, d.Timeout(schema.TimeoutCreate)) if waitErr != nil { // The resource wasn't actually created d.SetId("") @@ -181,7 +179,7 @@ func resourceGoogleProjectCreate(d *schema.ResourceData, meta interface{}) error // a network and deleting it in the background. if !d.Get("auto_create_network").(bool) { // The compute API has to be enabled before we can delete a network. - if err = enableServiceUsageProjectServices([]string{"compute.googleapis.com"}, project.ProjectId, config, d.Timeout(schema.TimeoutCreate)); err != nil { + if err = enableServiceUsageProjectServices([]string{"compute.googleapis.com"}, project.ProjectId, userAgent, config, d.Timeout(schema.TimeoutCreate)); err != nil { return errwrap.Wrapf("Error enabling the Compute Engine API required to delete the default network: {{err}} ", err) } @@ -218,6 +216,11 @@ func resourceGoogleProjectCheckPreRequisites(config *Config, d *schema.ResourceD func resourceGoogleProjectRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent parts := strings.Split(d.Id(), "/") pid := parts[len(parts)-1] @@ -336,6 +339,11 @@ func parseFolderId(v interface{}) string { func resourceGoogleProjectUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent parts := strings.Split(d.Id(), "/") pid := parts[len(parts)-1] project_name := d.Get("name").(string) @@ -409,6 +417,11 @@ func updateProject(config *Config, d *schema.ResourceData, projectName string, d func resourceGoogleProjectDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent // Only delete projects if skip_delete isn't set if !d.Get("skip_delete").(bool) { parts := strings.Split(d.Id(), "/") @@ -450,6 +463,11 @@ func resourceProjectImportState(d *schema.ResourceData, meta interface{}) ([]*sc // Delete a compute network along with the firewall rules inside it. func forceDeleteComputeNetwork(d *schema.ResourceData, config *Config, projectId, networkName string) error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + // Read the network from the API so we can get the correct self link format. We can't construct it from the // base path because it might not line up exactly (compute.googleapis.com vs www.googleapis.com) net, err := config.clientCompute.Networks.Get(projectId, networkName).Do() @@ -472,7 +490,7 @@ func forceDeleteComputeNetwork(d *schema.ResourceData, config *Config, projectId if err != nil { return errwrap.Wrapf("Error deleting firewall: {{err}}", err) } - err = computeOperationWaitTime(config, op, projectId, "Deleting Firewall", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, projectId, "Deleting Firewall", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err } @@ -482,7 +500,7 @@ func forceDeleteComputeNetwork(d *schema.ResourceData, config *Config, projectId paginate = token != "" } - return deleteComputeNetwork(projectId, networkName, config) + return deleteComputeNetwork(projectId, networkName, userAgent, config) } func updateProjectBillingAccount(d *schema.ResourceData, config *Config) error { @@ -527,14 +545,14 @@ func updateProjectBillingAccount(d *schema.ResourceData, config *Config) error { name, strings.TrimPrefix(ba.BillingAccountName, "billingAccounts/")) } -func deleteComputeNetwork(project, network string, config *Config) error { +func deleteComputeNetwork(project, network, userAgent string, config *Config) error { op, err := config.clientCompute.Networks.Delete( project, network).Do() if err != nil { return errwrap.Wrapf("Error deleting network: {{err}}", err) } - err = computeOperationWaitTime(config, op, project, "Deleting Network", 10*time.Minute) + err = computeOperationWaitTime(config, op, project, "Deleting Network", userAgent, 10*time.Minute) if err != nil { return err } @@ -554,7 +572,7 @@ func readGoogleProject(d *schema.ResourceData, config *Config) (*cloudresourcema } // Enables services. WARNING: Use BatchRequestEnableServices for better batching if possible. -func enableServiceUsageProjectServices(services []string, project string, config *Config, timeout time.Duration) error { +func enableServiceUsageProjectServices(services []string, project, userAgent string, config *Config, timeout time.Duration) error { // ServiceUsage does not allow more than 20 services to be enabled per // batchEnable API call. See // https://cloud.google.com/service-usage/docs/reference/rest/v1/services/batchEnable @@ -569,7 +587,7 @@ func enableServiceUsageProjectServices(services []string, project string, config return nil } - if err := doEnableServicesRequest(nextBatch, project, config, timeout); err != nil { + if err := doEnableServicesRequest(nextBatch, project, userAgent, config, timeout); err != nil { return err } log.Printf("[DEBUG] Finished enabling next batch of %d project services: %+v", len(nextBatch), nextBatch) @@ -579,7 +597,7 @@ func enableServiceUsageProjectServices(services []string, project string, config return waitForServiceUsageEnabledServices(services, project, config, timeout) } -func doEnableServicesRequest(services []string, project string, config *Config, timeout time.Duration) error { +func doEnableServicesRequest(services []string, project, userAgent string, config *Config, timeout time.Duration) error { var op *serviceusage.Operation err := retryTimeDuration(func() error { @@ -602,7 +620,7 @@ func doEnableServicesRequest(services []string, project string, config *Config, return errwrap.Wrapf("failed to send enable services request: {{err}}", err) } // Poll for the API to return - waitErr := serviceUsageOperationWait(config, op, project, fmt.Sprintf("Enable Project %q Services: %+v", project, services), timeout) + waitErr := serviceUsageOperationWait(config, op, project, fmt.Sprintf("Enable Project %q Services: %+v", project, services), userAgent, timeout) if waitErr != nil { return waitErr } diff --git a/third_party/terraform/resources/resource_google_project_iam_custom_role.go b/third_party/terraform/resources/resource_google_project_iam_custom_role.go index f5531c8c5cdf..1e8c597c5bd7 100644 --- a/third_party/terraform/resources/resource_google_project_iam_custom_role.go +++ b/third_party/terraform/resources/resource_google_project_iam_custom_role.go @@ -75,14 +75,12 @@ func resourceGoogleProjectIamCustomRole() *schema.Resource { } func resourceGoogleProjectIamCustomRoleCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -135,6 +133,11 @@ func extractProjectFromProjectIamCustomRoleID(id string) string { func resourceGoogleProjectIamCustomRoleRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent project := extractProjectFromProjectIamCustomRoleID(d.Id()) @@ -173,6 +176,11 @@ func resourceGoogleProjectIamCustomRoleRead(d *schema.ResourceData, meta interfa func resourceGoogleProjectIamCustomRoleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent d.Partial(true) @@ -208,8 +216,13 @@ func resourceGoogleProjectIamCustomRoleUpdate(d *schema.ResourceData, meta inter func resourceGoogleProjectIamCustomRoleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent - _, err := config.clientIAM.Projects.Roles.Delete(d.Id()).Do() + _, err = config.clientIAM.Projects.Roles.Delete(d.Id()).Do() if err != nil { return fmt.Errorf("Error deleting the custom project role %s: %s", d.Get("title").(string), err) } diff --git a/third_party/terraform/resources/resource_google_project_organization_policy.go b/third_party/terraform/resources/resource_google_project_organization_policy.go index ffd0aa12dc43..390a551f024a 100644 --- a/third_party/terraform/resources/resource_google_project_organization_policy.go +++ b/third_party/terraform/resources/resource_google_project_organization_policy.go @@ -74,10 +74,15 @@ func resourceGoogleProjectOrganizationPolicyCreate(d *schema.ResourceData, meta func resourceGoogleProjectOrganizationPolicyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent project := prefixedProject(d.Get("project").(string)) var policy *cloudresourcemanager.OrgPolicy - err := retryTimeDuration(func() (readErr error) { + err = retryTimeDuration(func() (readErr error) { policy, readErr = config.clientResourceManager.Projects.GetOrgPolicy(project, &cloudresourcemanager.GetOrgPolicyRequest{ Constraint: canonicalOrgPolicyConstraint(d.Get("constraint").(string)), }).Do() @@ -126,6 +131,11 @@ func resourceGoogleProjectOrganizationPolicyUpdate(d *schema.ResourceData, meta func resourceGoogleProjectOrganizationPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent project := prefixedProject(d.Get("project").(string)) return retryTimeDuration(func() error { @@ -137,14 +147,12 @@ func resourceGoogleProjectOrganizationPolicyDelete(d *schema.ResourceData, meta } func setProjectOrganizationPolicy(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientResourceManager.UserAgent = fmt.Sprintf("%s %s", config.clientResourceManager.UserAgent, m.ModuleName) + config.clientResourceManager.UserAgent = userAgent project := prefixedProject(d.Get("project").(string)) diff --git a/third_party/terraform/resources/resource_google_project_service.go b/third_party/terraform/resources/resource_google_project_service.go index 70ca5e07028a..5b87df366de0 100644 --- a/third_party/terraform/resources/resource_google_project_service.go +++ b/third_party/terraform/resources/resource_google_project_service.go @@ -118,14 +118,12 @@ func resourceGoogleProjectServiceImport(d *schema.ResourceData, m interface{}) ( } func resourceGoogleProjectServiceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -164,6 +162,11 @@ func resourceGoogleProjectServiceCreate(d *schema.ResourceData, meta interface{} func resourceGoogleProjectServiceRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientResourceManager.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -220,6 +223,11 @@ func resourceGoogleProjectServiceRead(d *schema.ResourceData, meta interface{}) func resourceGoogleProjectServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceUsage.UserAgent = userAgent if disable := d.Get("disable_on_destroy"); !(disable.(bool)) { log.Printf("[WARN] Project service %q disable_on_destroy is false, skip disabling service", d.Id()) @@ -252,6 +260,11 @@ func resourceGoogleProjectServiceUpdate(d *schema.ResourceData, meta interface{} // Disables a project service. func disableServiceUsageProjectService(service, project string, d *schema.ResourceData, config *Config, disableDependentServices bool) error { err := retryTimeDuration(func() error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + name := fmt.Sprintf("projects/%s/services/%s", project, service) servicesDisableCall := config.clientServiceUsage.Services.Disable(name, &serviceusage.DisableServiceRequest{ DisableDependentServices: disableDependentServices, @@ -264,7 +277,7 @@ func disableServiceUsageProjectService(service, project string, d *schema.Resour return err } // Wait for the operation to complete - waitErr := serviceUsageOperationWait(config, sop, project, "api to disable", d.Timeout(schema.TimeoutDelete)) + waitErr := serviceUsageOperationWait(config, sop, project, "api to disable", userAgent, d.Timeout(schema.TimeoutDelete)) if waitErr != nil { return waitErr } diff --git a/third_party/terraform/resources/resource_google_service_account.go b/third_party/terraform/resources/resource_google_service_account.go index 6cc8d2ea261d..ea09be418b23 100644 --- a/third_party/terraform/resources/resource_google_service_account.go +++ b/third_party/terraform/resources/resource_google_service_account.go @@ -68,14 +68,12 @@ func resourceGoogleServiceAccount() *schema.Resource { } func resourceGoogleServiceAccountCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -116,6 +114,11 @@ func resourceGoogleServiceAccountCreate(d *schema.ResourceData, meta interface{} func resourceGoogleServiceAccountRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent // Confirm the service account exists sa, err := config.clientIAM.Projects.ServiceAccounts.Get(d.Id()).Do() @@ -149,8 +152,13 @@ func resourceGoogleServiceAccountRead(d *schema.ResourceData, meta interface{}) func resourceGoogleServiceAccountDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent name := d.Id() - _, err := config.clientIAM.Projects.ServiceAccounts.Delete(name).Do() + _, err = config.clientIAM.Projects.ServiceAccounts.Delete(name).Do() if err != nil { return err } @@ -160,6 +168,11 @@ func resourceGoogleServiceAccountDelete(d *schema.ResourceData, meta interface{} func resourceGoogleServiceAccountUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent sa, err := config.clientIAM.Projects.ServiceAccounts.Get(d.Id()).Do() if err != nil { return fmt.Errorf("Error retrieving service account %q: %s", d.Id(), err) diff --git a/third_party/terraform/resources/resource_google_service_account_key.go b/third_party/terraform/resources/resource_google_service_account_key.go index dc5821897dec..9e68ad647c9e 100644 --- a/third_party/terraform/resources/resource_google_service_account_key.go +++ b/third_party/terraform/resources/resource_google_service_account_key.go @@ -87,14 +87,12 @@ func resourceGoogleServiceAccountKey() *schema.Resource { } func resourceGoogleServiceAccountKeyCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientIAM.UserAgent = fmt.Sprintf("%s %s", config.clientIAM.UserAgent, m.ModuleName) + config.clientIAM.UserAgent = userAgent serviceAccountName, err := serviceAccountFQN(d.Get("service_account_id").(string), d, config) if err != nil { @@ -143,6 +141,11 @@ func resourceGoogleServiceAccountKeyCreate(d *schema.ResourceData, meta interfac func resourceGoogleServiceAccountKeyRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent publicKeyType := d.Get("public_key_type").(string) @@ -177,8 +180,13 @@ func resourceGoogleServiceAccountKeyRead(d *schema.ResourceData, meta interface{ func resourceGoogleServiceAccountKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientIAM.UserAgent = userAgent - _, err := config.clientIAM.Projects.ServiceAccounts.Keys.Delete(d.Id()).Do() + _, err = config.clientIAM.Projects.ServiceAccounts.Keys.Delete(d.Id()).Do() if err != nil { if err = handleNotFoundError(err, d, fmt.Sprintf("Service Account Key %q", d.Id())); err == nil { diff --git a/third_party/terraform/resources/resource_iam_audit_config.go b/third_party/terraform/resources/resource_iam_audit_config.go index 59e58aa06abe..be0f3420ce9d 100644 --- a/third_party/terraform/resources/resource_iam_audit_config.go +++ b/third_party/terraform/resources/resource_iam_audit_config.go @@ -135,14 +135,12 @@ func iamAuditConfigImport(resourceIdParser resourceIdParserFunc) schema.StateFun func resourceIamAuditConfigCreateUpdate(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) func(*schema.ResourceData, interface{}) error { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { @@ -172,6 +170,11 @@ func resourceIamAuditConfigCreateUpdate(newUpdaterFunc newResourceIamUpdaterFunc func resourceIamAuditConfigDelete(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) schema.DeleteFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_iam_binding.go.erb b/third_party/terraform/resources/resource_iam_binding.go.erb index 0a7066d1487c..3c47fd637688 100644 --- a/third_party/terraform/resources/resource_iam_binding.go.erb +++ b/third_party/terraform/resources/resource_iam_binding.go.erb @@ -82,15 +82,7 @@ func ResourceIamBindingWithBatching(parentSpecificSchema map[string]*schema.Sche func resourceIamBindingCreateUpdate(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) func(*schema.ResourceData, interface{}) error { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) - if err != nil { - return err - } config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) - updater, err := newUpdaterFunc(d, config) if err != nil { return err @@ -125,6 +117,11 @@ func resourceIamBindingCreateUpdate(newUpdaterFunc newResourceIamUpdaterFunc, en func resourceIamBindingRead(newUpdaterFunc newResourceIamUpdaterFunc) schema.ReadFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { return err @@ -258,6 +255,11 @@ func iamBindingImport(newUpdaterFunc newResourceIamUpdaterFunc, resourceIdParser func resourceIamBindingDelete(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) schema.DeleteFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_iam_member.go.erb b/third_party/terraform/resources/resource_iam_member.go.erb index 15b4e55032e2..bba22a1defee 100644 --- a/third_party/terraform/resources/resource_iam_member.go.erb +++ b/third_party/terraform/resources/resource_iam_member.go.erb @@ -167,14 +167,12 @@ func getResourceIamMember(d *schema.ResourceData) *cloudresourcemanager.Binding func resourceIamMemberCreate(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) schema.CreateFunc { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { @@ -208,6 +206,12 @@ func resourceIamMemberCreate(newUpdaterFunc newResourceIamUpdaterFunc, enableBat func resourceIamMemberRead(newUpdaterFunc newResourceIamUpdaterFunc) schema.ReadFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent + updater, err := newUpdaterFunc(d, config) if err != nil { return err @@ -269,6 +273,12 @@ func resourceIamMemberRead(newUpdaterFunc newResourceIamUpdaterFunc) schema.Read func resourceIamMemberDelete(newUpdaterFunc newResourceIamUpdaterFunc, enableBatching bool) schema.DeleteFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent + updater, err := newUpdaterFunc(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_iam_policy.go.erb b/third_party/terraform/resources/resource_iam_policy.go.erb index 86bb2dcf6d99..b6df6c94bfa3 100644 --- a/third_party/terraform/resources/resource_iam_policy.go.erb +++ b/third_party/terraform/resources/resource_iam_policy.go.erb @@ -54,14 +54,12 @@ func ResourceIamPolicy(parentSpecificSchema map[string]*schema.Schema, newUpdate func ResourceIamPolicyCreate(newUpdaterFunc newResourceIamUpdaterFunc) schema.CreateFunc { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.userAgent = userAgent updater, err := newUpdaterFunc(d, config) if err != nil { @@ -80,6 +78,12 @@ func ResourceIamPolicyCreate(newUpdaterFunc newResourceIamUpdaterFunc) schema.Cr func ResourceIamPolicyRead(newUpdaterFunc newResourceIamUpdaterFunc) schema.ReadFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent + updater, err := newUpdaterFunc(d, config) if err != nil { return err @@ -104,6 +108,12 @@ func ResourceIamPolicyRead(newUpdaterFunc newResourceIamUpdaterFunc) schema.Read func ResourceIamPolicyUpdate(newUpdaterFunc newResourceIamUpdaterFunc) schema.UpdateFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent + updater, err := newUpdaterFunc(d, config) if err != nil { return err @@ -122,6 +132,12 @@ func ResourceIamPolicyUpdate(newUpdaterFunc newResourceIamUpdaterFunc) schema.Up func ResourceIamPolicyDelete(newUpdaterFunc newResourceIamUpdaterFunc) schema.DeleteFunc { return func(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.userAgent = userAgent + updater, err := newUpdaterFunc(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_logging_billing_account_sink.go b/third_party/terraform/resources/resource_logging_billing_account_sink.go index 94797a37b9d4..88d1f599deab 100644 --- a/third_party/terraform/resources/resource_logging_billing_account_sink.go +++ b/third_party/terraform/resources/resource_logging_billing_account_sink.go @@ -27,14 +27,12 @@ func resourceLoggingBillingAccountSink() *schema.Resource { } func resourceLoggingBillingAccountSinkCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientLogging.UserAgent = fmt.Sprintf("%s %s", config.clientLogging.UserAgent, m.ModuleName) + config.clientLogging.UserAgent = userAgent id, sink := expandResourceLoggingSink(d, "billingAccounts", d.Get("billing_account").(string)) @@ -50,6 +48,11 @@ func resourceLoggingBillingAccountSinkCreate(d *schema.ResourceData, meta interf func resourceLoggingBillingAccountSinkRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, err := config.clientLogging.BillingAccounts.Sinks.Get(d.Id()).Do() if err != nil { @@ -65,11 +68,16 @@ func resourceLoggingBillingAccountSinkRead(d *schema.ResourceData, meta interfac func resourceLoggingBillingAccountSinkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, updateMask := expandResourceLoggingSinkForUpdate(d) // The API will reject any requests that don't explicitly set 'uniqueWriterIdentity' to true. - _, err := config.clientLogging.BillingAccounts.Sinks.Patch(d.Id(), sink). + _, err = config.clientLogging.BillingAccounts.Sinks.Patch(d.Id(), sink). UpdateMask(updateMask).UniqueWriterIdentity(true).Do() if err != nil { return err @@ -80,8 +88,13 @@ func resourceLoggingBillingAccountSinkUpdate(d *schema.ResourceData, meta interf func resourceLoggingBillingAccountSinkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent - _, err := config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() + _, err = config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_logging_bucket_config.go b/third_party/terraform/resources/resource_logging_bucket_config.go index 03259f4ad23f..3b40d94ee95e 100644 --- a/third_party/terraform/resources/resource_logging_bucket_config.go +++ b/third_party/terraform/resources/resource_logging_bucket_config.go @@ -121,6 +121,10 @@ func resourceLoggingBucketConfigAcquire(iDFunc loggingBucketConfigIDFunc) func(* func resourceLoggingBucketConfigRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } log.Printf("[DEBUG] Fetching logging bucket config: %#v", d.Id()) @@ -129,7 +133,7 @@ func resourceLoggingBucketConfigRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, userAgent, nil) if err != nil { log.Printf("[WARN] Unable to acquire logging bucket config at %s", d.Id()) @@ -151,11 +155,14 @@ func resourceLoggingBucketConfigRead(d *schema.ResourceData, meta interface{}) e } return nil - } func resourceLoggingBucketConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } obj := make(map[string]interface{}) @@ -179,7 +186,7 @@ func resourceLoggingBucketConfigUpdate(d *schema.ResourceData, meta interface{}) return err } - _, err = sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", "", url, userAgent, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Logging Bucket Config %q: %s", d.Id(), err) } diff --git a/third_party/terraform/resources/resource_logging_exclusion.go b/third_party/terraform/resources/resource_logging_exclusion.go index c91eb4a02bc6..b9d94c2ca9ff 100644 --- a/third_party/terraform/resources/resource_logging_exclusion.go +++ b/third_party/terraform/resources/resource_logging_exclusion.go @@ -50,15 +50,7 @@ func ResourceLoggingExclusion(parentSpecificSchema map[string]*schema.Schema, ne func resourceLoggingExclusionCreate(newUpdaterFunc newResourceLoggingExclusionUpdaterFunc) schema.CreateFunc { return func(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) - if err != nil { - return err - } config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) - updater, err := newUpdaterFunc(d, config) if err != nil { return err diff --git a/third_party/terraform/resources/resource_logging_folder_sink.go b/third_party/terraform/resources/resource_logging_folder_sink.go index 6e912772b2a2..bde5af423e8a 100644 --- a/third_party/terraform/resources/resource_logging_folder_sink.go +++ b/third_party/terraform/resources/resource_logging_folder_sink.go @@ -39,14 +39,12 @@ func resourceLoggingFolderSink() *schema.Resource { } func resourceLoggingFolderSinkCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientLogging.UserAgent = fmt.Sprintf("%s %s", config.clientLogging.UserAgent, m.ModuleName) + config.clientLogging.UserAgent = userAgent folder := parseFolderId(d.Get("folder")) id, sink := expandResourceLoggingSink(d, "folders", folder) @@ -64,6 +62,11 @@ func resourceLoggingFolderSinkCreate(d *schema.ResourceData, meta interface{}) e func resourceLoggingFolderSinkRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, err := config.clientLogging.Folders.Sinks.Get(d.Id()).Do() if err != nil { @@ -83,6 +86,11 @@ func resourceLoggingFolderSinkRead(d *schema.ResourceData, meta interface{}) err func resourceLoggingFolderSinkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, updateMask := expandResourceLoggingSinkForUpdate(d) // It seems the API might actually accept an update for include_children; this is not in the list of updatable @@ -91,7 +99,7 @@ func resourceLoggingFolderSinkUpdate(d *schema.ResourceData, meta interface{}) e sink.ForceSendFields = append(sink.ForceSendFields, "IncludeChildren") // The API will reject any requests that don't explicitly set 'uniqueWriterIdentity' to true. - _, err := config.clientLogging.Folders.Sinks.Patch(d.Id(), sink). + _, err = config.clientLogging.Folders.Sinks.Patch(d.Id(), sink). UpdateMask(updateMask).UniqueWriterIdentity(true).Do() if err != nil { return err @@ -102,8 +110,13 @@ func resourceLoggingFolderSinkUpdate(d *schema.ResourceData, meta interface{}) e func resourceLoggingFolderSinkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent - _, err := config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() + _, err = config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_logging_organization_sink.go b/third_party/terraform/resources/resource_logging_organization_sink.go index 2d5f311b8220..a36d49603ab8 100644 --- a/third_party/terraform/resources/resource_logging_organization_sink.go +++ b/third_party/terraform/resources/resource_logging_organization_sink.go @@ -38,14 +38,12 @@ func resourceLoggingOrganizationSink() *schema.Resource { } func resourceLoggingOrganizationSinkCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientLogging.UserAgent = fmt.Sprintf("%s %s", config.clientLogging.UserAgent, m.ModuleName) + config.clientLogging.UserAgent = userAgent org := d.Get("org_id").(string) id, sink := expandResourceLoggingSink(d, "organizations", org) @@ -64,6 +62,11 @@ func resourceLoggingOrganizationSinkCreate(d *schema.ResourceData, meta interfac func resourceLoggingOrganizationSinkRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, err := config.clientLogging.Organizations.Sinks.Get(d.Id()).Do() if err != nil { @@ -83,6 +86,11 @@ func resourceLoggingOrganizationSinkRead(d *schema.ResourceData, meta interface{ func resourceLoggingOrganizationSinkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, updateMask := expandResourceLoggingSinkForUpdate(d) // It seems the API might actually accept an update for include_children; this is not in the list of updatable @@ -91,7 +99,7 @@ func resourceLoggingOrganizationSinkUpdate(d *schema.ResourceData, meta interfac sink.ForceSendFields = append(sink.ForceSendFields, "IncludeChildren") // The API will reject any requests that don't explicitly set 'uniqueWriterIdentity' to true. - _, err := config.clientLogging.Organizations.Sinks.Patch(d.Id(), sink). + _, err = config.clientLogging.Organizations.Sinks.Patch(d.Id(), sink). UpdateMask(updateMask).UniqueWriterIdentity(true).Do() if err != nil { return err @@ -102,8 +110,13 @@ func resourceLoggingOrganizationSinkUpdate(d *schema.ResourceData, meta interfac func resourceLoggingOrganizationSinkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent - _, err := config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() + _, err = config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_logging_project_sink.go b/third_party/terraform/resources/resource_logging_project_sink.go index 55f1d6e8b17b..7631e76378a8 100644 --- a/third_party/terraform/resources/resource_logging_project_sink.go +++ b/third_party/terraform/resources/resource_logging_project_sink.go @@ -37,14 +37,12 @@ func resourceLoggingProjectSink() *schema.Resource { } func resourceLoggingProjectSinkCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientLogging.UserAgent = fmt.Sprintf("%s %s", config.clientLogging.UserAgent, m.ModuleName) + config.clientLogging.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -66,6 +64,11 @@ func resourceLoggingProjectSinkCreate(d *schema.ResourceData, meta interface{}) func resourceLoggingProjectSinkRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -99,11 +102,16 @@ func resourceLoggingProjectSinkRead(d *schema.ResourceData, meta interface{}) er func resourceLoggingProjectSinkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent sink, updateMask := expandResourceLoggingSinkForUpdate(d) uniqueWriterIdentity := d.Get("unique_writer_identity").(bool) - _, err := config.clientLogging.Projects.Sinks.Patch(d.Id(), sink). + _, err = config.clientLogging.Projects.Sinks.Patch(d.Id(), sink). UpdateMask(updateMask).UniqueWriterIdentity(uniqueWriterIdentity).Do() if err != nil { return err @@ -114,8 +122,13 @@ func resourceLoggingProjectSinkUpdate(d *schema.ResourceData, meta interface{}) func resourceLoggingProjectSinkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientLogging.UserAgent = userAgent - _, err := config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() + _, err = config.clientLogging.Projects.Sinks.Delete(d.Id()).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_monitoring_dashboard.go b/third_party/terraform/resources/resource_monitoring_dashboard.go index f9d872e84cd9..ef5b72ad9725 100644 --- a/third_party/terraform/resources/resource_monitoring_dashboard.go +++ b/third_party/terraform/resources/resource_monitoring_dashboard.go @@ -72,14 +72,11 @@ func resourceMonitoringDashboard() *schema.Resource { } func resourceMonitoringDashboardCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) obj, err := structure.ExpandJsonFromString(d.Get("dashboard_json").(string)) if err != nil { @@ -95,7 +92,7 @@ func resourceMonitoringDashboardCreate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + res, err := sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating Dashboard: %s", err) } @@ -111,6 +108,10 @@ func resourceMonitoringDashboardCreate(d *schema.ResourceData, meta interface{}) func resourceMonitoringDashboardRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } url := config.MonitoringBasePath + "v1/" + d.Id() @@ -119,7 +120,7 @@ func resourceMonitoringDashboardRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + res, err := sendRequest(config, "GET", project, url, userAgent, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringDashboard %q", d.Id())) } @@ -141,6 +142,10 @@ func resourceMonitoringDashboardRead(d *schema.ResourceData, meta interface{}) e func resourceMonitoringDashboardUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } o, n := d.GetChange("dashboard_json") oObj, err := structure.ExpandJsonFromString(o.(string)) @@ -160,7 +165,7 @@ func resourceMonitoringDashboardUpdate(d *schema.ResourceData, meta interface{}) } url := config.MonitoringBasePath + "v1/" + d.Id() - _, err = sendRequestWithTimeout(config, "PATCH", project, url, nObj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, userAgent, nObj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating Dashboard %q: %s", d.Id(), err) } @@ -170,6 +175,10 @@ func resourceMonitoringDashboardUpdate(d *schema.ResourceData, meta interface{}) func resourceMonitoringDashboardDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } url := config.MonitoringBasePath + "v1/" + d.Id() @@ -178,7 +187,7 @@ func resourceMonitoringDashboardDelete(d *schema.ResourceData, meta interface{}) return err } - _, err = sendRequestWithTimeout(config, "DELETE", project, url, nil, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + _, err = sendRequestWithTimeout(config, "DELETE", project, userAgent, url, nil, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringDashboard %q", d.Id())) } diff --git a/third_party/terraform/resources/resource_project_service_identity.go.erb b/third_party/terraform/resources/resource_project_service_identity.go.erb index 90e8ff24be36..d075d3c5da9f 100644 --- a/third_party/terraform/resources/resource_project_service_identity.go.erb +++ b/third_party/terraform/resources/resource_project_service_identity.go.erb @@ -43,14 +43,11 @@ func resourceProjectServiceIdentity() *schema.Resource { } func resourceProjectServiceIdentityCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) url, err := replaceVars(d, config, "{{ServiceUsageBasePath}}projects/{{project}}/services/{{service}}:generateServiceIdentity") if err != nil { @@ -69,14 +66,14 @@ func resourceProjectServiceIdentityCreate(d *schema.ResourceData, meta interface billingProject = bp } - res, err := sendRequestWithTimeout(config, "POST", billingProject, url, nil, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, userAgent, nil, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Service Identity: %s", err) } var opRes map[string]interface{} err = serviceUsageOperationWaitTimeWithResponse( - config, res, &opRes, project, "Creating Service Identity", + config, res, &opRes, project, "Creating Service Identity", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return err diff --git a/third_party/terraform/resources/resource_runtimeconfig_config.go b/third_party/terraform/resources/resource_runtimeconfig_config.go index ae2d1d24604b..9f186cc293f1 100644 --- a/third_party/terraform/resources/resource_runtimeconfig_config.go +++ b/third_party/terraform/resources/resource_runtimeconfig_config.go @@ -48,14 +48,12 @@ func resourceRuntimeconfigConfig() *schema.Resource { } func resourceRuntimeconfigConfigCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientRuntimeconfig.UserAgent = fmt.Sprintf("%s %s", config.clientRuntimeconfig.UserAgent, m.ModuleName) + config.clientRuntimeconfig.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -84,6 +82,11 @@ func resourceRuntimeconfigConfigCreate(d *schema.ResourceData, meta interface{}) func resourceRuntimeconfigConfigRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent fullName := d.Id() runConfig, err := config.clientRuntimeconfig.Projects.Configs.Get(fullName).Do() @@ -121,6 +124,11 @@ func resourceRuntimeconfigConfigRead(d *schema.ResourceData, meta interface{}) e func resourceRuntimeconfigConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent // Update works more like an 'overwrite' method - we build a new runtimeconfig.RuntimeConfig struct and it becomes // the new config. This means our Update logic looks an awful lot like Create (and hence, doesn't use @@ -133,7 +141,7 @@ func resourceRuntimeconfigConfigUpdate(d *schema.ResourceData, meta interface{}) runtimeConfig.Description = v.(string) } - _, err := config.clientRuntimeconfig.Projects.Configs.Update(fullName, &runtimeConfig).Do() + _, err = config.clientRuntimeconfig.Projects.Configs.Update(fullName, &runtimeConfig).Do() if err != nil { return err } @@ -142,10 +150,15 @@ func resourceRuntimeconfigConfigUpdate(d *schema.ResourceData, meta interface{}) func resourceRuntimeconfigConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent fullName := d.Id() - _, err := config.clientRuntimeconfig.Projects.Configs.Delete(fullName).Do() + _, err = config.clientRuntimeconfig.Projects.Configs.Delete(fullName).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_runtimeconfig_variable.go b/third_party/terraform/resources/resource_runtimeconfig_variable.go index e325a7c7858f..98851b84f0be 100644 --- a/third_party/terraform/resources/resource_runtimeconfig_variable.go +++ b/third_party/terraform/resources/resource_runtimeconfig_variable.go @@ -64,14 +64,12 @@ func resourceRuntimeconfigVariable() *schema.Resource { } func resourceRuntimeconfigVariableCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientRuntimeconfig.UserAgent = fmt.Sprintf("%s %s", config.clientRuntimeconfig.UserAgent, m.ModuleName) + config.clientRuntimeconfig.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -94,6 +92,11 @@ func resourceRuntimeconfigVariableCreate(d *schema.ResourceData, meta interface{ func resourceRuntimeconfigVariableRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent fullName := d.Id() createdVariable, err := config.clientRuntimeconfig.Projects.Configs.Variables.Get(fullName).Do() @@ -106,6 +109,11 @@ func resourceRuntimeconfigVariableRead(d *schema.ResourceData, meta interface{}) func resourceRuntimeconfigVariableUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent project, err := getProject(d, config) if err != nil { return err @@ -129,10 +137,16 @@ func resourceRuntimeconfigVariableUpdate(d *schema.ResourceData, meta interface{ } func resourceRuntimeconfigVariableDelete(d *schema.ResourceData, meta interface{}) error { - fullName := d.Id() config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientRuntimeconfig.UserAgent = userAgent + + fullName := d.Id() - _, err := config.clientRuntimeconfig.Projects.Configs.Variables.Delete(fullName).Do() + _, err = config.clientRuntimeconfig.Projects.Configs.Variables.Delete(fullName).Do() if err != nil { return err } diff --git a/third_party/terraform/resources/resource_service_networking_connection.go b/third_party/terraform/resources/resource_service_networking_connection.go index 1224f458513b..1cc08d51c846 100644 --- a/third_party/terraform/resources/resource_service_networking_connection.go +++ b/third_party/terraform/resources/resource_service_networking_connection.go @@ -65,14 +65,12 @@ func resourceServiceNetworkingConnection() *schema.Resource { } func resourceServiceNetworkingConnectionCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientServiceNetworking.UserAgent = fmt.Sprintf("%s %s", config.clientServiceNetworking.UserAgent, m.ModuleName) + config.clientServiceNetworking.UserAgent = userAgent network := d.Get("network").(string) serviceNetworkingNetworkName, err := retrieveServiceNetworkingNetworkName(d, config, network) @@ -105,7 +103,7 @@ func resourceServiceNetworkingConnectionCreate(d *schema.ResourceData, meta inte return err } - if err := serviceNetworkingOperationWaitTime(config, op, "Create Service Networking Connection", d.Timeout(schema.TimeoutCreate)); err != nil { + if err := serviceNetworkingOperationWaitTime(config, op, "Create Service Networking Connection", userAgent, d.Timeout(schema.TimeoutCreate)); err != nil { return err } @@ -120,6 +118,11 @@ func resourceServiceNetworkingConnectionCreate(d *schema.ResourceData, meta inte func resourceServiceNetworkingConnectionRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceNetworking.UserAgent = userAgent connectionId, err := parseConnectionId(d.Id()) if err != nil { @@ -169,6 +172,11 @@ func resourceServiceNetworkingConnectionRead(d *schema.ResourceData, meta interf func resourceServiceNetworkingConnectionUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientServiceNetworking.UserAgent = userAgent connectionId, err := parseConnectionId(d.Id()) if err != nil { @@ -195,7 +203,7 @@ func resourceServiceNetworkingConnectionUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - if err := serviceNetworkingOperationWaitTime(config, op, "Update Service Networking Connection", d.Timeout(schema.TimeoutUpdate)); err != nil { + if err := serviceNetworkingOperationWaitTime(config, op, "Update Service Networking Connection", userAgent, d.Timeout(schema.TimeoutUpdate)); err != nil { return err } } @@ -204,6 +212,10 @@ func resourceServiceNetworkingConnectionUpdate(d *schema.ResourceData, meta inte func resourceServiceNetworkingConnectionDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } network := d.Get("network").(string) serviceNetworkingNetworkName, err := retrieveServiceNetworkingNetworkName(d, config, network) @@ -222,7 +234,7 @@ func resourceServiceNetworkingConnectionDelete(d *schema.ResourceData, meta inte } project := networkFieldValue.Project - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + res, err := sendRequestWithTimeout(config, "POST", project, url, userAgent, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ServiceNetworkingConnection %q", d.Id())) } @@ -234,7 +246,7 @@ func resourceServiceNetworkingConnectionDelete(d *schema.ResourceData, meta inte } err = computeOperationWaitTime( - config, op, project, "Updating Network", d.Timeout(schema.TimeoutDelete)) + config, op, project, "Updating Network", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_sql_database_instance.go.erb b/third_party/terraform/resources/resource_sql_database_instance.go.erb index 2c7058ff6109..9ce1ca4a1ee7 100644 --- a/third_party/terraform/resources/resource_sql_database_instance.go.erb +++ b/third_party/terraform/resources/resource_sql_database_instance.go.erb @@ -632,14 +632,12 @@ func pitrPostgresOnlyCustomizeDiff(_ context.Context, diff *schema.ResourceDiff, } func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientSqlAdmin.UserAgent = fmt.Sprintf("%s %s", config.clientSqlAdmin.UserAgent, m.ModuleName) + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -706,7 +704,7 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{}) } d.SetId(id) - err = sqlAdminOperationWaitTime(config, op, project, "Create Instance", d.Timeout(schema.TimeoutCreate)) + err = sqlAdminOperationWaitTime(config, op, project, "Create Instance", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { d.SetId("") return err @@ -733,7 +731,7 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{}) err = retry(func() error { op, err = config.clientSqlAdmin.Users.Delete(project, instance.Name).Host(u.Host).Name(u.Name).Do() if err == nil { - err = sqlAdminOperationWaitTime(config, op, project, "Delete default root User", d.Timeout(schema.TimeoutCreate)) + err = sqlAdminOperationWaitTime(config, op, project, "Delete default root User", userAgent, d.Timeout(schema.TimeoutCreate)) } return err }) @@ -904,6 +902,11 @@ func expandBackupConfiguration(configured []interface{}) *sqladmin.BackupConfigu func resourceSqlDatabaseInstanceRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -999,6 +1002,11 @@ func resourceSqlDatabaseInstanceRead(d *schema.ResourceData, meta interface{}) e func resourceSqlDatabaseInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1026,7 +1034,7 @@ func resourceSqlDatabaseInstanceUpdate(d *schema.ResourceData, meta interface{}) return fmt.Errorf("Error, failed to update instance settings for %s: %s", instance.Name, err) } - err = sqlAdminOperationWaitTime(config, op, project, "Update Instance", d.Timeout(schema.TimeoutUpdate)) + err = sqlAdminOperationWaitTime(config, op, project, "Update Instance", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return err } @@ -1036,6 +1044,11 @@ func resourceSqlDatabaseInstanceUpdate(d *schema.ResourceData, meta interface{}) func resourceSqlDatabaseInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -1055,7 +1068,7 @@ func resourceSqlDatabaseInstanceDelete(d *schema.ResourceData, meta interface{}) if rerr != nil { return rerr } - err = sqlAdminOperationWaitTime(config, op, project, "Delete Instance", d.Timeout(schema.TimeoutDelete)) + err = sqlAdminOperationWaitTime(config, op, project, "Delete Instance", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/resources/resource_sql_ssl_cert.go b/third_party/terraform/resources/resource_sql_ssl_cert.go index df557010c54c..06bdf1f87495 100644 --- a/third_party/terraform/resources/resource_sql_ssl_cert.go +++ b/third_party/terraform/resources/resource_sql_ssl_cert.go @@ -92,14 +92,12 @@ func resourceSqlSslCert() *schema.Resource { } func resourceSqlSslCertCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientSqlAdmin.UserAgent = fmt.Sprintf("%s %s", config.clientSqlAdmin.UserAgent, m.ModuleName) + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -121,7 +119,7 @@ func resourceSqlSslCertCreate(d *schema.ResourceData, meta interface{}) error { "ssl cert %s into instance %s: %s", commonName, instance, err) } - err = sqlAdminOperationWaitTime(config, resp.Operation, project, "Create Ssl Cert", d.Timeout(schema.TimeoutCreate)) + err = sqlAdminOperationWaitTime(config, resp.Operation, project, "Create Ssl Cert", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error, failure waiting for creation of %q "+ "in %q: %s", commonName, instance, err) @@ -146,6 +144,11 @@ func resourceSqlSslCertCreate(d *schema.ResourceData, meta interface{}) error { func resourceSqlSslCertRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -199,6 +202,11 @@ func resourceSqlSslCertRead(d *schema.ResourceData, meta interface{}) error { func resourceSqlSslCertDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -219,7 +227,7 @@ func resourceSqlSslCertDelete(d *schema.ResourceData, meta interface{}) error { instance, err) } - err = sqlAdminOperationWaitTime(config, op, project, "Delete Ssl Cert", d.Timeout(schema.TimeoutDelete)) + err = sqlAdminOperationWaitTime(config, op, project, "Delete Ssl Cert", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return fmt.Errorf("Error, failure waiting for deletion of ssl cert %q "+ diff --git a/third_party/terraform/resources/resource_sql_user.go b/third_party/terraform/resources/resource_sql_user.go index a85630b0a925..e41dc5b8a392 100644 --- a/third_party/terraform/resources/resource_sql_user.go +++ b/third_party/terraform/resources/resource_sql_user.go @@ -70,14 +70,12 @@ func resourceSqlUser() *schema.Resource { } func resourceSqlUserCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientSqlAdmin.UserAgent = fmt.Sprintf("%s %s", config.clientSqlAdmin.UserAgent, m.ModuleName) + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -115,7 +113,7 @@ func resourceSqlUserCreate(d *schema.ResourceData, meta interface{}) error { // for which user.Host is an empty string. That's okay. d.SetId(fmt.Sprintf("%s/%s/%s", user.Name, user.Host, user.Instance)) - err = sqlAdminOperationWaitTime(config, op, project, "Insert User", d.Timeout(schema.TimeoutCreate)) + err = sqlAdminOperationWaitTime(config, op, project, "Insert User", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error, failure waiting for insertion of %s "+ @@ -127,6 +125,11 @@ func resourceSqlUserCreate(d *schema.ResourceData, meta interface{}) error { func resourceSqlUserRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -184,6 +187,11 @@ func resourceSqlUserRead(d *schema.ResourceData, meta interface{}) error { func resourceSqlUserUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent if d.HasChange("password") { project, err := getProject(d, config) @@ -216,7 +224,7 @@ func resourceSqlUserUpdate(d *schema.ResourceData, meta interface{}) error { "user %s into user %s: %s", name, instance, err) } - err = sqlAdminOperationWaitTime(config, op, project, "Insert User", d.Timeout(schema.TimeoutUpdate)) + err = sqlAdminOperationWaitTime(config, op, project, "Insert User", userAgent, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error, failure waiting for update of %s "+ @@ -231,6 +239,11 @@ func resourceSqlUserUpdate(d *schema.ResourceData, meta interface{}) error { func resourceSqlUserDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientSqlAdmin.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -251,7 +264,7 @@ func resourceSqlUserDelete(d *schema.ResourceData, meta interface{}) error { return err } - if err := sqlAdminOperationWaitTime(config, op, project, "Delete User", d.Timeout(schema.TimeoutDelete)); err != nil { + if err := sqlAdminOperationWaitTime(config, op, project, "Delete User", userAgent, d.Timeout(schema.TimeoutDelete)); err != nil { return err } return nil diff --git a/third_party/terraform/resources/resource_storage_bucket.go b/third_party/terraform/resources/resource_storage_bucket.go index 3ed269c22a3b..1ddaa07a4a52 100644 --- a/third_party/terraform/resources/resource_storage_bucket.go +++ b/third_party/terraform/resources/resource_storage_bucket.go @@ -352,14 +352,12 @@ func isPolicyLocked(_ context.Context, old, new, _ interface{}) bool { } func resourceStorageBucketCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -472,6 +470,11 @@ func resourceStorageBucketCreate(d *schema.ResourceData, meta interface{}) error func resourceStorageBucketUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent sb := &storage.Bucket{} @@ -601,6 +604,11 @@ func resourceStorageBucketUpdate(d *schema.ResourceData, meta interface{}) error func resourceStorageBucketRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent // Get the bucket and acl bucket := d.Get("name").(string) @@ -710,6 +718,11 @@ func resourceStorageBucketRead(d *schema.ResourceData, meta interface{}) error { func resourceStorageBucketDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent // Get the bucket bucket := d.Get("name").(string) @@ -783,7 +796,7 @@ func resourceStorageBucketDelete(d *schema.ResourceData, meta interface{}) error } // remove empty bucket - err := resource.Retry(1*time.Minute, func() *resource.RetryError { + err = resource.Retry(1*time.Minute, func() *resource.RetryError { err := config.clientStorage.Buckets.Delete(bucket).Do() if err == nil { return nil diff --git a/third_party/terraform/resources/resource_storage_bucket_acl.go b/third_party/terraform/resources/resource_storage_bucket_acl.go index d263f32c98ba..4a9420a55f25 100644 --- a/third_party/terraform/resources/resource_storage_bucket_acl.go +++ b/third_party/terraform/resources/resource_storage_bucket_acl.go @@ -106,14 +106,12 @@ func getRoleEntityPair(role_entity string) (*RoleEntity, error) { } func resourceStorageBucketAclCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) predefined_acl := "" @@ -214,6 +212,11 @@ func resourceStorageBucketAclCreate(d *schema.ResourceData, meta interface{}) er func resourceStorageBucketAclRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) @@ -253,6 +256,11 @@ func resourceStorageBucketAclRead(d *schema.ResourceData, meta interface{}) erro func resourceStorageBucketAclUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) @@ -347,6 +355,11 @@ func resourceStorageBucketAclUpdate(d *schema.ResourceData, meta interface{}) er func resourceStorageBucketAclDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) diff --git a/third_party/terraform/resources/resource_storage_bucket_object.go b/third_party/terraform/resources/resource_storage_bucket_object.go index d470365824a2..2d7b6bdafeab 100644 --- a/third_party/terraform/resources/resource_storage_bucket_object.go +++ b/third_party/terraform/resources/resource_storage_bucket_object.go @@ -186,14 +186,12 @@ func objectGetId(object *storage.Object) string { } func resourceStorageBucketObjectCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) name := d.Get("name").(string) @@ -257,6 +255,11 @@ func resourceStorageBucketObjectCreate(d *schema.ResourceData, meta interface{}) func resourceStorageBucketObjectRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) name := d.Get("name").(string) @@ -317,6 +320,11 @@ func resourceStorageBucketObjectRead(d *schema.ResourceData, meta interface{}) e func resourceStorageBucketObjectDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) name := d.Get("name").(string) @@ -324,7 +332,7 @@ func resourceStorageBucketObjectDelete(d *schema.ResourceData, meta interface{}) objectsService := storage.NewObjectsService(config.clientStorage) DeleteCall := objectsService.Delete(bucket, name) - err := DeleteCall.Do() + err = DeleteCall.Do() if err != nil { if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 { diff --git a/third_party/terraform/resources/resource_storage_default_object_acl.go b/third_party/terraform/resources/resource_storage_default_object_acl.go index 54b05600b413..c7b5276c97ee 100644 --- a/third_party/terraform/resources/resource_storage_default_object_acl.go +++ b/third_party/terraform/resources/resource_storage_default_object_acl.go @@ -34,14 +34,12 @@ func resourceStorageDefaultObjectAcl() *schema.Resource { } func resourceStorageDefaultObjectAclCreateUpdate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) defaultObjectAcl := []*storage.ObjectAccessControl{} @@ -84,6 +82,11 @@ func resourceStorageDefaultObjectAclCreateUpdate(d *schema.ResourceData, meta in func resourceStorageDefaultObjectAclRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) res, err := config.clientStorage.Buckets.Get(bucket).Projection("full").Do() @@ -109,6 +112,11 @@ func resourceStorageDefaultObjectAclRead(d *schema.ResourceData, meta interface{ func resourceStorageDefaultObjectAclDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent lockName, err := replaceVars(d, config, "storage/buckets/{{bucket}}") if err != nil { diff --git a/third_party/terraform/resources/resource_storage_notification.go b/third_party/terraform/resources/resource_storage_notification.go index babe87d2f4f9..8ffc5d54a43e 100644 --- a/third_party/terraform/resources/resource_storage_notification.go +++ b/third_party/terraform/resources/resource_storage_notification.go @@ -88,14 +88,12 @@ func resourceStorageNotification() *schema.Resource { } func resourceStorageNotificationCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientStorage.UserAgent = fmt.Sprintf("%s %s", config.clientStorage.UserAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) @@ -129,6 +127,11 @@ func resourceStorageNotificationCreate(d *schema.ResourceData, meta interface{}) func resourceStorageNotificationRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket, notificationID := resourceStorageNotificationParseID(d.Id()) @@ -167,10 +170,15 @@ func resourceStorageNotificationRead(d *schema.ResourceData, meta interface{}) e func resourceStorageNotificationDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket, notificationID := resourceStorageNotificationParseID(d.Id()) - err := config.clientStorage.Notifications.Delete(bucket, notificationID).Do() + err = config.clientStorage.Notifications.Delete(bucket, notificationID).Do() if err != nil { return fmt.Errorf("Error deleting notification configuration %s for bucket %s: %v", notificationID, bucket, err) } diff --git a/third_party/terraform/resources/resource_storage_object_acl.go b/third_party/terraform/resources/resource_storage_object_acl.go index 1a6c9784d578..a4d44ac5e337 100644 --- a/third_party/terraform/resources/resource_storage_object_acl.go +++ b/third_party/terraform/resources/resource_storage_object_acl.go @@ -110,14 +110,12 @@ func getObjectAclId(object string) string { } func resourceStorageObjectAclCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.userAgent = fmt.Sprintf("%s %s", config.userAgent, m.ModuleName) + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) object := d.Get("object").(string) @@ -172,6 +170,11 @@ func resourceStorageObjectAclCreate(d *schema.ResourceData, meta interface{}) er func resourceStorageObjectAclRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) object := d.Get("object").(string) @@ -192,6 +195,11 @@ func resourceStorageObjectAclRead(d *schema.ResourceData, meta interface{}) erro func resourceStorageObjectAclUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) object := d.Get("object").(string) @@ -243,6 +251,11 @@ func resourceStorageObjectAclUpdate(d *schema.ResourceData, meta interface{}) er func resourceStorageObjectAclDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorage.UserAgent = userAgent bucket := d.Get("bucket").(string) object := d.Get("object").(string) diff --git a/third_party/terraform/resources/resource_storage_transfer_job.go b/third_party/terraform/resources/resource_storage_transfer_job.go index 3b304d97d559..dd63d168640f 100644 --- a/third_party/terraform/resources/resource_storage_transfer_job.go +++ b/third_party/terraform/resources/resource_storage_transfer_job.go @@ -373,19 +373,17 @@ func diffSuppressEmptyStartTimeOfDay(k, old, new string, d *schema.ResourceData) } func resourceStorageTransferJobCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) + config.clientStorageTransfer.UserAgent = userAgent project, err := getProject(d, config) if err != nil { return err } - config.clientStorageTransfer.UserAgent = fmt.Sprintf("%s %s", config.clientStorageTransfer.UserAgent, m.ModuleName) transferJob := &storagetransfer.TransferJob{ Description: d.Get("description").(string), @@ -419,6 +417,11 @@ func resourceStorageTransferJobCreate(d *schema.ResourceData, meta interface{}) func resourceStorageTransferJobRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorageTransfer.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -466,6 +469,11 @@ func resourceStorageTransferJobRead(d *schema.ResourceData, meta interface{}) er func resourceStorageTransferJobUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorageTransfer.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -521,6 +529,11 @@ func resourceStorageTransferJobUpdate(d *schema.ResourceData, meta interface{}) func resourceStorageTransferJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientStorageTransfer.UserAgent = userAgent project, err := getProject(d, config) if err != nil { diff --git a/third_party/terraform/resources/resource_usage_export_bucket.go b/third_party/terraform/resources/resource_usage_export_bucket.go index 6c08e3db7013..1be53c360a07 100644 --- a/third_party/terraform/resources/resource_usage_export_bucket.go +++ b/third_party/terraform/resources/resource_usage_export_bucket.go @@ -49,6 +49,11 @@ func resourceProjectUsageBucket() *schema.Resource { func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -79,14 +84,12 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er } func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) error { - var m providerMeta - - err := d.GetProviderMeta(&m) + config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return err } - config := meta.(*Config) - config.clientCompute.UserAgent = fmt.Sprintf("%s %s", config.clientCompute.UserAgent, m.ModuleName) + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -101,7 +104,7 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) return err } d.SetId(project) - err = computeOperationWaitTime(config, op, project, "Setting usage export bucket.", d.Timeout(schema.TimeoutCreate)) + err = computeOperationWaitTime(config, op, project, "Setting usage export bucket.", userAgent, d.Timeout(schema.TimeoutCreate)) if err != nil { d.SetId("") return err @@ -116,6 +119,11 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + config.clientCompute.UserAgent = userAgent project, err := getProject(d, config) if err != nil { @@ -128,7 +136,7 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{}) } err = computeOperationWaitTime(config, op, project, - "Setting usage export bucket to nil, automatically disabling usage export.", d.Timeout(schema.TimeoutDelete)) + "Setting usage export bucket to nil, automatically disabling usage export.", userAgent, d.Timeout(schema.TimeoutDelete)) if err != nil { return err } diff --git a/third_party/terraform/tests/resource_access_context_manager_access_level_test.go.erb b/third_party/terraform/tests/resource_access_context_manager_access_level_test.go.erb index fb566e1baa7d..7c59d61f5bbc 100644 --- a/third_party/terraform/tests/resource_access_context_manager_access_level_test.go.erb +++ b/third_party/terraform/tests/resource_access_context_manager_access_level_test.go.erb @@ -74,7 +74,7 @@ func testAccCheckAccessContextManagerAccessLevelDestroyProducer(t *testing.T) fu return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("AccessLevel still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_access_context_manager_access_levels_test.go b/third_party/terraform/tests/resource_access_context_manager_access_levels_test.go index 40624dc5b132..2dd27d045b79 100644 --- a/third_party/terraform/tests/resource_access_context_manager_access_levels_test.go +++ b/third_party/terraform/tests/resource_access_context_manager_access_levels_test.go @@ -61,7 +61,7 @@ func testAccCheckAccessContextManagerAccessLevelsDestroyProducer(t *testing.T) f return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("AccessLevels still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_access_context_manager_access_policy_test.go.erb b/third_party/terraform/tests/resource_access_context_manager_access_policy_test.go.erb index 84a09c44f113..38313b9b824d 100644 --- a/third_party/terraform/tests/resource_access_context_manager_access_policy_test.go.erb +++ b/third_party/terraform/tests/resource_access_context_manager_access_policy_test.go.erb @@ -41,7 +41,7 @@ func testSweepAccessContextManagerPolicies(region string) error { parent := neturl.QueryEscape(fmt.Sprintf("organizations/%s", testOrg)) listUrl := fmt.Sprintf("%saccessPolicies?parent=%s", config.AccessContextManagerBasePath, parent) - resp, err := sendRequest(config, "GET", "", listUrl, nil) + resp, err := sendRequest(config, "GET", "", listUrl, config.userAgent, nil) if err != nil && !isGoogleApiErrorWithCode(err, 404) { log.Printf("unable to list AccessPolicies for organization %q: %v", testOrg, err) return nil @@ -66,7 +66,7 @@ func testSweepAccessContextManagerPolicies(region string) error { log.Printf("[DEBUG] Deleting test Access Policies %q", policy["name"]) policyUrl := config.AccessContextManagerBasePath + policy["name"].(string) - if _, err := sendRequest(config, "DELETE", "", policyUrl, nil); err != nil && !isGoogleApiErrorWithCode(err, 404) { + if _, err := sendRequest(config, "DELETE", "", policyUrl, config.userAgent, nil); err != nil && !isGoogleApiErrorWithCode(err, 404) { log.Printf("unable to delete access policy %q", policy["name"].(string)) return nil } @@ -143,7 +143,7 @@ func testAccCheckAccessContextManagerAccessPolicyDestroyProducer(t *testing.T) f return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("AccessPolicy still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_access_context_manager_service_perimeter_resource_test.go b/third_party/terraform/tests/resource_access_context_manager_service_perimeter_resource_test.go index 07869a457a8d..f11a029e5dd6 100644 --- a/third_party/terraform/tests/resource_access_context_manager_service_perimeter_resource_test.go +++ b/third_party/terraform/tests/resource_access_context_manager_service_perimeter_resource_test.go @@ -59,7 +59,7 @@ func testAccCheckAccessContextManagerServicePerimeterResourceDestroyProducer(t * return err } - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return err } diff --git a/third_party/terraform/tests/resource_access_context_manager_service_perimeter_test.go.erb b/third_party/terraform/tests/resource_access_context_manager_service_perimeter_test.go.erb index cab2066418a2..c51b7a32cfd5 100644 --- a/third_party/terraform/tests/resource_access_context_manager_service_perimeter_test.go.erb +++ b/third_party/terraform/tests/resource_access_context_manager_service_perimeter_test.go.erb @@ -97,7 +97,7 @@ func testAccCheckAccessContextManagerServicePerimeterDestroyProducer(t *testing. return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("ServicePerimeter still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_access_context_manager_services_perimeters_test.go b/third_party/terraform/tests/resource_access_context_manager_services_perimeters_test.go index b783c2a3dbe7..73faada6fbc4 100644 --- a/third_party/terraform/tests/resource_access_context_manager_services_perimeters_test.go +++ b/third_party/terraform/tests/resource_access_context_manager_services_perimeters_test.go @@ -60,7 +60,7 @@ func testAccCheckAccessContextManagerServicePerimetersDestroyProducer(t *testing return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("ServicePerimeters still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_active_directory_domain_trust_test.go b/third_party/terraform/tests/resource_active_directory_domain_trust_test.go index b03fe121e61e..6eebafdea4fc 100644 --- a/third_party/terraform/tests/resource_active_directory_domain_trust_test.go +++ b/third_party/terraform/tests/resource_active_directory_domain_trust_test.go @@ -86,7 +86,7 @@ func testAccCheckActiveDirectoryDomainTrustDestroyProducer(t *testing.T) func(s return err } - res, _ := sendRequest(config, "GET", "", url, nil) + res, _ := sendRequest(config, "GET", "", url, config.userAgent, nil) var v interface{} var ok bool diff --git a/third_party/terraform/tests/resource_app_engine_app_version_sweeper_test.go b/third_party/terraform/tests/resource_app_engine_app_version_sweeper_test.go index 5d614ed4e49e..747f14a110fd 100644 --- a/third_party/terraform/tests/resource_app_engine_app_version_sweeper_test.go +++ b/third_party/terraform/tests/resource_app_engine_app_version_sweeper_test.go @@ -33,7 +33,7 @@ func testSweepAppEngineAppVersion(region string) error { } servicesUrl := "https://appengine.googleapis.com/v1/apps/" + config.Project + "/services" - res, err := sendRequest(config, "GET", config.Project, servicesUrl, nil) + res, err := sendRequest(config, "GET", config.Project, servicesUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error in response from request %s: %s", servicesUrl, err) return nil @@ -66,7 +66,7 @@ func testSweepAppEngineAppVersion(region string) error { deleteUrl := servicesUrl + "/" + id // Don't wait on operations as we may have a lot to delete - _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, nil) + _, err = sendRequest(config, "DELETE", config.Project, deleteUrl, config.userAgent, nil) if err != nil { log.Printf("[INFO][SWEEPER_LOG] Error deleting for url %s : %s", deleteUrl, err) } else { diff --git a/third_party/terraform/tests/resource_bigquery_data_transfer_config_test.go b/third_party/terraform/tests/resource_bigquery_data_transfer_config_test.go index dacbfec9a20f..b6f009ba7726 100644 --- a/third_party/terraform/tests/resource_bigquery_data_transfer_config_test.go +++ b/third_party/terraform/tests/resource_bigquery_data_transfer_config_test.go @@ -135,7 +135,7 @@ func testAccCheckBigqueryDataTransferConfigDestroyProducer(t *testing.T) func(s return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("BigqueryDataTransferConfig still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_bigquery_dataset_access_test.go b/third_party/terraform/tests/resource_bigquery_dataset_access_test.go index f1276a2ae09d..b71115cd62fb 100644 --- a/third_party/terraform/tests/resource_bigquery_dataset_access_test.go +++ b/third_party/terraform/tests/resource_bigquery_dataset_access_test.go @@ -224,7 +224,7 @@ func testAccCheckBigQueryDatasetAccess(t *testing.T, n string, expected map[stri return err } - ds, err := sendRequest(config, "GET", "", url, nil) + ds, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return err } diff --git a/third_party/terraform/tests/resource_binaryauthorization_policy_test.go.erb b/third_party/terraform/tests/resource_binaryauthorization_policy_test.go.erb index a6d415873a4d..b2b00e59af10 100644 --- a/third_party/terraform/tests/resource_binaryauthorization_policy_test.go.erb +++ b/third_party/terraform/tests/resource_binaryauthorization_policy_test.go.erb @@ -166,7 +166,7 @@ func testAccCheckBinaryAuthorizationPolicyDefault(t *testing.T, pid string) reso return func(s *terraform.State) error { config := googleProviderConfig(t) url := fmt.Sprintf("https://binaryauthorization.googleapis.com/v1beta1/projects/%s/policy", pid) - pol, err := sendRequest(config, "GET", "", url, nil) + pol, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return err } diff --git a/third_party/terraform/tests/resource_composer_environment_test.go.erb b/third_party/terraform/tests/resource_composer_environment_test.go.erb index 57d16ec690b0..075a7ef34cbc 100644 --- a/third_party/terraform/tests/resource_composer_environment_test.go.erb +++ b/third_party/terraform/tests/resource_composer_environment_test.go.erb @@ -982,7 +982,7 @@ func testSweepComposerEnvironments(config *Config) error { allErrors = multierror.Append(allErrors, fmt.Errorf("Unable to delete environment %q: %s", e.Name, deleteErr)) continue } - waitErr := composerOperationWaitTime(config, op, config.Project, "Sweeping old test environments", 10*time.Minute) + waitErr := composerOperationWaitTime(config, op, config.Project, "Sweeping old test environments", config.userAgent, 10*time.Minute) if waitErr != nil { allErrors = multierror.Append(allErrors, fmt.Errorf("Unable to delete environment %q: %s", e.Name, waitErr)) } @@ -1084,7 +1084,7 @@ func testAccCheckClearComposerEnvironmentFirewalls(t *testing.T, networkName str } waitErr := computeOperationWaitTime(config, op, config.Project, - "Sweeping test composer environment firewalls", 10) + "Sweeping test composer environment firewalls", config.userAgent, 10) if waitErr != nil { allErrors = multierror.Append(allErrors, fmt.Errorf("Error while waiting to delete firewall %q: %s", firewall.Name, waitErr)) diff --git a/third_party/terraform/tests/resource_compute_backend_bucket_signed_url_key_test.go b/third_party/terraform/tests/resource_compute_backend_bucket_signed_url_key_test.go index 6759006aac5d..829471afbd1c 100644 --- a/third_party/terraform/tests/resource_compute_backend_bucket_signed_url_key_test.go +++ b/third_party/terraform/tests/resource_compute_backend_bucket_signed_url_key_test.go @@ -95,7 +95,7 @@ func checkComputeBackendBucketSignedUrlKeyExists(t *testing.T, s *terraform.Stat return false, err } - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return false, err } diff --git a/third_party/terraform/tests/resource_compute_backend_service_signed_url_key_test.go b/third_party/terraform/tests/resource_compute_backend_service_signed_url_key_test.go index c3cf4067358c..73f7ea2886fb 100644 --- a/third_party/terraform/tests/resource_compute_backend_service_signed_url_key_test.go +++ b/third_party/terraform/tests/resource_compute_backend_service_signed_url_key_test.go @@ -95,7 +95,7 @@ func checkComputeBackendServiceSignedUrlKeyExists(t *testing.T, s *terraform.Sta return false, err } - res, err := sendRequest(config, "GET", "", url, nil) + res, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err != nil { return false, err } diff --git a/third_party/terraform/tests/resource_compute_instance_migrate_test.go b/third_party/terraform/tests/resource_compute_instance_migrate_test.go index a37c78785099..f586f0da27de 100644 --- a/third_party/terraform/tests/resource_compute_instance_migrate_test.go +++ b/third_party/terraform/tests/resource_compute_instance_migrate_test.go @@ -107,7 +107,7 @@ func TestAccComputeInstanceMigrateState(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -180,7 +180,7 @@ func TestAccComputeInstanceMigrateState_bootDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -248,7 +248,7 @@ func TestAccComputeInstanceMigrateState_v4FixBootDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -301,7 +301,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromSource(t *testing.T) { if err != nil { t.Fatalf("Error creating disk: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "disk to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "disk to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -333,7 +333,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromSource(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr = computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr = computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -382,7 +382,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromSource(t *testing.T if err != nil { t.Fatalf("Error creating disk: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "disk to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "disk to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -414,7 +414,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromSource(t *testing.T if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr = computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr = computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -483,7 +483,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromEncryptionKey(t *testing if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -552,7 +552,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromEncryptionKey(t *te if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -623,7 +623,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromAutoDeleteAndImage(t *te if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -696,7 +696,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromAutoDeleteAndImage( if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -764,7 +764,7 @@ func TestAccComputeInstanceMigrateState_scratchDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -829,7 +829,7 @@ func TestAccComputeInstanceMigrateState_v4FixScratchDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", 4*time.Minute) + waitErr := computeOperationWaitTime(config, op, config.Project, "instance to create", config.userAgent, 4*time.Minute) if waitErr != nil { t.Fatal(waitErr) } @@ -908,7 +908,7 @@ func cleanUpInstance(config *Config, instanceName, zone string) { } // Wait for the operation to complete - opErr := computeOperationWaitTime(config, op, config.Project, "instance to delete", 4*time.Minute) + opErr := computeOperationWaitTime(config, op, config.Project, "instance to delete", config.userAgent, 4*time.Minute) if opErr != nil { log.Printf("[WARNING] Error deleting instance %q, dangling resources may exist: %s", instanceName, opErr) } @@ -922,7 +922,7 @@ func cleanUpDisk(config *Config, diskName, zone string) { } // Wait for the operation to complete - opErr := computeOperationWaitTime(config, op, config.Project, "disk to delete", 4*time.Minute) + opErr := computeOperationWaitTime(config, op, config.Project, "disk to delete", config.userAgent, 4*time.Minute) if opErr != nil { log.Printf("[WARNING] Error deleting disk %q, dangling resources may exist: %s", diskName, opErr) } diff --git a/third_party/terraform/tests/resource_compute_instance_test.go.erb b/third_party/terraform/tests/resource_compute_instance_test.go.erb index f28700b891fb..6d69f1046174 100644 --- a/third_party/terraform/tests/resource_compute_instance_test.go.erb +++ b/third_party/terraform/tests/resource_compute_instance_test.go.erb @@ -1915,7 +1915,7 @@ func testAccCheckComputeInstanceUpdateMachineType(t *testing.T, n string) resour if err != nil { return fmt.Errorf("Could not stop instance: %s", err) } - err = computeOperationWaitTime(config, op, config.Project, "Waiting on stop", 20*time.Minute) + err = computeOperationWaitTime(config, op, config.Project, "Waiting on stop", config.userAgent, 20*time.Minute) if err != nil { return fmt.Errorf("Could not stop instance: %s", err) } @@ -1929,7 +1929,7 @@ func testAccCheckComputeInstanceUpdateMachineType(t *testing.T, n string) resour if err != nil { return fmt.Errorf("Could not change machine type: %s", err) } - err = computeOperationWaitTime(config, op, config.Project, "Waiting machine type change", 20*time.Minute) + err = computeOperationWaitTime(config, op, config.Project, "Waiting machine type change", config.userAgent, 20*time.Minute) if err != nil { return fmt.Errorf("Could not change machine type: %s", err) } diff --git a/third_party/terraform/tests/resource_compute_network_endpoint_test.go.erb b/third_party/terraform/tests/resource_compute_network_endpoint_test.go.erb index ffd8fadb4734..c0c9f5233603 100644 --- a/third_party/terraform/tests/resource_compute_network_endpoint_test.go.erb +++ b/third_party/terraform/tests/resource_compute_network_endpoint_test.go.erb @@ -204,7 +204,7 @@ func testAccComputeNetworkEndpointsListEndpointPorts(t *testing.T, negId string) config := googleProviderConfig(t) url := fmt.Sprintf("https://www.googleapis.com/compute/beta/%s/listNetworkEndpoints", negId) - res, err := sendRequest(config, "POST", "", url, nil) + res, err := sendRequest(config, "POST", "", url, config.userAgent, nil) if err != nil { return nil, err } diff --git a/third_party/terraform/tests/resource_compute_per_instance_config_test.go.erb b/third_party/terraform/tests/resource_compute_per_instance_config_test.go.erb index b4172c017bf8..a3c35b5a19be 100644 --- a/third_party/terraform/tests/resource_compute_per_instance_config_test.go.erb +++ b/third_party/terraform/tests/resource_compute_per_instance_config_test.go.erb @@ -319,7 +319,7 @@ func testAccComputePerInstanceConfigListNames(t *testing.T, igmId string) (map[s config := googleProviderConfig(t) url := fmt.Sprintf("%s%s/listPerInstanceConfigs", config.ComputeBasePath, igmId) - res, err := sendRequest(config, "POST", "", url, nil) + res, err := sendRequest(config, "POST", "", url, config.userAgent, nil) if err != nil { return nil, err } diff --git a/third_party/terraform/tests/resource_deployment_manager_deployment_test.go b/third_party/terraform/tests/resource_deployment_manager_deployment_test.go index 331d9c5afb39..c61c77b8340f 100644 --- a/third_party/terraform/tests/resource_deployment_manager_deployment_test.go +++ b/third_party/terraform/tests/resource_deployment_manager_deployment_test.go @@ -400,7 +400,7 @@ func testAccCheckDeploymentManagerDestroyInvalidDeployment(t *testing.T, deploym config := googleProviderConfig(t) url := fmt.Sprintf("%sprojects/%s/global/deployments/%s", config.DeploymentManagerBasePath, getTestProjectFromEnv(), deploymentName) - _, err := sendRequest(config, "GET", "", url, nil) + _, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if !isGoogleApiErrorWithCode(err, 404) { return fmt.Errorf("Unexpected error while trying to confirm DeploymentManagerDeployment deleted: %v", err) } @@ -428,7 +428,7 @@ func testAccCheckDeploymentManagerDeploymentDestroyProducer(t *testing.T) func(s return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("DeploymentManagerDeployment still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_identity_platform_default_supported_idp_config_test.go b/third_party/terraform/tests/resource_identity_platform_default_supported_idp_config_test.go index 0e30fcfb45e2..72c41da6360e 100644 --- a/third_party/terraform/tests/resource_identity_platform_default_supported_idp_config_test.go +++ b/third_party/terraform/tests/resource_identity_platform_default_supported_idp_config_test.go @@ -58,7 +58,7 @@ func testAccCheckIdentityPlatformDefaultSupportedIdpConfigDestroyProducer(t *tes return err } - _, err = sendRequest(config, "GET", "", url, nil) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("IdentityPlatformDefaultSupportedIdpConfig still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_monitoring_alert_policy_test.go b/third_party/terraform/tests/resource_monitoring_alert_policy_test.go index f719f86560b2..09af729168f2 100644 --- a/third_party/terraform/tests/resource_monitoring_alert_policy_test.go +++ b/third_party/terraform/tests/resource_monitoring_alert_policy_test.go @@ -122,7 +122,7 @@ func testAccCheckAlertPolicyDestroyProducer(t *testing.T) func(s *terraform.Stat name := rs.Primary.Attributes["name"] url := fmt.Sprintf("https://monitoring.googleapis.com/v3/%s", name) - _, err := sendRequest(config, "GET", "", url, nil) + _, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("Error, alert policy %s still exists", name) diff --git a/third_party/terraform/tests/resource_monitoring_dashboard_test.go b/third_party/terraform/tests/resource_monitoring_dashboard_test.go index 720d1e593695..678ba9864162 100644 --- a/third_party/terraform/tests/resource_monitoring_dashboard_test.go +++ b/third_party/terraform/tests/resource_monitoring_dashboard_test.go @@ -132,7 +132,7 @@ func testAccCheckMonitoringDashboardDestroyProducer(t *testing.T) func(s *terraf return err } - _, err = sendRequest(config, "GET", "", url, nil, isMonitoringConcurrentEditError) + _, err = sendRequest(config, "GET", "", url, config.userAgent, nil, isMonitoringConcurrentEditError) if err == nil { return fmt.Errorf("MonitoringDashboard still exists at %s", url) } diff --git a/third_party/terraform/tests/resource_pubsub_subscription_test.go b/third_party/terraform/tests/resource_pubsub_subscription_test.go index d92decf4c239..3f5b4a76df57 100644 --- a/third_party/terraform/tests/resource_pubsub_subscription_test.go +++ b/third_party/terraform/tests/resource_pubsub_subscription_test.go @@ -284,7 +284,7 @@ func testAccCheckPubsubSubscriptionCache404(t *testing.T, subName string) resour return func(s *terraform.State) error { config := googleProviderConfig(t) url := fmt.Sprintf("%sprojects/%s/subscriptions/%s", config.PubsubBasePath, getTestProjectFromEnv(), subName) - resp, err := sendRequest(config, "GET", "", url, nil) + resp, err := sendRequest(config, "GET", "", url, config.userAgent, nil) if err == nil { return fmt.Errorf("Expected Pubsub Subscription %q not to exist, was found", resp["name"]) } diff --git a/third_party/terraform/tests/resource_sql_database_instance_test.go.erb b/third_party/terraform/tests/resource_sql_database_instance_test.go.erb index fbc3c151c56c..3d8af8a2234f 100644 --- a/third_party/terraform/tests/resource_sql_database_instance_test.go.erb +++ b/third_party/terraform/tests/resource_sql_database_instance_test.go.erb @@ -104,7 +104,7 @@ func testSweepDatabases(region string) error { return nil } - err = sqlAdminOperationWaitTime(config, op, config.Project, "Stop Replica", 10 * time.Minute) + err = sqlAdminOperationWaitTime(config, op, config.Project, "Stop Replica", config.userAgent, 10 * time.Minute) if err != nil { if strings.Contains(err.Error(), "does not exist") { log.Printf("Replication operation not found") @@ -136,7 +136,7 @@ func testSweepDatabases(region string) error { return nil } - err = sqlAdminOperationWaitTime(config, op, config.Project, "Delete Instance", 10 * time.Minute) + err = sqlAdminOperationWaitTime(config, op, config.Project, "Delete Instance", config.userAgent, 10 * time.Minute) if err != nil { if strings.Contains(err.Error(), "does not exist") { log.Printf("SQL instance not found") @@ -258,7 +258,7 @@ func TestAccSqlDatabaseInstance_dontDeleteDefaultUserOnReplica(t *testing.T) { t.Errorf("Error while inserting root@%% user: %s", err) return } - err = sqlAdminOperationWaitTime(config, op, config.Project, "Waiting for user to insert", 10 * time.Minute) + err = sqlAdminOperationWaitTime(config, op, config.Project, "Waiting for user to insert", config.userAgent, 10 * time.Minute) if err != nil { t.Errorf("Error while waiting for user insert operation to complete: %s", err.Error()) } diff --git a/third_party/terraform/utils/appengine_operation.go b/third_party/terraform/utils/appengine_operation.go index a8b936b245a3..88113cbedb55 100644 --- a/third_party/terraform/utils/appengine_operation.go +++ b/third_party/terraform/utils/appengine_operation.go @@ -30,7 +30,7 @@ func (w *AppEngineOperationWaiter) QueryOp() (interface{}, error) { return w.Service.Apps.Operations.Get(w.AppId, matches[1]).Do() } -func appEngineOperationWaitTimeWithResponse(config *Config, res interface{}, response *map[string]interface{}, appId, activity string, timeout time.Duration) error { +func appEngineOperationWaitTimeWithResponse(config *Config, res interface{}, response *map[string]interface{}, appId, activity, userAgent string, timeout time.Duration) error { op := &appengine.Operation{} err := Convert(res, op) if err != nil { @@ -51,7 +51,7 @@ func appEngineOperationWaitTimeWithResponse(config *Config, res interface{}, res return json.Unmarshal([]byte(w.CommonOperationWaiter.Op.Response), response) } -func appEngineOperationWaitTime(config *Config, res interface{}, appId, activity string, timeout time.Duration) error { +func appEngineOperationWaitTime(config *Config, res interface{}, appId, activity, userAgent string, timeout time.Duration) error { op := &appengine.Operation{} err := Convert(res, op) if err != nil { diff --git a/third_party/terraform/utils/bootstrap_utils_test.go b/third_party/terraform/utils/bootstrap_utils_test.go index 267c8a1f3bce..bac86a42321b 100644 --- a/third_party/terraform/utils/bootstrap_utils_test.go +++ b/third_party/terraform/utils/bootstrap_utils_test.go @@ -238,13 +238,13 @@ func BootstrapSharedTestNetwork(t *testing.T, testId string) string { "autoCreateSubnetworks": false, } - res, err := sendRequestWithTimeout(config, "POST", project, url, netObj, 4*time.Minute) + res, err := sendRequestWithTimeout(config, "POST", project, url, config.userAgent, netObj, 4*time.Minute) if err != nil { t.Fatalf("Error bootstrapping shared test network %q: %s", networkName, err) } log.Printf("[DEBUG] Waiting for network creation to finish") - err = computeOperationWaitTime(config, res, project, "Error bootstrapping shared test network", 4*time.Minute) + err = computeOperationWaitTime(config, res, project, "Error bootstrapping shared test network", config.userAgent, 4*time.Minute) if err != nil { t.Fatalf("Error bootstrapping shared test network %q: %s", networkName, err) } @@ -300,7 +300,7 @@ func BootstrapServicePerimeterProjects(t *testing.T, desiredProjects int) []*clo t.Fatalf("Error bootstrapping shared test project: %s", err) } - err = resourceManagerOperationWaitTime(config, opAsMap, "creating project", 4) + err = resourceManagerOperationWaitTime(config, opAsMap, "creating project", config.userAgent, 4) if err != nil { t.Fatalf("Error bootstrapping shared test project: %s", err) } diff --git a/third_party/terraform/utils/composer_operation.go b/third_party/terraform/utils/composer_operation.go index ddca3b67a166..34f7d57405da 100644 --- a/third_party/terraform/utils/composer_operation.go +++ b/third_party/terraform/utils/composer_operation.go @@ -19,7 +19,7 @@ func (w *ComposerOperationWaiter) QueryOp() (interface{}, error) { return w.Service.Operations.Get(w.Op.Name).Do() } -func composerOperationWaitTime(config *Config, op *composer.Operation, project, activity string, timeout time.Duration) error { +func composerOperationWaitTime(config *Config, op *composer.Operation, project, activity, userAgent string, timeout time.Duration) error { w := &ComposerOperationWaiter{ Service: config.clientComposer.Projects.Locations, } diff --git a/third_party/terraform/utils/compute_operation.go.erb b/third_party/terraform/utils/compute_operation.go.erb index a46bff363e34..92454f500e5f 100644 --- a/third_party/terraform/utils/compute_operation.go.erb +++ b/third_party/terraform/utils/compute_operation.go.erb @@ -110,7 +110,7 @@ func (w *ComputeOperationWaiter) TargetStates() []string { return []string{"DONE"} } -func computeOperationWaitTime(config *Config, res interface{}, project, activity string, timeout time.Duration) error { +func computeOperationWaitTime(config *Config, res interface{}, project, activity, userAgent string, timeout time.Duration) error { <% if version == 'ga' -%> op := &compute.Operation{} <% else -%> diff --git a/third_party/terraform/utils/deployment_manager_operation.go.erb b/third_party/terraform/utils/deployment_manager_operation.go.erb index e77604529da0..e1b0d6a360bb 100644 --- a/third_party/terraform/utils/deployment_manager_operation.go.erb +++ b/third_party/terraform/utils/deployment_manager_operation.go.erb @@ -12,6 +12,7 @@ import ( type DeploymentManagerOperationWaiter struct { Config *Config + UserAgent string Project string OperationUrl string ComputeOperationWaiter @@ -25,7 +26,8 @@ func (w *DeploymentManagerOperationWaiter) QueryOp() (interface{}, error) { if w == nil || w.Op == nil || w.Op.SelfLink == "" { return nil, fmt.Errorf("cannot query unset/nil operation") } - resp, err := sendRequest(w.Config, "GET", w.Project, w.Op.SelfLink, nil) + + resp, err := sendRequest(w.Config, "GET", w.Project, w.Op.SelfLink, w.UserAgent, nil) if err != nil { return nil, err } @@ -41,7 +43,7 @@ func (w *DeploymentManagerOperationWaiter) QueryOp() (interface{}, error) { } -func deploymentManagerOperationWaitTime(config *Config, resp interface{}, project, activity string, timeout time.Duration) error { +func deploymentManagerOperationWaitTime(config *Config, resp interface{}, project, activity, userAgent string, timeout time.Duration) error { <% if version == 'ga' -%> op := &compute.Operation{} <% else -%> @@ -54,6 +56,7 @@ func deploymentManagerOperationWaitTime(config *Config, resp interface{}, projec w := &DeploymentManagerOperationWaiter{ Config: config, + UserAgent: userAgent, OperationUrl: op.SelfLink, ComputeOperationWaiter: ComputeOperationWaiter{ Project: project, diff --git a/third_party/terraform/utils/iam_bigquery_dataset.go b/third_party/terraform/utils/iam_bigquery_dataset.go index fe24035eca29..ae7cf19ebd70 100644 --- a/third_party/terraform/utils/iam_bigquery_dataset.go +++ b/third_party/terraform/utils/iam_bigquery_dataset.go @@ -33,6 +33,7 @@ var bigqueryAccessPrimitiveToRoleMap = map[string]string{ type BigqueryDatasetIamUpdater struct { project string datasetId string + d *schema.ResourceData Config *Config } @@ -49,6 +50,7 @@ func NewBigqueryDatasetIamUpdater(d *schema.ResourceData, config *Config) (Resou return &BigqueryDatasetIamUpdater{ project: project, datasetId: d.Get("dataset_id").(string), + d: d, Config: config, }, nil } @@ -74,7 +76,12 @@ func BigqueryDatasetIdParseFunc(d *schema.ResourceData, config *Config) error { func (u *BigqueryDatasetIamUpdater) GetResourceIamPolicy() (*cloudresourcemanager.Policy, error) { url := fmt.Sprintf("%s%s", u.Config.BigQueryBasePath, u.GetResourceId()) - res, err := sendRequest(u.Config, "GET", u.project, url, nil) + userAgent, err := generateUserAgentString(u.d, u.Config.userAgent) + if err != nil { + return nil, err + } + + res, err := sendRequest(u.Config, "GET", u.project, url, userAgent, nil) if err != nil { return nil, errwrap.Wrapf(fmt.Sprintf("Error retrieving IAM policy for %s: {{err}}", u.DescribeResource()), err) } @@ -97,7 +104,12 @@ func (u *BigqueryDatasetIamUpdater) SetResourceIamPolicy(policy *cloudresourcema "access": access, } - _, err = sendRequest(u.Config, "PATCH", u.project, url, obj) + userAgent, err := generateUserAgentString(u.d, u.Config.userAgent) + if err != nil { + return err + } + + _, err = sendRequest(u.Config, "PATCH", u.project, url, userAgent, obj) if err != nil { return fmt.Errorf("Error creating DatasetAccess: %s", err) } diff --git a/third_party/terraform/utils/service_networking_operation.go b/third_party/terraform/utils/service_networking_operation.go index 7a689e4d0c92..c6c0eeb9dccf 100644 --- a/third_party/terraform/utils/service_networking_operation.go +++ b/third_party/terraform/utils/service_networking_operation.go @@ -15,7 +15,7 @@ func (w *ServiceNetworkingOperationWaiter) QueryOp() (interface{}, error) { return w.Service.Operations.Get(w.Op.Name).Do() } -func serviceNetworkingOperationWaitTime(config *Config, op *servicenetworking.Operation, activity string, timeout time.Duration) error { +func serviceNetworkingOperationWaitTime(config *Config, op *servicenetworking.Operation, activity, userAgent string, timeout time.Duration) error { w := &ServiceNetworkingOperationWaiter{ Service: config.clientServiceNetworking, } diff --git a/third_party/terraform/utils/serviceman_operation.go b/third_party/terraform/utils/serviceman_operation.go index f0ff980a8c91..ba98957a45e4 100644 --- a/third_party/terraform/utils/serviceman_operation.go +++ b/third_party/terraform/utils/serviceman_operation.go @@ -20,7 +20,7 @@ func (w *ServiceManagementOperationWaiter) QueryOp() (interface{}, error) { return w.Service.Operations.Get(w.Op.Name).Do() } -func serviceManagementOperationWaitTime(config *Config, op *servicemanagement.Operation, activity string, timeout time.Duration) (googleapi.RawMessage, error) { +func serviceManagementOperationWaitTime(config *Config, op *servicemanagement.Operation, activity, userAgent string, timeout time.Duration) (googleapi.RawMessage, error) { w := &ServiceManagementOperationWaiter{ Service: config.clientServiceMan, } diff --git a/third_party/terraform/utils/serviceusage_batching.go b/third_party/terraform/utils/serviceusage_batching.go index b236d19ba5b4..7c806c11c9c5 100644 --- a/third_party/terraform/utils/serviceusage_batching.go +++ b/third_party/terraform/utils/serviceusage_batching.go @@ -22,15 +22,20 @@ func BatchRequestEnableService(service string, project string, d *schema.Resourc return tryEnableRenamedService(service, altName, project, d, config) } + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + req := &BatchRequest{ ResourceName: project, Body: []string{service}, CombineF: combineServiceUsageServicesBatches, - SendF: sendBatchFuncEnableServices(config, d.Timeout(schema.TimeoutCreate)), + SendF: sendBatchFuncEnableServices(config, userAgent, d.Timeout(schema.TimeoutCreate)), DebugId: fmt.Sprintf("Enable Project Service %q for project %q", service, project), } - _, err := config.requestBatcherServiceUsage.SendRequestWithTimeout( + _, err = config.requestBatcherServiceUsage.SendRequestWithTimeout( fmt.Sprintf(batchKeyTmplServiceUsageEnableServices, project), req, d.Timeout(schema.TimeoutCreate)) @@ -38,14 +43,19 @@ func BatchRequestEnableService(service string, project string, d *schema.Resourc } func tryEnableRenamedService(service, altName string, project string, d *schema.ResourceData, config *Config) error { + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return err + } + log.Printf("[DEBUG] found renamed service %s (with alternate name %s)", service, altName) // use a short timeout- failures are likely log.Printf("[DEBUG] attempting enabling service with user-specified name %s", service) - err := enableServiceUsageProjectServices([]string{service}, project, config, 1*time.Minute) + err = enableServiceUsageProjectServices([]string{service}, project, userAgent, config, 1*time.Minute) if err != nil { log.Printf("[DEBUG] saw error %s. attempting alternate name %v", err, altName) - err2 := enableServiceUsageProjectServices([]string{altName}, project, config, 1*time.Minute) + err2 := enableServiceUsageProjectServices([]string{altName}, project, userAgent, config, 1*time.Minute) if err2 != nil { return fmt.Errorf("Saw 2 subsequent errors attempting to enable a renamed service: %s / %s", err, err2) } @@ -82,13 +92,13 @@ func combineServiceUsageServicesBatches(srvsRaw interface{}, toAddRaw interface{ return append(srvs, toAdd...), nil } -func sendBatchFuncEnableServices(config *Config, timeout time.Duration) BatcherSendFunc { +func sendBatchFuncEnableServices(config *Config, userAgent string, timeout time.Duration) BatcherSendFunc { return func(project string, toEnableRaw interface{}) (interface{}, error) { toEnable, ok := toEnableRaw.([]string) if !ok { return nil, fmt.Errorf("Expected batch body type to be []string, got %v. This is a provider error.", toEnableRaw) } - return nil, enableServiceUsageProjectServices(toEnable, project, config, timeout) + return nil, enableServiceUsageProjectServices(toEnable, project, userAgent, config, timeout) } } diff --git a/third_party/terraform/utils/serviceusage_operation.go b/third_party/terraform/utils/serviceusage_operation.go index 7d054b658ea7..6ed1c4cbd31b 100644 --- a/third_party/terraform/utils/serviceusage_operation.go +++ b/third_party/terraform/utils/serviceusage_operation.go @@ -8,7 +8,7 @@ import ( "google.golang.org/api/serviceusage/v1" ) -func serviceUsageOperationWait(config *Config, op *serviceusage.Operation, project, activity string, timeout time.Duration) error { +func serviceUsageOperationWait(config *Config, op *serviceusage.Operation, project, activity, userAgent string, timeout time.Duration) error { // maintained for compatibility with old code that was written before the // autogenerated waiters. b, err := op.MarshalJSON() @@ -19,7 +19,7 @@ func serviceUsageOperationWait(config *Config, op *serviceusage.Operation, proje if err := json.Unmarshal(b, &m); err != nil { return err } - return serviceUsageOperationWaitTime(config, m, project, activity, timeout) + return serviceUsageOperationWaitTime(config, m, project, activity, userAgent, timeout) } func handleServiceUsageRetryableError(err error) error { diff --git a/third_party/terraform/utils/sqladmin_operation.go b/third_party/terraform/utils/sqladmin_operation.go index c6faddf992f0..cd4cf4fa9acf 100644 --- a/third_party/terraform/utils/sqladmin_operation.go +++ b/third_party/terraform/utils/sqladmin_operation.go @@ -100,7 +100,7 @@ func (w *SqlAdminOperationWaiter) TargetStates() []string { return []string{"DONE"} } -func sqlAdminOperationWaitTime(config *Config, res interface{}, project, activity string, timeout time.Duration) error { +func sqlAdminOperationWaitTime(config *Config, res interface{}, project, activity, userAgent string, timeout time.Duration) error { op := &sqladmin.Operation{} err := Convert(res, op) if err != nil { diff --git a/third_party/terraform/utils/stateful_mig_polling.go.erb b/third_party/terraform/utils/stateful_mig_polling.go.erb index ec4c8f5ba076..b76821c7bc17 100644 --- a/third_party/terraform/utils/stateful_mig_polling.go.erb +++ b/third_party/terraform/utils/stateful_mig_polling.go.erb @@ -1,3 +1,4 @@ + <% autogen_exception -%> package google @@ -13,6 +14,10 @@ import ( func resourceComputePerInstanceConfigPollRead(d *schema.ResourceData, meta interface{}) PollReadFunc { return func() (map[string]interface{}, error) { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return nil, err + } url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/listPerInstanceConfigs") if err != nil { @@ -23,7 +28,7 @@ func resourceComputePerInstanceConfigPollRead(d *schema.ResourceData, meta inter if err != nil { return nil, err } - res, err := sendRequest(config, "POST", project, url, nil) + res, err := sendRequest(config, "POST", project, url, userAgent, nil) if err != nil { return res, err } @@ -41,6 +46,10 @@ func resourceComputePerInstanceConfigPollRead(d *schema.ResourceData, meta inter func resourceComputeRegionPerInstanceConfigPollRead(d *schema.ResourceData, meta interface{}) PollReadFunc { return func() (map[string]interface{}, error) { config := meta.(*Config) + userAgent, err := generateUserAgentString(d, config.userAgent) + if err != nil { + return nil, err + } url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{region_instance_group_manager}}/listPerInstanceConfigs") if err != nil { @@ -51,7 +60,7 @@ func resourceComputeRegionPerInstanceConfigPollRead(d *schema.ResourceData, meta if err != nil { return nil, err } - res, err := sendRequest(config, "POST", project, url, nil) + res, err := sendRequest(config, "POST", project, url, userAgent, nil) if err != nil { return res, err } @@ -69,7 +78,11 @@ func resourceComputeRegionPerInstanceConfigPollRead(d *schema.ResourceData, meta // instance matching the name of a PerInstanceConfig func findInstanceName(d *schema.ResourceData, config *Config) (string, error) { url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{region_instance_group_manager}}/listManagedInstances") + if err != nil { + return "", err + } + userAgent, err := generateUserAgentString(d, config.userAgent) if err != nil { return "", err } @@ -88,7 +101,7 @@ func findInstanceName(d *schema.ResourceData, config *Config) (string, error) { } else { urlWithToken = fmt.Sprintf("%s?maxResults=1", url) } - res, err := sendRequest(config, "POST", project, urlWithToken, nil) + res, err := sendRequest(config, "POST", project, urlWithToken, userAgent, nil) if err != nil { return "", err } diff --git a/third_party/terraform/utils/transport.go b/third_party/terraform/utils/transport.go index 394c803f79e6..f6ff46a8c26d 100644 --- a/third_party/terraform/utils/transport.go +++ b/third_party/terraform/utils/transport.go @@ -39,13 +39,13 @@ func isEmptyValue(v reflect.Value) bool { return false } -func sendRequest(config *Config, method, project, rawurl string, body map[string]interface{}, errorRetryPredicates ...RetryErrorPredicateFunc) (map[string]interface{}, error) { - return sendRequestWithTimeout(config, method, project, rawurl, body, DefaultRequestTimeout, errorRetryPredicates...) +func sendRequest(config *Config, method, project, rawurl, userAgent string, body map[string]interface{}, errorRetryPredicates ...RetryErrorPredicateFunc) (map[string]interface{}, error) { + return sendRequestWithTimeout(config, method, project, rawurl, userAgent, body, DefaultRequestTimeout, errorRetryPredicates...) } -func sendRequestWithTimeout(config *Config, method, project, rawurl string, body map[string]interface{}, timeout time.Duration, errorRetryPredicates ...RetryErrorPredicateFunc) (map[string]interface{}, error) { +func sendRequestWithTimeout(config *Config, method, project, rawurl, userAgent string, body map[string]interface{}, timeout time.Duration, errorRetryPredicates ...RetryErrorPredicateFunc) (map[string]interface{}, error) { reqHeaders := make(http.Header) - reqHeaders.Set("User-Agent", config.userAgent) + reqHeaders.Set("User-Agent", userAgent) reqHeaders.Set("Content-Type", "application/json") if config.UserProjectOverride && project != "" { diff --git a/third_party/terraform/utils/userinfo.go b/third_party/terraform/utils/userinfo.go index 6a8c5c7c1378..4b142df0020f 100644 --- a/third_party/terraform/utils/userinfo.go +++ b/third_party/terraform/utils/userinfo.go @@ -4,10 +4,10 @@ import ( "fmt" ) -func GetCurrentUserEmail(config *Config) (string, error) { +func GetCurrentUserEmail(config *Config, userAgent string) (string, error) { // See https://github.com/golang/oauth2/issues/306 for a recommendation to do this from a Go maintainer // URL retrieved from https://accounts.google.com/.well-known/openid-configuration - res, err := sendRequest(config, "GET", "", "https://openidconnect.googleapis.com/v1/userinfo", nil) + res, err := sendRequest(config, "GET", "", "https://openidconnect.googleapis.com/v1/userinfo", userAgent, nil) if err != nil { return "", fmt.Errorf("error retrieving userinfo for your provider credentials. have you enabled the 'https://www.googleapis.com/auth/userinfo.email' scope? error: %s", err) } diff --git a/third_party/terraform/utils/utils.go.erb b/third_party/terraform/utils/utils.go.erb index be4e1e71a726..2784b5aa2ef6 100644 --- a/third_party/terraform/utils/utils.go.erb +++ b/third_party/terraform/utils/utils.go.erb @@ -352,8 +352,8 @@ func serviceAccountFQN(serviceAccount string, d TerraformResourceData, config *C return fmt.Sprintf("projects/-/serviceAccounts/%s@%s.iam.gserviceaccount.com", serviceAccount, project), nil } -func paginatedListRequest(project, baseUrl string, config *Config, flattener func(map[string]interface{}) []interface{}) ([]interface{}, error) { - res, err := sendRequest(config, "GET", project, baseUrl, nil) +func paginatedListRequest(project, baseUrl, userAgent string, config *Config, flattener func(map[string]interface{}) []interface{}) ([]interface{}, error) { + res, err := sendRequest(config, "GET", project, baseUrl, userAgent, nil) if err != nil { return nil, err } @@ -365,7 +365,7 @@ func paginatedListRequest(project, baseUrl string, config *Config, flattener fun break } url := fmt.Sprintf("%s?pageToken=%s", baseUrl, pageToken.(string)) - res, err = sendRequest(config, "GET", project, url, nil) + res, err = sendRequest(config, "GET", project, url, userAgent, nil) if err != nil { return nil, err } @@ -452,3 +452,14 @@ func changeFieldSchemaToForceNew(sch *schema.Schema) { } } } + +func generateUserAgentString(d *schema.ResourceData, currentUserAgent string) (string, error) { + var m providerMeta + + err := d.GetProviderMeta(&m) + if err != nil { + return currentUserAgent, err + } + + return strings.Join([]string{currentUserAgent, m.ModuleName}, " "), nil +}