diff --git a/google/access_context_manager_operation.go b/google/access_context_manager_operation.go index eaf5ed4fa14..c45aaecfeb9 100644 --- a/google/access_context_manager_operation.go +++ b/google/access_context_manager_operation.go @@ -28,7 +28,7 @@ func (w *AccessContextManagerOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://accesscontextmanager.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", "", url, nil) } func accessContextManagerOperationWaitTime(config *Config, op map[string]interface{}, activity string, timeoutMinutes int) error { diff --git a/google/config.go b/google/config.go index 4b6307015ba..336a11b15de 100644 --- a/google/config.go +++ b/google/config.go @@ -55,13 +55,14 @@ import ( // Config is the configuration structure used to instantiate the Google // provider. type Config struct { - Credentials string - AccessToken string - Project string - Region string - Zone string - Scopes []string - BatchingConfig *batchingConfig + Credentials string + AccessToken string + Project string + Region string + Zone string + Scopes []string + BatchingConfig *batchingConfig + UserProjectOverride bool client *http.Client userAgent string diff --git a/google/data_source_google_client_openid_userinfo.go b/google/data_source_google_client_openid_userinfo.go index 16ae672398c..b6263da9fc0 100644 --- a/google/data_source_google_client_openid_userinfo.go +++ b/google/data_source_google_client_openid_userinfo.go @@ -24,7 +24,7 @@ func dataSourceGoogleClientOpenIDUserinfoRead(d *schema.ResourceData, meta inter // 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", 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/google/data_source_google_composer_image_versions.go b/google/data_source_google_composer_image_versions.go index 1750b5e487b..c7c56c38a26 100644 --- a/google/data_source_google_composer_image_versions.go +++ b/google/data_source_google_composer_image_versions.go @@ -61,7 +61,7 @@ func dataSourceGoogleComposerImageVersionsRead(d *schema.ResourceData, meta inte return err } - versions, err := paginatedListRequest(url, config, flattenGoogleComposerImageVersions) + versions, err := paginatedListRequest(project, url, config, flattenGoogleComposerImageVersions) if err != nil { return fmt.Errorf("Error listing Composer image versions: %s", err) } diff --git a/google/data_source_google_kms_crypto_key_version.go b/google/data_source_google_kms_crypto_key_version.go index 0a92c936a2a..4f9c0d785fe 100644 --- a/google/data_source_google_kms_crypto_key_version.go +++ b/google/data_source_google_kms_crypto_key_version.go @@ -65,7 +65,12 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Getting attributes for CryptoKeyVersion: %#v", url) - res, err := sendRequest(config, "GET", url, nil) + + cryptoKeyId, err := parseKmsCryptoKeyId(d.Get("crypto_key").(string), config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsCryptoKeyVersion %q", d.Id())) } @@ -89,7 +94,7 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Getting purpose of CryptoKey: %#v", url) - res, err = sendRequest(config, "GET", url, nil) + res, err = sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsCryptoKey %q", d.Id())) } @@ -100,7 +105,7 @@ func dataSourceGoogleKmsCryptoKeyVersionRead(d *schema.ResourceData, meta interf return err } log.Printf("[DEBUG] Getting public key of CryptoKeyVersion: %#v", url) - res, _ = sendRequest(config, "GET", url, nil) + res, _ = sendRequest(config, "GET", cryptoKeyId.KeyRingId.Project, url, nil) if err := d.Set("public_key", flattenKmsCryptoKeyVersionPublicKey(res, d)); err != nil { return fmt.Errorf("Error reading CryptoKeyVersion public key: %s", err) diff --git a/google/data_source_google_projects.go b/google/data_source_google_projects.go index 1478b94a593..5d8eafc10d4 100644 --- a/google/data_source_google_projects.go +++ b/google/data_source_google_projects.go @@ -2,6 +2,7 @@ package google import ( "fmt" + "github.com/hashicorp/terraform/helper/schema" ) @@ -44,7 +45,7 @@ func datasourceGoogleProjectsRead(d *schema.ResourceData, meta interface{}) erro return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return fmt.Errorf("Error retrieving projects: %s", err) } diff --git a/google/data_source_google_storage_bucket_object.go b/google/data_source_google_storage_bucket_object.go index b429cd677ba..1250d043b03 100644 --- a/google/data_source_google_storage_bucket_object.go +++ b/google/data_source_google_storage_bucket_object.go @@ -35,7 +35,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, nil) if err != nil { return fmt.Errorf("Error retrieving storage bucket object: %s", err) } diff --git a/google/data_source_tpu_tensorflow_versions.go b/google/data_source_tpu_tensorflow_versions.go index 56806f74ed3..e9fd5763b5e 100644 --- a/google/data_source_tpu_tensorflow_versions.go +++ b/google/data_source_tpu_tensorflow_versions.go @@ -50,7 +50,7 @@ func dataSourceTpuTensorFlowVersionsRead(d *schema.ResourceData, meta interface{ return err } - versionsRaw, err := paginatedListRequest(url, config, flattenTpuTensorflowVersions) + versionsRaw, err := paginatedListRequest(project, url, config, flattenTpuTensorflowVersions) if err != nil { return fmt.Errorf("Error listing TPU Tensorflow versions: %s", err) } diff --git a/google/filestore_operation.go b/google/filestore_operation.go index 0d728555d54..7885f36ff81 100644 --- a/google/filestore_operation.go +++ b/google/filestore_operation.go @@ -18,7 +18,8 @@ import ( ) type FilestoreOperationWaiter struct { - Config *Config + Config *Config + Project string CommonOperationWaiter } @@ -28,7 +29,7 @@ func (w *FilestoreOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://file.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", w.Project, url, nil) } func filestoreOperationWaitTime(config *Config, op map[string]interface{}, project, activity string, timeoutMinutes int) error { @@ -37,7 +38,8 @@ func filestoreOperationWaitTime(config *Config, op map[string]interface{}, proje return nil } w := &FilestoreOperationWaiter{ - Config: config, + Config: config, + Project: project, } if err := w.CommonOperationWaiter.SetOp(op); err != nil { return err diff --git a/google/firestore_operation.go b/google/firestore_operation.go index c11f37954fd..2e99c69331c 100644 --- a/google/firestore_operation.go +++ b/google/firestore_operation.go @@ -18,7 +18,8 @@ import ( ) type FirestoreOperationWaiter struct { - Config *Config + Config *Config + Project string CommonOperationWaiter } @@ -28,7 +29,7 @@ func (w *FirestoreOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://firestore.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", w.Project, url, nil) } func firestoreOperationWaitTime(config *Config, op map[string]interface{}, project, activity string, timeoutMinutes int) error { @@ -37,7 +38,8 @@ func firestoreOperationWaitTime(config *Config, op map[string]interface{}, proje return nil } w := &FirestoreOperationWaiter{ - Config: config, + Config: config, + Project: project, } if err := w.CommonOperationWaiter.SetOp(op); err != nil { return err diff --git a/google/iam_pubsub_topic.go b/google/iam_pubsub_topic.go index fa98d84d7f4..79c8670df49 100644 --- a/google/iam_pubsub_topic.go +++ b/google/iam_pubsub_topic.go @@ -96,7 +96,12 @@ func PubsubTopicIdParseFunc(d *schema.ResourceData, config *Config) error { func (u *PubsubTopicIamUpdater) GetResourceIamPolicy() (*cloudresourcemanager.Policy, error) { url := u.qualifyTopicUrl("getIamPolicy") - policy, err := sendRequest(u.Config, "GET", url, nil) + project, err := getProject(u.d, u.Config) + if err != nil { + return nil, err + } + + policy, err := sendRequest(u.Config, "GET", project, url, nil) if err != nil { return nil, errwrap.Wrapf(fmt.Sprintf("Error retrieving IAM policy for %s: {{err}}", u.DescribeResource()), err) } @@ -121,7 +126,12 @@ func (u *PubsubTopicIamUpdater) SetResourceIamPolicy(policy *cloudresourcemanage url := u.qualifyTopicUrl("setIamPolicy") - _, err = sendRequestWithTimeout(u.Config, "POST", url, obj, u.d.Timeout(schema.TimeoutCreate)) + project, err := getProject(u.d, u.Config) + if err != nil { + return err + } + + _, err = sendRequestWithTimeout(u.Config, "POST", project, url, obj, u.d.Timeout(schema.TimeoutCreate)) if err != nil { return errwrap.Wrapf(fmt.Sprintf("Error setting IAM policy for %s: {{err}}", u.DescribeResource()), err) } diff --git a/google/iam_source_repo_repository.go b/google/iam_source_repo_repository.go index c32434abf8c..5a9a488276d 100644 --- a/google/iam_source_repo_repository.go +++ b/google/iam_source_repo_repository.go @@ -96,7 +96,12 @@ func SourceRepoRepositoryIdParseFunc(d *schema.ResourceData, config *Config) err func (u *SourceRepoRepositoryIamUpdater) GetResourceIamPolicy() (*cloudresourcemanager.Policy, error) { url := u.qualifyRepositoryUrl("getIamPolicy") - policy, err := sendRequest(u.Config, "GET", url, nil) + project, err := getProject(u.d, u.Config) + if err != nil { + return nil, err + } + + policy, err := sendRequest(u.Config, "GET", project, url, nil) if err != nil { return nil, errwrap.Wrapf(fmt.Sprintf("Error retrieving IAM policy for %s: {{err}}", u.DescribeResource()), err) } @@ -121,7 +126,12 @@ func (u *SourceRepoRepositoryIamUpdater) SetResourceIamPolicy(policy *cloudresou url := u.qualifyRepositoryUrl("setIamPolicy") - _, err = sendRequestWithTimeout(u.Config, "POST", url, obj, u.d.Timeout(schema.TimeoutCreate)) + project, err := getProject(u.d, u.Config) + if err != nil { + return err + } + + _, err = sendRequestWithTimeout(u.Config, "POST", project, url, obj, u.d.Timeout(schema.TimeoutCreate)) if err != nil { return errwrap.Wrapf(fmt.Sprintf("Error setting IAM policy for %s: {{err}}", u.DescribeResource()), err) } diff --git a/google/provider.go b/google/provider.go index 42d05fc7fb5..606b2ebb7b4 100644 --- a/google/provider.go +++ b/google/provider.go @@ -97,6 +97,11 @@ func Provider() terraform.ResourceProvider { }, }, + "user_project_override": { + Type: schema.TypeBool, + Optional: true, + }, + // Generated Products AccessContextManagerCustomEndpointEntryKey: AccessContextManagerCustomEndpointEntry, AppEngineCustomEndpointEntryKey: AppEngineCustomEndpointEntry, @@ -357,9 +362,10 @@ func ResourceMapWithErrors() (map[string]*schema.Resource, error) { func providerConfigure(d *schema.ResourceData) (interface{}, error) { config := Config{ - Project: d.Get("project").(string), - Region: d.Get("region").(string), - Zone: d.Get("zone").(string), + Project: d.Get("project").(string), + Region: d.Get("region").(string), + Zone: d.Get("zone").(string), + UserProjectOverride: d.Get("user_project_override").(bool), } // Add credential source diff --git a/google/provider_test.go b/google/provider_test.go index 74731700339..cbdfa6adfe2 100644 --- a/google/provider_test.go +++ b/google/provider_test.go @@ -7,6 +7,7 @@ import ( "regexp" "strings" "testing" + "time" "github.com/hashicorp/terraform/helper/acctest" "github.com/hashicorp/terraform/helper/resource" @@ -184,6 +185,47 @@ func TestAccProviderBasePath_setInvalidBasePath(t *testing.T) { }) } +func TestAccProviderUserProjectOverride(t *testing.T) { + t.Parallel() + + org := getTestOrgFromEnv(t) + billing := getTestBillingAccountFromEnv(t) + pid := "terraform-" + acctest.RandString(10) + sa := "terraform-" + acctest.RandString(10) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + // No TestDestroy since that's not really the point of this test + Steps: []resource.TestStep{ + { + Config: testAccProviderUserProjectOverride(pid, pname, org, billing, sa), + Check: func(s *terraform.State) error { + // The token creator IAM API call returns success long before the policy is + // actually usable. Wait a solid 2 minutes to ensure we can use it. + time.Sleep(2 * time.Minute) + return nil + }, + }, + { + Config: testAccProviderUserProjectOverride_step2(pid, pname, org, billing, sa, false), + ExpectError: regexp.MustCompile("Binary Authorization API has not been used"), + }, + { + Config: testAccProviderUserProjectOverride_step2(pid, pname, org, billing, sa, true), + }, + { + ResourceName: "google_binary_authorization_policy.project-2-policy", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccProviderUserProjectOverride_step3(pid, pname, org, billing, sa, true), + }, + }, + }) +} + func testAccProviderBasePath_setBasePath(endpoint, name string) string { return fmt.Sprintf(` provider "google" { @@ -195,6 +237,115 @@ resource "google_compute_address" "default" { }`, endpoint, name) } +// Set up two projects. Project 1 has a service account that is used to create a +// binauthz policy in project 2. The binauthz API is only enabled in project 2, +// which causes the create to fail unless user_project_override is set to true. +func testAccProviderUserProjectOverride(pid, name, org, billing, sa string) string { + return fmt.Sprintf(` +provider "google" { + scopes = [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email", + ] +} + +resource "google_project" "project-1" { + project_id = "%s" + name = "%s" + org_id = "%s" + billing_account = "%s" +} + +resource "google_service_account" "project-1" { + project = google_project.project-1.project_id + account_id = "%s" +} + +resource "google_project" "project-2" { + project_id = "%s-2" + name = "%s-2" + org_id = "%s" + billing_account = "%s" +} + +resource "google_project_service" "project-2-binauthz" { + project = google_project.project-2.project_id + service = "binaryauthorization.googleapis.com" +} + +// Permission needed for user_project_override +resource "google_project_iam_member" "project-2-serviceusage" { + project = google_project.project-2.project_id + role = "roles/serviceusage.serviceUsageConsumer" + member = "serviceAccount:${google_service_account.project-1.email}" +} + +resource "google_project_iam_member" "project-2-binauthz" { + project = google_project.project-2.project_id + role = "roles/binaryauthorization.policyEditor" + member = "serviceAccount:${google_service_account.project-1.email}" +} + +data "google_client_openid_userinfo" "me" {} + +// Enable the test runner to get an access token on behalf of +// the project 1 service account +resource "google_service_account_iam_member" "token-creator-iam" { + service_account_id = google_service_account.project-1.name + role = "roles/iam.serviceAccountTokenCreator" + member = "serviceAccount:${data.google_client_openid_userinfo.me.email}" +} +`, pid, name, org, billing, sa, pid, name, org, billing) +} + +func testAccProviderUserProjectOverride_step2(pid, name, org, billing, sa string, override bool) string { + return fmt.Sprintf(` +// See step 3 below, which is really step 2 minus the binauthz policy. +// Step 3 exists because provider configurations can't be removed while objects +// created by that provider still exist in state. Step 3 will remove the +// binauthz policy so the whole config can be deleted. +%s + +resource "google_binary_authorization_policy" "project-2-policy" { + provider = google.project-1-token + project = google_project.project-2.project_id + + admission_whitelist_patterns { + name_pattern= "gcr.io/google_containers/*" + } + + default_admission_rule { + evaluation_mode = "ALWAYS_DENY" + enforcement_mode = "ENFORCED_BLOCK_AND_AUDIT_LOG" + } +} +`, testAccProviderUserProjectOverride_step3(pid, name, org, billing, sa, override)) +} + +func testAccProviderUserProjectOverride_step3(pid, name, org, billing, sa string, override bool) string { + return fmt.Sprintf(` +%s + +data "google_service_account_access_token" "project-1-token" { + // This data source would have a depends_on t + // google_service_account_iam_binding.token-creator-iam, but depends_on + // in data sources makes them always have a diff in apply: + // https://www.terraform.io/docs/configuration/data-sources.html#data-resource-dependencies + // Instead, rely on the other test step completing before this one. + + target_service_account = google_service_account.project-1.email + scopes = ["userinfo-email", "https://www.googleapis.com/auth/cloud-platform"] + lifetime = "300s" +} + +provider "google" { + alias = "project-1-token" + access_token = data.google_service_account_access_token.project-1-token.access_token + user_project_override = %v +} +`, testAccProviderUserProjectOverride(pid, name, org, billing, sa), override) +} + // getTestRegion has the same logic as the provider's getRegion, to be used in tests. func getTestRegion(is *terraform.InstanceState, config *Config) (string, error) { if res, ok := is.Attributes["region"]; ok { diff --git a/google/redis_operation.go b/google/redis_operation.go index 5b816490128..76489d30c52 100644 --- a/google/redis_operation.go +++ b/google/redis_operation.go @@ -18,7 +18,8 @@ import ( ) type RedisOperationWaiter struct { - Config *Config + Config *Config + Project string CommonOperationWaiter } @@ -28,7 +29,7 @@ func (w *RedisOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://redis.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", w.Project, url, nil) } func redisOperationWaitTime(config *Config, op map[string]interface{}, project, activity string, timeoutMinutes int) error { @@ -37,7 +38,8 @@ func redisOperationWaitTime(config *Config, op map[string]interface{}, project, return nil } w := &RedisOperationWaiter{ - Config: config, + Config: config, + Project: project, } if err := w.CommonOperationWaiter.SetOp(op); err != nil { return err diff --git a/google/resource_access_context_manager_access_level.go b/google/resource_access_context_manager_access_level.go index fa2a4ff2ae9..9d6516f0f89 100644 --- a/google/resource_access_context_manager_access_level.go +++ b/google/resource_access_context_manager_access_level.go @@ -204,7 +204,7 @@ func resourceAccessContextManagerAccessLevelCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new AccessLevel: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AccessLevel: %s", err) } @@ -239,7 +239,7 @@ func resourceAccessContextManagerAccessLevelRead(d *schema.ResourceData, meta in return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerAccessLevel %q", d.Id())) } @@ -313,7 +313,7 @@ func resourceAccessContextManagerAccessLevelUpdate(d *schema.ResourceData, meta if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AccessLevel %q: %s", d.Id(), err) @@ -340,7 +340,8 @@ func resourceAccessContextManagerAccessLevelDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting AccessLevel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AccessLevel") } diff --git a/google/resource_access_context_manager_access_level_test.go b/google/resource_access_context_manager_access_level_test.go index 50f14e10989..1118520ba07 100644 --- a/google/resource_access_context_manager_access_level_test.go +++ b/google/resource_access_context_manager_access_level_test.go @@ -72,7 +72,7 @@ func testAccCheckAccessContextManagerAccessLevelDestroy(s *terraform.State) erro return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("AccessLevel still exists at %s", url) } diff --git a/google/resource_access_context_manager_access_policy.go b/google/resource_access_context_manager_access_policy.go index 12f8209bc19..abcc6dce0ab 100644 --- a/google/resource_access_context_manager_access_policy.go +++ b/google/resource_access_context_manager_access_policy.go @@ -90,7 +90,7 @@ func resourceAccessContextManagerAccessPolicyCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new AccessPolicy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AccessPolicy: %s", err) } @@ -135,7 +135,7 @@ func resourceAccessContextManagerAccessPolicyRead(d *schema.ResourceData, meta i return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerAccessPolicy %q", d.Id())) } @@ -187,7 +187,7 @@ func resourceAccessContextManagerAccessPolicyUpdate(d *schema.ResourceData, meta if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AccessPolicy %q: %s", d.Id(), err) @@ -214,7 +214,8 @@ func resourceAccessContextManagerAccessPolicyDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting AccessPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AccessPolicy") } diff --git a/google/resource_access_context_manager_access_policy_test.go b/google/resource_access_context_manager_access_policy_test.go index 4b5e8d91f9f..22a392d9007 100644 --- a/google/resource_access_context_manager_access_policy_test.go +++ b/google/resource_access_context_manager_access_policy_test.go @@ -72,7 +72,7 @@ func testAccCheckAccessContextManagerAccessPolicyDestroy(s *terraform.State) err return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("AccessPolicy still exists at %s", url) } diff --git a/google/resource_access_context_manager_service_perimeter.go b/google/resource_access_context_manager_service_perimeter.go index 0575506ecec..a39e86e7bde 100644 --- a/google/resource_access_context_manager_service_perimeter.go +++ b/google/resource_access_context_manager_service_perimeter.go @@ -162,7 +162,7 @@ func resourceAccessContextManagerServicePerimeterCreate(d *schema.ResourceData, } log.Printf("[DEBUG] Creating new ServicePerimeter: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ServicePerimeter: %s", err) } @@ -197,7 +197,7 @@ func resourceAccessContextManagerServicePerimeterRead(d *schema.ResourceData, me return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerServicePerimeter %q", d.Id())) } @@ -280,7 +280,7 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData, if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ServicePerimeter %q: %s", d.Id(), err) @@ -307,7 +307,8 @@ func resourceAccessContextManagerServicePerimeterDelete(d *schema.ResourceData, var obj map[string]interface{} log.Printf("[DEBUG] Deleting ServicePerimeter %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ServicePerimeter") } diff --git a/google/resource_access_context_manager_service_perimeter_test.go b/google/resource_access_context_manager_service_perimeter_test.go index 51b14aca7b7..82bb9ec1def 100644 --- a/google/resource_access_context_manager_service_perimeter_test.go +++ b/google/resource_access_context_manager_service_perimeter_test.go @@ -71,7 +71,7 @@ func testAccCheckAccessContextManagerServicePerimeterDestroy(s *terraform.State) return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ServicePerimeter still exists at %s", url) } diff --git a/google/resource_app_engine_firewall_rule.go b/google/resource_app_engine_firewall_rule.go index 8b74ddecdf7..2bf86991d47 100644 --- a/google/resource_app_engine_firewall_rule.go +++ b/google/resource_app_engine_firewall_rule.go @@ -106,7 +106,11 @@ func resourceAppEngineFirewallRuleCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new FirewallRule: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating FirewallRule: %s", err) } @@ -131,15 +135,15 @@ func resourceAppEngineFirewallRuleRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("AppEngineFirewallRule %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("AppEngineFirewallRule %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading FirewallRule: %s", err) } @@ -163,6 +167,11 @@ func resourceAppEngineFirewallRuleRead(d *schema.ResourceData, meta interface{}) func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) descriptionProp, err := expandAppEngineFirewallRuleDescription(d.Get("description"), d, config) if err != nil { @@ -218,7 +227,7 @@ func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating FirewallRule %q: %s", d.Id(), err) @@ -230,6 +239,11 @@ func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{ func resourceAppEngineFirewallRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{AppEngineBasePath}}apps/{{project}}/firewall/ingressRules/{{priority}}") if err != nil { return err @@ -237,7 +251,8 @@ func resourceAppEngineFirewallRuleDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting FirewallRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "FirewallRule") } diff --git a/google/resource_app_engine_firewall_rule_generated_test.go b/google/resource_app_engine_firewall_rule_generated_test.go index 22a3875244a..71eb1fb11de 100644 --- a/google/resource_app_engine_firewall_rule_generated_test.go +++ b/google/resource_app_engine_firewall_rule_generated_test.go @@ -87,7 +87,7 @@ func testAccCheckAppEngineFirewallRuleDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("AppEngineFirewallRule still exists at %s", url) } diff --git a/google/resource_bigquery_data_transfer_config.go b/google/resource_bigquery_data_transfer_config.go index 544aff3d747..062c9aad397 100644 --- a/google/resource_bigquery_data_transfer_config.go +++ b/google/resource_bigquery_data_transfer_config.go @@ -147,7 +147,11 @@ func resourceBigqueryDataTransferConfigCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new Config: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate), iamMemberMissing) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), iamMemberMissing) if err != nil { return fmt.Errorf("Error creating Config: %s", err) } @@ -180,15 +184,15 @@ func resourceBigqueryDataTransferConfigRead(d *schema.ResourceData, meta interfa return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("BigqueryDataTransferConfig %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("BigqueryDataTransferConfig %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Config: %s", err) } @@ -224,6 +228,11 @@ func resourceBigqueryDataTransferConfigRead(d *schema.ResourceData, meta interfa func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) destinationDatasetIdProp, err := expandBigqueryDataTransferConfigDestinationDatasetId(d.Get("destination_dataset_id"), d, config) if err != nil { @@ -289,7 +298,7 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Config %q: %s", d.Id(), err) @@ -301,6 +310,11 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter func resourceBigqueryDataTransferConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{BigqueryDataTransferBasePath}}{{name}}") if err != nil { return err @@ -308,7 +322,8 @@ func resourceBigqueryDataTransferConfigDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting Config %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Config") } diff --git a/google/resource_bigquery_data_transfer_config_test.go b/google/resource_bigquery_data_transfer_config_test.go index 9ef709b1877..4f436dc1fa8 100644 --- a/google/resource_bigquery_data_transfer_config_test.go +++ b/google/resource_bigquery_data_transfer_config_test.go @@ -91,7 +91,7 @@ func testAccCheckBigqueryDataTransferConfigDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("BigqueryDataTransferConfig still exists at %s", url) } diff --git a/google/resource_binary_authorization_attestor.go b/google/resource_binary_authorization_attestor.go index 219181e305b..0b2cde8615c 100644 --- a/google/resource_binary_authorization_attestor.go +++ b/google/resource_binary_authorization_attestor.go @@ -151,7 +151,11 @@ func resourceBinaryAuthorizationAttestorCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new Attestor: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Attestor: %s", err) } @@ -176,7 +180,11 @@ func resourceBinaryAuthorizationAttestorRead(d *schema.ResourceData, meta interf return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BinaryAuthorizationAttestor %q", d.Id())) } @@ -193,10 +201,6 @@ func resourceBinaryAuthorizationAttestorRead(d *schema.ResourceData, meta interf return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Attestor: %s", err) } @@ -217,6 +221,11 @@ func resourceBinaryAuthorizationAttestorRead(d *schema.ResourceData, meta interf func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) nameProp, err := expandBinaryAuthorizationAttestorName(d.Get("name"), d, config) if err != nil { @@ -248,7 +257,7 @@ func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating Attestor %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Attestor %q: %s", d.Id(), err) @@ -260,6 +269,11 @@ func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta inte func resourceBinaryAuthorizationAttestorDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{BinaryAuthorizationBasePath}}projects/{{project}}/attestors/{{name}}") if err != nil { return err @@ -267,7 +281,8 @@ func resourceBinaryAuthorizationAttestorDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting Attestor %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Attestor") } diff --git a/google/resource_binary_authorization_policy.go b/google/resource_binary_authorization_policy.go index c38f0916cec..0771e0244df 100644 --- a/google/resource_binary_authorization_policy.go +++ b/google/resource_binary_authorization_policy.go @@ -215,7 +215,11 @@ func resourceBinaryAuthorizationPolicyCreate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Creating new Policy: %#v", obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Policy: %s", err) } @@ -240,15 +244,15 @@ func resourceBinaryAuthorizationPolicyRead(d *schema.ResourceData, meta interfac return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("BinaryAuthorizationPolicy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("BinaryAuthorizationPolicy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Policy: %s", err) } @@ -275,6 +279,11 @@ func resourceBinaryAuthorizationPolicyRead(d *schema.ResourceData, meta interfac func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) descriptionProp, err := expandBinaryAuthorizationPolicyDescription(d.Get("description"), d, config) if err != nil { @@ -313,7 +322,7 @@ func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Updating Policy %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Policy %q: %s", d.Id(), err) @@ -325,6 +334,11 @@ func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interf func resourceBinaryAuthorizationPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{BinaryAuthorizationBasePath}}projects/{{project}}/policy") if err != nil { return err @@ -333,7 +347,8 @@ func resourceBinaryAuthorizationPolicyDelete(d *schema.ResourceData, meta interf var obj map[string]interface{} obj = defaultBinaryAuthorizationPolicy(d.Get("project").(string)) log.Printf("[DEBUG] Deleting Policy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Policy") } diff --git a/google/resource_binaryauthorization_policy_test.go b/google/resource_binaryauthorization_policy_test.go index 23524e1a667..a2a1eef0e7f 100644 --- a/google/resource_binaryauthorization_policy_test.go +++ b/google/resource_binaryauthorization_policy_test.go @@ -45,7 +45,7 @@ func testAccCheckBinaryAuthorizationPolicyDefault(pid string) resource.TestCheck return func(s *terraform.State) error { config := testAccProvider.Meta().(*Config) 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, nil) if err != nil { return err } diff --git a/google/resource_cloud_build_trigger.go b/google/resource_cloud_build_trigger.go index b768f8dfeb2..119bafef880 100644 --- a/google/resource_cloud_build_trigger.go +++ b/google/resource_cloud_build_trigger.go @@ -287,7 +287,11 @@ func resourceCloudBuildTriggerCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Trigger: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Trigger: %s", err) } @@ -327,15 +331,15 @@ func resourceCloudBuildTriggerRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("CloudBuildTrigger %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("CloudBuildTrigger %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Trigger: %s", err) } @@ -377,6 +381,11 @@ func resourceCloudBuildTriggerRead(d *schema.ResourceData, meta interface{}) err func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) descriptionProp, err := expandCloudBuildTriggerDescription(d.Get("description"), d, config) if err != nil { @@ -434,7 +443,7 @@ func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) e log.Printf("[DEBUG] Updating Trigger %q: %#v", d.Id(), obj) obj["id"] = d.Get("trigger_id") - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Trigger %q: %s", d.Id(), err) @@ -446,6 +455,11 @@ func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) e func resourceCloudBuildTriggerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{CloudBuildBasePath}}projects/{{project}}/triggers/{{trigger_id}}") if err != nil { return err @@ -453,7 +467,8 @@ func resourceCloudBuildTriggerDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Trigger %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Trigger") } diff --git a/google/resource_cloud_build_trigger_generated_test.go b/google/resource_cloud_build_trigger_generated_test.go index 54333c27e07..5959df3fc53 100644 --- a/google/resource_cloud_build_trigger_generated_test.go +++ b/google/resource_cloud_build_trigger_generated_test.go @@ -82,7 +82,7 @@ func testAccCheckCloudBuildTriggerDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("CloudBuildTrigger still exists at %s", url) } diff --git a/google/resource_cloud_scheduler_job.go b/google/resource_cloud_scheduler_job.go index 9d79f66bd4c..69d2ab0d16a 100644 --- a/google/resource_cloud_scheduler_job.go +++ b/google/resource_cloud_scheduler_job.go @@ -291,7 +291,11 @@ func resourceCloudSchedulerJobCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Job: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Job: %s", err) } @@ -316,15 +320,15 @@ func resourceCloudSchedulerJobRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("CloudSchedulerJob %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("CloudSchedulerJob %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Job: %s", err) } @@ -368,6 +372,11 @@ func resourceCloudSchedulerJobRead(d *schema.ResourceData, meta interface{}) err func resourceCloudSchedulerJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{CloudSchedulerBasePath}}projects/{{project}}/locations/{{region}}/jobs/{{name}}") if err != nil { return err @@ -375,7 +384,8 @@ func resourceCloudSchedulerJobDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Job %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Job") } diff --git a/google/resource_cloud_scheduler_job_generated_test.go b/google/resource_cloud_scheduler_job_generated_test.go index d8b27f2f4ed..b1c78b55b66 100644 --- a/google/resource_cloud_scheduler_job_generated_test.go +++ b/google/resource_cloud_scheduler_job_generated_test.go @@ -173,7 +173,7 @@ func testAccCheckCloudSchedulerJobDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("CloudSchedulerJob still exists at %s", url) } diff --git a/google/resource_compute_address.go b/google/resource_compute_address.go index 7199c3363d5..9f9f148ef4b 100644 --- a/google/resource_compute_address.go +++ b/google/resource_compute_address.go @@ -164,7 +164,11 @@ func resourceComputeAddressCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Address: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Address: %s", err) } @@ -176,10 +180,6 @@ func resourceComputeAddressCreate(d *schema.ResourceData, meta interface{}) erro } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -209,15 +209,15 @@ func resourceComputeAddressRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeAddress %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeAddress %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Address: %s", err) } @@ -259,6 +259,11 @@ func resourceComputeAddressRead(d *schema.ResourceData, meta interface{}) error func resourceComputeAddressDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/addresses/{{name}}") if err != nil { return err @@ -266,15 +271,12 @@ func resourceComputeAddressDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Address %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Address") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_address_generated_test.go b/google/resource_compute_address_generated_test.go index dd2fb9e9c22..3ec47b14f71 100644 --- a/google/resource_compute_address_generated_test.go +++ b/google/resource_compute_address_generated_test.go @@ -175,7 +175,7 @@ func testAccCheckComputeAddressDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeAddress still exists at %s", url) } diff --git a/google/resource_compute_autoscaler.go b/google/resource_compute_autoscaler.go index fee77266e59..2182d4809f2 100644 --- a/google/resource_compute_autoscaler.go +++ b/google/resource_compute_autoscaler.go @@ -195,7 +195,11 @@ func resourceComputeAutoscalerCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Autoscaler: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Autoscaler: %s", err) } @@ -207,10 +211,6 @@ func resourceComputeAutoscalerCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -240,15 +240,15 @@ func resourceComputeAutoscalerRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeAutoscaler %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeAutoscaler %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Autoscaler: %s", err) } @@ -281,6 +281,11 @@ func resourceComputeAutoscalerRead(d *schema.ResourceData, meta interface{}) err func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) nameProp, err := expandComputeAutoscalerName(d.Get("name"), d, config) if err != nil { @@ -319,16 +324,12 @@ func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Updating Autoscaler %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Autoscaler %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -349,6 +350,11 @@ func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeAutoscalerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/autoscalers/{{name}}") if err != nil { return err @@ -356,15 +362,12 @@ func resourceComputeAutoscalerDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Autoscaler %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Autoscaler") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_autoscaler_generated_test.go b/google/resource_compute_autoscaler_generated_test.go index 8aef29b52ee..cca3f02543e 100644 --- a/google/resource_compute_autoscaler_generated_test.go +++ b/google/resource_compute_autoscaler_generated_test.go @@ -127,7 +127,7 @@ func testAccCheckComputeAutoscalerDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeAutoscaler still exists at %s", url) } diff --git a/google/resource_compute_backend_bucket.go b/google/resource_compute_backend_bucket.go index 15a9c60eb42..4665da6095c 100644 --- a/google/resource_compute_backend_bucket.go +++ b/google/resource_compute_backend_bucket.go @@ -135,7 +135,11 @@ func resourceComputeBackendBucketCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new BackendBucket: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendBucket: %s", err) } @@ -147,10 +151,6 @@ func resourceComputeBackendBucketCreate(d *schema.ResourceData, meta interface{} } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -180,15 +180,15 @@ func resourceComputeBackendBucketRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendBucket %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendBucket %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading BackendBucket: %s", err) } @@ -221,6 +221,11 @@ func resourceComputeBackendBucketRead(d *schema.ResourceData, meta interface{}) func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) bucketNameProp, err := expandComputeBackendBucketBucketName(d.Get("bucket_name"), d, config) if err != nil { @@ -259,16 +264,12 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Updating BackendBucket %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating BackendBucket %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -289,6 +290,11 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{} func resourceComputeBackendBucketDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/backendBuckets/{{name}}") if err != nil { return err @@ -296,15 +302,12 @@ func resourceComputeBackendBucketDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendBucket %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendBucket") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_backend_bucket_generated_test.go b/google/resource_compute_backend_bucket_generated_test.go index 4019fd1e822..af523c6c639 100644 --- a/google/resource_compute_backend_bucket_generated_test.go +++ b/google/resource_compute_backend_bucket_generated_test.go @@ -80,7 +80,7 @@ func testAccCheckComputeBackendBucketDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeBackendBucket still exists at %s", url) } diff --git a/google/resource_compute_backend_bucket_signed_url_key.go b/google/resource_compute_backend_bucket_signed_url_key.go index 6b524cd3e81..b0ee243819f 100644 --- a/google/resource_compute_backend_bucket_signed_url_key.go +++ b/google/resource_compute_backend_bucket_signed_url_key.go @@ -100,7 +100,11 @@ func resourceComputeBackendBucketSignedUrlKeyCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new BackendBucketSignedUrlKey: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendBucketSignedUrlKey: %s", err) } @@ -112,10 +116,6 @@ func resourceComputeBackendBucketSignedUrlKeyCreate(d *schema.ResourceData, meta } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -145,7 +145,11 @@ func resourceComputeBackendBucketSignedUrlKeyRead(d *schema.ResourceData, meta i return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendBucketSignedUrlKey %q", d.Id())) } @@ -162,10 +166,6 @@ func resourceComputeBackendBucketSignedUrlKeyRead(d *schema.ResourceData, meta i return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading BackendBucketSignedUrlKey: %s", err) } @@ -180,6 +180,11 @@ func resourceComputeBackendBucketSignedUrlKeyRead(d *schema.ResourceData, meta i func resourceComputeBackendBucketSignedUrlKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "signedUrlKey/{{project}}/backendBuckets/{{backend_bucket}}/") if err != nil { return err @@ -194,15 +199,12 @@ func resourceComputeBackendBucketSignedUrlKeyDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendBucketSignedUrlKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendBucketSignedUrlKey") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_backend_bucket_signed_url_key_test.go b/google/resource_compute_backend_bucket_signed_url_key_test.go index f243376b420..3a3a273636d 100644 --- a/google/resource_compute_backend_bucket_signed_url_key_test.go +++ b/google/resource_compute_backend_bucket_signed_url_key_test.go @@ -92,7 +92,7 @@ func checkComputeBackendBucketSignedUrlKeyExists(s *terraform.State) (bool, erro return false, err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return false, err } diff --git a/google/resource_compute_backend_service.go b/google/resource_compute_backend_service.go index 1e18cf8657f..18fa20ed818 100644 --- a/google/resource_compute_backend_service.go +++ b/google/resource_compute_backend_service.go @@ -491,7 +491,11 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new BackendService: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendService: %s", err) } @@ -503,10 +507,6 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -555,7 +555,11 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendService %q", d.Id())) } @@ -572,10 +576,6 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading BackendService: %s", err) } @@ -648,6 +648,11 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) affinityCookieTtlSecProp, err := expandComputeBackendServiceAffinityCookieTtlSec(d.Get("affinity_cookie_ttl_sec"), d, config) if err != nil { @@ -757,16 +762,12 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Updating BackendService %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating BackendService %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -805,6 +806,11 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/backendServices/{{name}}") if err != nil { return err @@ -812,15 +818,12 @@ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendService %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendService") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_backend_service_generated_test.go b/google/resource_compute_backend_service_generated_test.go index b4a79a1ef53..2edf49ce536 100644 --- a/google/resource_compute_backend_service_generated_test.go +++ b/google/resource_compute_backend_service_generated_test.go @@ -80,7 +80,7 @@ func testAccCheckComputeBackendServiceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeBackendService still exists at %s", url) } diff --git a/google/resource_compute_backend_service_signed_url_key.go b/google/resource_compute_backend_service_signed_url_key.go index a3410fb11e6..f4120433763 100644 --- a/google/resource_compute_backend_service_signed_url_key.go +++ b/google/resource_compute_backend_service_signed_url_key.go @@ -100,7 +100,11 @@ func resourceComputeBackendServiceSignedUrlKeyCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new BackendServiceSignedUrlKey: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendServiceSignedUrlKey: %s", err) } @@ -112,10 +116,6 @@ func resourceComputeBackendServiceSignedUrlKeyCreate(d *schema.ResourceData, met } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -145,7 +145,11 @@ func resourceComputeBackendServiceSignedUrlKeyRead(d *schema.ResourceData, meta return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendServiceSignedUrlKey %q", d.Id())) } @@ -162,10 +166,6 @@ func resourceComputeBackendServiceSignedUrlKeyRead(d *schema.ResourceData, meta return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading BackendServiceSignedUrlKey: %s", err) } @@ -180,6 +180,11 @@ func resourceComputeBackendServiceSignedUrlKeyRead(d *schema.ResourceData, meta func resourceComputeBackendServiceSignedUrlKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "signedUrlKey/{{project}}/backendServices/{{backend_service}}/") if err != nil { return err @@ -194,15 +199,12 @@ func resourceComputeBackendServiceSignedUrlKeyDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendServiceSignedUrlKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendServiceSignedUrlKey") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_backend_service_signed_url_key_test.go b/google/resource_compute_backend_service_signed_url_key_test.go index 51f344d2e57..3d67b9f6c4d 100644 --- a/google/resource_compute_backend_service_signed_url_key_test.go +++ b/google/resource_compute_backend_service_signed_url_key_test.go @@ -92,7 +92,7 @@ func checkComputeBackendServiceSignedUrlKeyExists(s *terraform.State) (bool, err return false, err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return false, err } diff --git a/google/resource_compute_disk.go b/google/resource_compute_disk.go index 4a906405355..53b015ec0c3 100644 --- a/google/resource_compute_disk.go +++ b/google/resource_compute_disk.go @@ -524,7 +524,11 @@ func resourceComputeDiskCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Disk: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Disk: %s", err) } @@ -536,10 +540,6 @@ func resourceComputeDiskCreate(d *schema.ResourceData, meta interface{}) error { } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -569,7 +569,11 @@ func resourceComputeDiskRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDisk %q", d.Id())) } @@ -586,10 +590,6 @@ func resourceComputeDiskRead(d *schema.ResourceData, meta interface{}) error { return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Disk: %s", err) } @@ -661,6 +661,11 @@ func resourceComputeDiskRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("label_fingerprint") || d.HasChange("labels") { @@ -682,15 +687,11 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Disk %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -721,15 +722,11 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Disk %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -755,13 +752,18 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/disks/{{name}}") if err != nil { return err } var obj map[string]interface{} - readRes, err := sendRequest(config, "GET", url, nil) + readRes, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDisk %q", d.Id())) } @@ -816,15 +818,12 @@ func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { } } log.Printf("[DEBUG] Deleting Disk %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Disk") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_disk_generated_test.go b/google/resource_compute_disk_generated_test.go index 3f05d3ebe94..6469fa88bb9 100644 --- a/google/resource_compute_disk_generated_test.go +++ b/google/resource_compute_disk_generated_test.go @@ -79,7 +79,7 @@ func testAccCheckComputeDiskDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeDisk still exists at %s", url) } diff --git a/google/resource_compute_firewall.go b/google/resource_compute_firewall.go index 910bfff59cf..6962775b41a 100644 --- a/google/resource_compute_firewall.go +++ b/google/resource_compute_firewall.go @@ -322,7 +322,11 @@ func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Firewall: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Firewall: %s", err) } @@ -334,10 +338,6 @@ func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) err } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -367,15 +367,15 @@ func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeFirewall %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeFirewall %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Firewall: %s", err) } @@ -435,6 +435,11 @@ func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) allowedProp, err := expandComputeFirewallAllow(d.Get("allow"), d, config) if err != nil { @@ -515,16 +520,12 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Firewall %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Firewall %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -545,6 +546,11 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/firewalls/{{name}}") if err != nil { return err @@ -552,15 +558,12 @@ func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Firewall %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Firewall") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_firewall_generated_test.go b/google/resource_compute_firewall_generated_test.go index 9140244f30b..b5b388daea4 100644 --- a/google/resource_compute_firewall_generated_test.go +++ b/google/resource_compute_firewall_generated_test.go @@ -88,7 +88,7 @@ func testAccCheckComputeFirewallDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeFirewall still exists at %s", url) } diff --git a/google/resource_compute_forwarding_rule.go b/google/resource_compute_forwarding_rule.go index bb8cef660e8..a6b089dd3f9 100644 --- a/google/resource_compute_forwarding_rule.go +++ b/google/resource_compute_forwarding_rule.go @@ -277,7 +277,11 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new ForwardingRule: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ForwardingRule: %s", err) } @@ -289,10 +293,6 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -322,15 +322,15 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeForwardingRule %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeForwardingRule %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading ForwardingRule: %s", err) } @@ -399,6 +399,11 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("target") { @@ -414,15 +419,11 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ForwardingRule %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -448,6 +449,11 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}") if err != nil { return err @@ -455,15 +461,12 @@ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting ForwardingRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ForwardingRule") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_forwarding_rule_generated_test.go b/google/resource_compute_forwarding_rule_generated_test.go index cc9b5af5461..97a7739509a 100644 --- a/google/resource_compute_forwarding_rule_generated_test.go +++ b/google/resource_compute_forwarding_rule_generated_test.go @@ -146,7 +146,7 @@ func testAccCheckComputeForwardingRuleDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeForwardingRule still exists at %s", url) } diff --git a/google/resource_compute_global_address.go b/google/resource_compute_global_address.go index 9d46d18b9c3..2d484a6ca4a 100644 --- a/google/resource_compute_global_address.go +++ b/google/resource_compute_global_address.go @@ -167,7 +167,11 @@ func resourceComputeGlobalAddressCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new GlobalAddress: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalAddress: %s", err) } @@ -179,10 +183,6 @@ func resourceComputeGlobalAddressCreate(d *schema.ResourceData, meta interface{} } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -212,15 +212,15 @@ func resourceComputeGlobalAddressRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalAddress %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalAddress %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading GlobalAddress: %s", err) } @@ -262,6 +262,11 @@ func resourceComputeGlobalAddressRead(d *schema.ResourceData, meta interface{}) func resourceComputeGlobalAddressDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/addresses/{{name}}") if err != nil { return err @@ -269,15 +274,12 @@ func resourceComputeGlobalAddressDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting GlobalAddress %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalAddress") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_global_address_generated_test.go b/google/resource_compute_global_address_generated_test.go index 1d51d126ded..ccfaa399144 100644 --- a/google/resource_compute_global_address_generated_test.go +++ b/google/resource_compute_global_address_generated_test.go @@ -72,7 +72,7 @@ func testAccCheckComputeGlobalAddressDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeGlobalAddress still exists at %s", url) } diff --git a/google/resource_compute_global_forwarding_rule.go b/google/resource_compute_global_forwarding_rule.go index 45ade69d29d..b8721248b85 100644 --- a/google/resource_compute_global_forwarding_rule.go +++ b/google/resource_compute_global_forwarding_rule.go @@ -164,7 +164,11 @@ func resourceComputeGlobalForwardingRuleCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new GlobalForwardingRule: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalForwardingRule: %s", err) } @@ -176,10 +180,6 @@ func resourceComputeGlobalForwardingRuleCreate(d *schema.ResourceData, meta inte } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -209,15 +209,15 @@ func resourceComputeGlobalForwardingRuleRead(d *schema.ResourceData, meta interf return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalForwardingRule %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalForwardingRule %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading GlobalForwardingRule: %s", err) } @@ -256,6 +256,11 @@ func resourceComputeGlobalForwardingRuleRead(d *schema.ResourceData, meta interf func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("target") { @@ -271,15 +276,11 @@ func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating GlobalForwardingRule %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -305,6 +306,11 @@ func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta inte func resourceComputeGlobalForwardingRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/forwardingRules/{{name}}") if err != nil { return err @@ -312,15 +318,12 @@ func resourceComputeGlobalForwardingRuleDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting GlobalForwardingRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalForwardingRule") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_global_forwarding_rule_generated_test.go b/google/resource_compute_global_forwarding_rule_generated_test.go index f62d4223413..33eeb3194bd 100644 --- a/google/resource_compute_global_forwarding_rule_generated_test.go +++ b/google/resource_compute_global_forwarding_rule_generated_test.go @@ -117,7 +117,7 @@ func testAccCheckComputeGlobalForwardingRuleDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeGlobalForwardingRule still exists at %s", url) } diff --git a/google/resource_compute_health_check.go b/google/resource_compute_health_check.go index a38654c29c0..41bd1f1ac44 100644 --- a/google/resource_compute_health_check.go +++ b/google/resource_compute_health_check.go @@ -413,7 +413,11 @@ func resourceComputeHealthCheckCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new HealthCheck: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HealthCheck: %s", err) } @@ -425,10 +429,6 @@ func resourceComputeHealthCheckCreate(d *schema.ResourceData, meta interface{}) } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -458,15 +458,15 @@ func resourceComputeHealthCheckRead(d *schema.ResourceData, meta interface{}) er return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeHealthCheck %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeHealthCheck %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading HealthCheck: %s", err) } @@ -517,6 +517,11 @@ func resourceComputeHealthCheckRead(d *schema.ResourceData, meta interface{}) er func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) if err != nil { @@ -590,16 +595,12 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Updating HealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HealthCheck %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -620,6 +621,11 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) func resourceComputeHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/healthChecks/{{name}}") if err != nil { return err @@ -627,15 +633,12 @@ func resourceComputeHealthCheckDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting HealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HealthCheck") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_health_check_generated_test.go b/google/resource_compute_health_check_generated_test.go index e51eef5d035..d78f8a788fa 100644 --- a/google/resource_compute_health_check_generated_test.go +++ b/google/resource_compute_health_check_generated_test.go @@ -79,7 +79,7 @@ func testAccCheckComputeHealthCheckDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeHealthCheck still exists at %s", url) } diff --git a/google/resource_compute_http_health_check.go b/google/resource_compute_http_health_check.go index fa20bda6e42..984e1dbe70f 100644 --- a/google/resource_compute_http_health_check.go +++ b/google/resource_compute_http_health_check.go @@ -169,7 +169,11 @@ func resourceComputeHttpHealthCheckCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new HttpHealthCheck: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HttpHealthCheck: %s", err) } @@ -181,10 +185,6 @@ func resourceComputeHttpHealthCheckCreate(d *schema.ResourceData, meta interface } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -214,15 +214,15 @@ func resourceComputeHttpHealthCheckRead(d *schema.ResourceData, meta interface{} return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpHealthCheck %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpHealthCheck %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading HttpHealthCheck: %s", err) } @@ -267,6 +267,11 @@ func resourceComputeHttpHealthCheckRead(d *schema.ResourceData, meta interface{} func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHttpHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) if err != nil { @@ -329,16 +334,12 @@ func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Updating HttpHealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HttpHealthCheck %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -359,6 +360,11 @@ func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface func resourceComputeHttpHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/httpHealthChecks/{{name}}") if err != nil { return err @@ -366,15 +372,12 @@ func resourceComputeHttpHealthCheckDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting HttpHealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HttpHealthCheck") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_http_health_check_generated_test.go b/google/resource_compute_http_health_check_generated_test.go index 5bab7f1fd6a..e30f6dc3eb7 100644 --- a/google/resource_compute_http_health_check_generated_test.go +++ b/google/resource_compute_http_health_check_generated_test.go @@ -76,7 +76,7 @@ func testAccCheckComputeHttpHealthCheckDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeHttpHealthCheck still exists at %s", url) } diff --git a/google/resource_compute_https_health_check.go b/google/resource_compute_https_health_check.go index 28b4075d6b2..c8e4e79785a 100644 --- a/google/resource_compute_https_health_check.go +++ b/google/resource_compute_https_health_check.go @@ -169,7 +169,11 @@ func resourceComputeHttpsHealthCheckCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new HttpsHealthCheck: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HttpsHealthCheck: %s", err) } @@ -181,10 +185,6 @@ func resourceComputeHttpsHealthCheckCreate(d *schema.ResourceData, meta interfac } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -214,15 +214,15 @@ func resourceComputeHttpsHealthCheckRead(d *schema.ResourceData, meta interface{ return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpsHealthCheck %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpsHealthCheck %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading HttpsHealthCheck: %s", err) } @@ -267,6 +267,11 @@ func resourceComputeHttpsHealthCheckRead(d *schema.ResourceData, meta interface{ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHttpsHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) if err != nil { @@ -329,16 +334,12 @@ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Updating HttpsHealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HttpsHealthCheck %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -359,6 +360,11 @@ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interfac func resourceComputeHttpsHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/httpsHealthChecks/{{name}}") if err != nil { return err @@ -366,15 +372,12 @@ func resourceComputeHttpsHealthCheckDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting HttpsHealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HttpsHealthCheck") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_https_health_check_generated_test.go b/google/resource_compute_https_health_check_generated_test.go index ab5924954b8..462875a5f16 100644 --- a/google/resource_compute_https_health_check_generated_test.go +++ b/google/resource_compute_https_health_check_generated_test.go @@ -76,7 +76,7 @@ func testAccCheckComputeHttpsHealthCheckDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeHttpsHealthCheck still exists at %s", url) } diff --git a/google/resource_compute_image.go b/google/resource_compute_image.go index a9ffe66327d..a599cad1fae 100644 --- a/google/resource_compute_image.go +++ b/google/resource_compute_image.go @@ -204,7 +204,11 @@ func resourceComputeImageCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Image: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Image: %s", err) } @@ -216,10 +220,6 @@ func resourceComputeImageCreate(d *schema.ResourceData, meta interface{}) error } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -249,15 +249,15 @@ func resourceComputeImageRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeImage %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeImage %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Image: %s", err) } @@ -302,6 +302,11 @@ func resourceComputeImageRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("labels") || d.HasChange("label_fingerprint") { @@ -323,15 +328,11 @@ func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Image %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -358,6 +359,11 @@ func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeImageDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/images/{{name}}") if err != nil { return err @@ -365,15 +371,12 @@ func resourceComputeImageDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Image %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Image") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_image_generated_test.go b/google/resource_compute_image_generated_test.go index e345b0d19c9..0f30d8b812d 100644 --- a/google/resource_compute_image_generated_test.go +++ b/google/resource_compute_image_generated_test.go @@ -77,7 +77,7 @@ func testAccCheckComputeImageDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeImage still exists at %s", url) } diff --git a/google/resource_compute_interconnect_attachment.go b/google/resource_compute_interconnect_attachment.go index 8a1af8c516f..4d1305a0662 100644 --- a/google/resource_compute_interconnect_attachment.go +++ b/google/resource_compute_interconnect_attachment.go @@ -218,7 +218,11 @@ func resourceComputeInterconnectAttachmentCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new InterconnectAttachment: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating InterconnectAttachment: %s", err) } @@ -230,10 +234,6 @@ func resourceComputeInterconnectAttachmentCreate(d *schema.ResourceData, meta in } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -263,15 +263,15 @@ func resourceComputeInterconnectAttachmentRead(d *schema.ResourceData, meta inte return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeInterconnectAttachment %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeInterconnectAttachment %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading InterconnectAttachment: %s", err) } @@ -337,6 +337,11 @@ func resourceComputeInterconnectAttachmentRead(d *schema.ResourceData, meta inte func resourceComputeInterconnectAttachmentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/interconnectAttachments/{{name}}") if err != nil { return err @@ -344,15 +349,12 @@ func resourceComputeInterconnectAttachmentDelete(d *schema.ResourceData, meta in var obj map[string]interface{} log.Printf("[DEBUG] Deleting InterconnectAttachment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "InterconnectAttachment") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_network.go b/google/resource_compute_network.go index 2d1a7fb8d14..e897ee590ef 100644 --- a/google/resource_compute_network.go +++ b/google/resource_compute_network.go @@ -141,7 +141,11 @@ func resourceComputeNetworkCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Network: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Network: %s", err) } @@ -153,10 +157,6 @@ func resourceComputeNetworkCreate(d *schema.ResourceData, meta interface{}) erro } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -215,7 +215,11 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetwork %q", d.Id())) } @@ -232,10 +236,6 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Network: %s", err) } @@ -275,6 +275,11 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("routing_mode") { @@ -290,15 +295,11 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Network %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -324,6 +325,11 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro func resourceComputeNetworkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/networks/{{name}}") if err != nil { return err @@ -331,15 +337,12 @@ func resourceComputeNetworkDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Network %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Network") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_network_endpoint.go b/google/resource_compute_network_endpoint.go index 122e159002e..5e7189cdb95 100644 --- a/google/resource_compute_network_endpoint.go +++ b/google/resource_compute_network_endpoint.go @@ -120,7 +120,11 @@ func resourceComputeNetworkEndpointCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new NetworkEndpoint: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NetworkEndpoint: %s", err) } @@ -132,10 +136,6 @@ func resourceComputeNetworkEndpointCreate(d *schema.ResourceData, meta interface } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -165,7 +165,11 @@ func resourceComputeNetworkEndpointRead(d *schema.ResourceData, meta interface{} return err } - res, err := sendRequest(config, "POST", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "POST", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkEndpoint %q", d.Id())) } @@ -194,10 +198,6 @@ func resourceComputeNetworkEndpointRead(d *schema.ResourceData, meta interface{} return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading NetworkEndpoint: %s", err) } @@ -218,6 +218,11 @@ func resourceComputeNetworkEndpointRead(d *schema.ResourceData, meta interface{} func resourceComputeNetworkEndpointDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "networkEndpoint/{{project}}/{{zone}}/{{network_endpoint_group}}") if err != nil { return err @@ -254,15 +259,12 @@ func resourceComputeNetworkEndpointDelete(d *schema.ResourceData, meta interface "networkEndpoints": []map[string]interface{}{toDelete}, } log.Printf("[DEBUG] Deleting NetworkEndpoint %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NetworkEndpoint") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_network_endpoint_group.go b/google/resource_compute_network_endpoint_group.go index 3e9969e6ef3..bbb3f96ee0c 100644 --- a/google/resource_compute_network_endpoint_group.go +++ b/google/resource_compute_network_endpoint_group.go @@ -155,7 +155,11 @@ func resourceComputeNetworkEndpointGroupCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new NetworkEndpointGroup: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NetworkEndpointGroup: %s", err) } @@ -167,10 +171,6 @@ func resourceComputeNetworkEndpointGroupCreate(d *schema.ResourceData, meta inte } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -200,15 +200,15 @@ func resourceComputeNetworkEndpointGroupRead(d *schema.ResourceData, meta interf return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkEndpointGroup %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkEndpointGroup %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading NetworkEndpointGroup: %s", err) } @@ -247,6 +247,11 @@ func resourceComputeNetworkEndpointGroupRead(d *schema.ResourceData, meta interf func resourceComputeNetworkEndpointGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/networkEndpointGroups/{{name}}") if err != nil { return err @@ -254,15 +259,12 @@ func resourceComputeNetworkEndpointGroupDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting NetworkEndpointGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NetworkEndpointGroup") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_network_endpoint_group_generated_test.go b/google/resource_compute_network_endpoint_group_generated_test.go index 97256c2524b..9d7c152071d 100644 --- a/google/resource_compute_network_endpoint_group_generated_test.go +++ b/google/resource_compute_network_endpoint_group_generated_test.go @@ -88,7 +88,7 @@ func testAccCheckComputeNetworkEndpointGroupDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeNetworkEndpointGroup still exists at %s", url) } diff --git a/google/resource_compute_network_endpoint_test.go b/google/resource_compute_network_endpoint_test.go index 32755db8a3d..79f8dd74c88 100644 --- a/google/resource_compute_network_endpoint_test.go +++ b/google/resource_compute_network_endpoint_test.go @@ -227,7 +227,7 @@ func testAccComputeNetworkEndpointsListEndpointPorts(negId string) (map[string]s config := testAccProvider.Meta().(*Config) 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, nil) if err != nil { return nil, err } diff --git a/google/resource_compute_network_generated_test.go b/google/resource_compute_network_generated_test.go index 0355cb61bb7..b63d70f9f42 100644 --- a/google/resource_compute_network_generated_test.go +++ b/google/resource_compute_network_generated_test.go @@ -72,7 +72,7 @@ func testAccCheckComputeNetworkDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeNetwork still exists at %s", url) } diff --git a/google/resource_compute_node_group.go b/google/resource_compute_node_group.go index 0008f6dfacd..253b61c43be 100644 --- a/google/resource_compute_node_group.go +++ b/google/resource_compute_node_group.go @@ -129,7 +129,11 @@ func resourceComputeNodeGroupCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new NodeGroup: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NodeGroup: %s", err) } @@ -141,10 +145,6 @@ func resourceComputeNodeGroupCreate(d *schema.ResourceData, meta interface{}) er } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -174,15 +174,15 @@ func resourceComputeNodeGroupRead(d *schema.ResourceData, meta interface{}) erro return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeGroup %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeGroup %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading NodeGroup: %s", err) } @@ -215,6 +215,11 @@ func resourceComputeNodeGroupRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("node_template") { @@ -230,15 +235,11 @@ func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating NodeGroup %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -264,6 +265,11 @@ func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) er func resourceComputeNodeGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/nodeGroups/{{name}}") if err != nil { return err @@ -271,15 +277,12 @@ func resourceComputeNodeGroupDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting NodeGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NodeGroup") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_node_group_generated_test.go b/google/resource_compute_node_group_generated_test.go index e29df97f39d..7969c051208 100644 --- a/google/resource_compute_node_group_generated_test.go +++ b/google/resource_compute_node_group_generated_test.go @@ -87,7 +87,7 @@ func testAccCheckComputeNodeGroupDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeNodeGroup still exists at %s", url) } diff --git a/google/resource_compute_node_template.go b/google/resource_compute_node_template.go index 641ee3ef3dd..5a9ed33ff83 100644 --- a/google/resource_compute_node_template.go +++ b/google/resource_compute_node_template.go @@ -159,7 +159,11 @@ func resourceComputeNodeTemplateCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new NodeTemplate: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NodeTemplate: %s", err) } @@ -171,10 +175,6 @@ func resourceComputeNodeTemplateCreate(d *schema.ResourceData, meta interface{}) } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -204,15 +204,15 @@ func resourceComputeNodeTemplateRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeTemplate %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeTemplate %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading NodeTemplate: %s", err) } @@ -248,6 +248,11 @@ func resourceComputeNodeTemplateRead(d *schema.ResourceData, meta interface{}) e func resourceComputeNodeTemplateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/nodeTemplates/{{name}}") if err != nil { return err @@ -255,15 +260,12 @@ func resourceComputeNodeTemplateDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting NodeTemplate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NodeTemplate") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_node_template_generated_test.go b/google/resource_compute_node_template_generated_test.go index 107f899087a..4da6fd12f4b 100644 --- a/google/resource_compute_node_template_generated_test.go +++ b/google/resource_compute_node_template_generated_test.go @@ -78,7 +78,7 @@ func testAccCheckComputeNodeTemplateDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeNodeTemplate still exists at %s", url) } diff --git a/google/resource_compute_region_autoscaler.go b/google/resource_compute_region_autoscaler.go index 8d28dfa781c..d9300088aaf 100644 --- a/google/resource_compute_region_autoscaler.go +++ b/google/resource_compute_region_autoscaler.go @@ -195,7 +195,11 @@ func resourceComputeRegionAutoscalerCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new RegionAutoscaler: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionAutoscaler: %s", err) } @@ -207,10 +211,6 @@ func resourceComputeRegionAutoscalerCreate(d *schema.ResourceData, meta interfac } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -240,15 +240,15 @@ func resourceComputeRegionAutoscalerRead(d *schema.ResourceData, meta interface{ return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionAutoscaler %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionAutoscaler %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading RegionAutoscaler: %s", err) } @@ -281,6 +281,11 @@ func resourceComputeRegionAutoscalerRead(d *schema.ResourceData, meta interface{ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) nameProp, err := expandComputeRegionAutoscalerName(d.Get("name"), d, config) if err != nil { @@ -319,16 +324,12 @@ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Updating RegionAutoscaler %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionAutoscaler %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -349,6 +350,11 @@ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interfac func resourceComputeRegionAutoscalerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/autoscalers/{{name}}") if err != nil { return err @@ -356,15 +362,12 @@ func resourceComputeRegionAutoscalerDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionAutoscaler %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionAutoscaler") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_region_autoscaler_generated_test.go b/google/resource_compute_region_autoscaler_generated_test.go index 23786fd221c..08dcac2be36 100644 --- a/google/resource_compute_region_autoscaler_generated_test.go +++ b/google/resource_compute_region_autoscaler_generated_test.go @@ -127,7 +127,7 @@ func testAccCheckComputeRegionAutoscalerDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeRegionAutoscaler still exists at %s", url) } diff --git a/google/resource_compute_region_backend_service.go b/google/resource_compute_region_backend_service.go index a4087b794d4..43d393d7a42 100644 --- a/google/resource_compute_region_backend_service.go +++ b/google/resource_compute_region_backend_service.go @@ -224,7 +224,11 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new RegionBackendService: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionBackendService: %s", err) } @@ -236,10 +240,6 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -269,15 +269,15 @@ func resourceComputeRegionBackendServiceRead(d *schema.ResourceData, meta interf return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionBackendService %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionBackendService %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading RegionBackendService: %s", err) } @@ -332,6 +332,11 @@ func resourceComputeRegionBackendServiceRead(d *schema.ResourceData, meta interf func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) nameProp, err := expandComputeRegionBackendServiceName(d.Get("name"), d, config) if err != nil { @@ -406,16 +411,12 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating RegionBackendService %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionBackendService %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -436,6 +437,11 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/backendServices/{{name}}") if err != nil { return err @@ -443,15 +449,12 @@ func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionBackendService %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionBackendService") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_region_backend_service_generated_test.go b/google/resource_compute_region_backend_service_generated_test.go index 2da9e7dd572..a1379845ceb 100644 --- a/google/resource_compute_region_backend_service_generated_test.go +++ b/google/resource_compute_region_backend_service_generated_test.go @@ -86,7 +86,7 @@ func testAccCheckComputeRegionBackendServiceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeRegionBackendService still exists at %s", url) } diff --git a/google/resource_compute_region_disk.go b/google/resource_compute_region_disk.go index 8251fdf40bf..1a39ba42ce6 100644 --- a/google/resource_compute_region_disk.go +++ b/google/resource_compute_region_disk.go @@ -274,7 +274,11 @@ func resourceComputeRegionDiskCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new RegionDisk: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionDisk: %s", err) } @@ -286,10 +290,6 @@ func resourceComputeRegionDiskCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -319,7 +319,11 @@ func resourceComputeRegionDiskRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionDisk %q", d.Id())) } @@ -336,10 +340,6 @@ func resourceComputeRegionDiskRead(d *schema.ResourceData, meta interface{}) err return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading RegionDisk: %s", err) } @@ -405,6 +405,11 @@ func resourceComputeRegionDiskRead(d *schema.ResourceData, meta interface{}) err func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("label_fingerprint") || d.HasChange("labels") { @@ -426,15 +431,11 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionDisk %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -465,15 +466,11 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionDisk %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -499,13 +496,18 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeRegionDiskDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/disks/{{name}}") if err != nil { return err } var obj map[string]interface{} - readRes, err := sendRequest(config, "GET", url, nil) + readRes, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDisk %q", d.Id())) } @@ -560,15 +562,12 @@ func resourceComputeRegionDiskDelete(d *schema.ResourceData, meta interface{}) e } } log.Printf("[DEBUG] Deleting RegionDisk %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionDisk") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_region_disk_generated_test.go b/google/resource_compute_region_disk_generated_test.go index 6cd7e72c6f6..4f124be1e28 100644 --- a/google/resource_compute_region_disk_generated_test.go +++ b/google/resource_compute_region_disk_generated_test.go @@ -92,7 +92,7 @@ func testAccCheckComputeRegionDiskDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeRegionDisk still exists at %s", url) } diff --git a/google/resource_compute_route.go b/google/resource_compute_route.go index fa4883bcf2d..06f5a453531 100644 --- a/google/resource_compute_route.go +++ b/google/resource_compute_route.go @@ -195,7 +195,11 @@ func resourceComputeRouteCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Route: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Route: %s", err) } @@ -207,10 +211,6 @@ func resourceComputeRouteCreate(d *schema.ResourceData, meta interface{}) error } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -240,7 +240,11 @@ func resourceComputeRouteRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRoute %q", d.Id())) } @@ -257,10 +261,6 @@ func resourceComputeRouteRead(d *schema.ResourceData, meta interface{}) error { return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Route: %s", err) } @@ -308,6 +308,11 @@ func resourceComputeRouteRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeRouteDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/routes/{{name}}") if err != nil { return err @@ -315,15 +320,12 @@ func resourceComputeRouteDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Route %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Route") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_route_generated_test.go b/google/resource_compute_route_generated_test.go index 99e6a98bd4c..28e596215cd 100644 --- a/google/resource_compute_route_generated_test.go +++ b/google/resource_compute_route_generated_test.go @@ -80,7 +80,7 @@ func testAccCheckComputeRouteDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeRoute still exists at %s", url) } diff --git a/google/resource_compute_router.go b/google/resource_compute_router.go index 80eacf83926..943da40ac17 100644 --- a/google/resource_compute_router.go +++ b/google/resource_compute_router.go @@ -175,7 +175,11 @@ func resourceComputeRouterCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Router: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Router: %s", err) } @@ -187,10 +191,6 @@ func resourceComputeRouterCreate(d *schema.ResourceData, meta interface{}) error } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -220,15 +220,15 @@ func resourceComputeRouterRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeRouter %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeRouter %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Router: %s", err) } @@ -261,6 +261,11 @@ func resourceComputeRouterRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) descriptionProp, err := expandComputeRouterDescription(d.Get("description"), d, config) if err != nil { @@ -288,16 +293,12 @@ func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating Router %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Router %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -318,6 +319,11 @@ func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeRouterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "router/{{region}}/{{name}}") if err != nil { return err @@ -332,15 +338,12 @@ func resourceComputeRouterDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Router %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Router") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_router_generated_test.go b/google/resource_compute_router_generated_test.go index 6c42b31c841..45a9d654f38 100644 --- a/google/resource_compute_router_generated_test.go +++ b/google/resource_compute_router_generated_test.go @@ -89,7 +89,7 @@ func testAccCheckComputeRouterDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeRouter still exists at %s", url) } diff --git a/google/resource_compute_snapshot.go b/google/resource_compute_snapshot.go index 39b35e3eff0..f38891f053e 100644 --- a/google/resource_compute_snapshot.go +++ b/google/resource_compute_snapshot.go @@ -238,7 +238,11 @@ func resourceComputeSnapshotCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Snapshot: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Snapshot: %s", err) } @@ -250,10 +254,6 @@ func resourceComputeSnapshotCreate(d *schema.ResourceData, meta interface{}) err } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -283,7 +283,11 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSnapshot %q", d.Id())) } @@ -300,10 +304,6 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Snapshot: %s", err) } @@ -351,6 +351,11 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("labels") || d.HasChange("label_fingerprint") { @@ -372,15 +377,11 @@ func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Snapshot %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -407,6 +408,11 @@ func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) err func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/snapshots/{{name}}") if err != nil { return err @@ -414,15 +420,12 @@ func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Snapshot %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Snapshot") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_snapshot_generated_test.go b/google/resource_compute_snapshot_generated_test.go index eb1a152dd5f..14ecaa3b0b5 100644 --- a/google/resource_compute_snapshot_generated_test.go +++ b/google/resource_compute_snapshot_generated_test.go @@ -91,7 +91,7 @@ func testAccCheckComputeSnapshotDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeSnapshot still exists at %s", url) } diff --git a/google/resource_compute_ssl_certificate.go b/google/resource_compute_ssl_certificate.go index 66d2c1e273b..2664c12c19c 100644 --- a/google/resource_compute_ssl_certificate.go +++ b/google/resource_compute_ssl_certificate.go @@ -141,7 +141,11 @@ func resourceComputeSslCertificateCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new SslCertificate: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SslCertificate: %s", err) } @@ -153,10 +157,6 @@ func resourceComputeSslCertificateCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -186,15 +186,15 @@ func resourceComputeSslCertificateRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslCertificate %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslCertificate %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading SslCertificate: %s", err) } @@ -224,6 +224,11 @@ func resourceComputeSslCertificateRead(d *schema.ResourceData, meta interface{}) func resourceComputeSslCertificateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/sslCertificates/{{name}}") if err != nil { return err @@ -231,15 +236,12 @@ func resourceComputeSslCertificateDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting SslCertificate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SslCertificate") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_ssl_certificate_generated_test.go b/google/resource_compute_ssl_certificate_generated_test.go index f2e71215afe..0ddd4c25b31 100644 --- a/google/resource_compute_ssl_certificate_generated_test.go +++ b/google/resource_compute_ssl_certificate_generated_test.go @@ -226,7 +226,7 @@ func testAccCheckComputeSslCertificateDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeSslCertificate still exists at %s", url) } diff --git a/google/resource_compute_ssl_policy.go b/google/resource_compute_ssl_policy.go index bf54b19d69b..6aae21e52a1 100644 --- a/google/resource_compute_ssl_policy.go +++ b/google/resource_compute_ssl_policy.go @@ -167,7 +167,11 @@ func resourceComputeSslPolicyCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new SslPolicy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SslPolicy: %s", err) } @@ -179,10 +183,6 @@ func resourceComputeSslPolicyCreate(d *schema.ResourceData, meta interface{}) er } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -212,15 +212,15 @@ func resourceComputeSslPolicyRead(d *schema.ResourceData, meta interface{}) erro return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslPolicy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslPolicy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading SslPolicy: %s", err) } @@ -259,6 +259,11 @@ func resourceComputeSslPolicyRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) profileProp, err := expandComputeSslPolicyProfile(d.Get("profile"), d, config) if err != nil { @@ -290,16 +295,12 @@ func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Updating SslPolicy %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating SslPolicy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -320,6 +321,11 @@ func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) er func resourceComputeSslPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/sslPolicies/{{name}}") if err != nil { return err @@ -327,15 +333,12 @@ func resourceComputeSslPolicyDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting SslPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SslPolicy") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_ssl_policy_generated_test.go b/google/resource_compute_ssl_policy_generated_test.go index 9fbd0d094ef..d6c509bd56b 100644 --- a/google/resource_compute_ssl_policy_generated_test.go +++ b/google/resource_compute_ssl_policy_generated_test.go @@ -86,7 +86,7 @@ func testAccCheckComputeSslPolicyDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeSslPolicy still exists at %s", url) } diff --git a/google/resource_compute_subnetwork.go b/google/resource_compute_subnetwork.go index f0a52518398..ea3bb724097 100644 --- a/google/resource_compute_subnetwork.go +++ b/google/resource_compute_subnetwork.go @@ -268,7 +268,11 @@ func resourceComputeSubnetworkCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Subnetwork: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Subnetwork: %s", err) } @@ -280,10 +284,6 @@ func resourceComputeSubnetworkCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -313,15 +313,15 @@ func resourceComputeSubnetworkRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeSubnetwork %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeSubnetwork %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Subnetwork: %s", err) } @@ -369,6 +369,11 @@ func resourceComputeSubnetworkRead(d *schema.ResourceData, meta interface{}) err func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("ip_cidr_range") { @@ -384,15 +389,11 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -434,15 +435,11 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -474,15 +471,11 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -508,6 +501,11 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/subnetworks/{{name}}") if err != nil { return err @@ -515,15 +513,12 @@ func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Subnetwork %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Subnetwork") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_subnetwork_generated_test.go b/google/resource_compute_subnetwork_generated_test.go index 01c5f7a88de..c02739d66bf 100644 --- a/google/resource_compute_subnetwork_generated_test.go +++ b/google/resource_compute_subnetwork_generated_test.go @@ -84,7 +84,7 @@ func testAccCheckComputeSubnetworkDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeSubnetwork still exists at %s", url) } diff --git a/google/resource_compute_target_http_proxy.go b/google/resource_compute_target_http_proxy.go index b44b318c028..d4e718e22a6 100644 --- a/google/resource_compute_target_http_proxy.go +++ b/google/resource_compute_target_http_proxy.go @@ -109,7 +109,11 @@ func resourceComputeTargetHttpProxyCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new TargetHttpProxy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetHttpProxy: %s", err) } @@ -121,10 +125,6 @@ func resourceComputeTargetHttpProxyCreate(d *schema.ResourceData, meta interface } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -154,15 +154,15 @@ func resourceComputeTargetHttpProxyRead(d *schema.ResourceData, meta interface{} return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpProxy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpProxy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading TargetHttpProxy: %s", err) } @@ -192,6 +192,11 @@ func resourceComputeTargetHttpProxyRead(d *schema.ResourceData, meta interface{} func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("url_map") { @@ -207,15 +212,11 @@ func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -241,6 +242,11 @@ func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface func resourceComputeTargetHttpProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetHttpProxies/{{name}}") if err != nil { return err @@ -248,15 +254,12 @@ func resourceComputeTargetHttpProxyDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetHttpProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetHttpProxy") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_target_http_proxy_generated_test.go b/google/resource_compute_target_http_proxy_generated_test.go index a5690b32c64..09da9bd3f07 100644 --- a/google/resource_compute_target_http_proxy_generated_test.go +++ b/google/resource_compute_target_http_proxy_generated_test.go @@ -109,7 +109,7 @@ func testAccCheckComputeTargetHttpProxyDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeTargetHttpProxy still exists at %s", url) } diff --git a/google/resource_compute_target_https_proxy.go b/google/resource_compute_target_https_proxy.go index 45da1850b27..34afadf6e8a 100644 --- a/google/resource_compute_target_https_proxy.go +++ b/google/resource_compute_target_https_proxy.go @@ -146,7 +146,11 @@ func resourceComputeTargetHttpsProxyCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new TargetHttpsProxy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetHttpsProxy: %s", err) } @@ -158,10 +162,6 @@ func resourceComputeTargetHttpsProxyCreate(d *schema.ResourceData, meta interfac } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -191,15 +191,15 @@ func resourceComputeTargetHttpsProxyRead(d *schema.ResourceData, meta interface{ return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpsProxy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpsProxy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading TargetHttpsProxy: %s", err) } @@ -238,6 +238,11 @@ func resourceComputeTargetHttpsProxyRead(d *schema.ResourceData, meta interface{ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("quic_override") { @@ -253,15 +258,11 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -291,15 +292,11 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -329,15 +326,11 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -367,15 +360,11 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -401,6 +390,11 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac func resourceComputeTargetHttpsProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetHttpsProxies/{{name}}") if err != nil { return err @@ -408,15 +402,12 @@ func resourceComputeTargetHttpsProxyDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetHttpsProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetHttpsProxy") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_target_https_proxy_generated_test.go b/google/resource_compute_target_https_proxy_generated_test.go index 17aaa1ca8b5..315e90bf86f 100644 --- a/google/resource_compute_target_https_proxy_generated_test.go +++ b/google/resource_compute_target_https_proxy_generated_test.go @@ -118,7 +118,7 @@ func testAccCheckComputeTargetHttpsProxyDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeTargetHttpsProxy still exists at %s", url) } diff --git a/google/resource_compute_target_instance.go b/google/resource_compute_target_instance.go index 7452c96c025..dc043ede9cb 100644 --- a/google/resource_compute_target_instance.go +++ b/google/resource_compute_target_instance.go @@ -131,7 +131,11 @@ func resourceComputeTargetInstanceCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetInstance: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetInstance: %s", err) } @@ -143,10 +147,6 @@ func resourceComputeTargetInstanceCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -176,15 +176,15 @@ func resourceComputeTargetInstanceRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetInstance %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetInstance %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading TargetInstance: %s", err) } @@ -217,6 +217,11 @@ func resourceComputeTargetInstanceRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/targetInstances/{{name}}") if err != nil { return err @@ -224,15 +229,12 @@ func resourceComputeTargetInstanceDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetInstance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetInstance") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_target_instance_generated_test.go b/google/resource_compute_target_instance_generated_test.go index 1f5ef39da86..17d0f30fd2a 100644 --- a/google/resource_compute_target_instance_generated_test.go +++ b/google/resource_compute_target_instance_generated_test.go @@ -94,7 +94,7 @@ func testAccCheckComputeTargetInstanceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeTargetInstance still exists at %s", url) } diff --git a/google/resource_compute_target_ssl_proxy.go b/google/resource_compute_target_ssl_proxy.go index fe55f0b4366..dbf2bbc9cd9 100644 --- a/google/resource_compute_target_ssl_proxy.go +++ b/google/resource_compute_target_ssl_proxy.go @@ -148,7 +148,11 @@ func resourceComputeTargetSslProxyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetSslProxy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetSslProxy: %s", err) } @@ -160,10 +164,6 @@ func resourceComputeTargetSslProxyCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -193,15 +193,15 @@ func resourceComputeTargetSslProxyRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetSslProxy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetSslProxy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading TargetSslProxy: %s", err) } @@ -240,6 +240,11 @@ func resourceComputeTargetSslProxyRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("proxy_header") { @@ -255,15 +260,11 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -293,15 +294,11 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -331,15 +328,11 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -369,15 +362,11 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -403,6 +392,11 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ func resourceComputeTargetSslProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetSslProxies/{{name}}") if err != nil { return err @@ -410,15 +404,12 @@ func resourceComputeTargetSslProxyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetSslProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetSslProxy") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_target_ssl_proxy_generated_test.go b/google/resource_compute_target_ssl_proxy_generated_test.go index aae6ed94236..88b7e2f2b28 100644 --- a/google/resource_compute_target_ssl_proxy_generated_test.go +++ b/google/resource_compute_target_ssl_proxy_generated_test.go @@ -95,7 +95,7 @@ func testAccCheckComputeTargetSslProxyDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeTargetSslProxy still exists at %s", url) } diff --git a/google/resource_compute_target_tcp_proxy.go b/google/resource_compute_target_tcp_proxy.go index 27b51e6a86e..67a9218741b 100644 --- a/google/resource_compute_target_tcp_proxy.go +++ b/google/resource_compute_target_tcp_proxy.go @@ -122,7 +122,11 @@ func resourceComputeTargetTcpProxyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetTcpProxy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetTcpProxy: %s", err) } @@ -134,10 +138,6 @@ func resourceComputeTargetTcpProxyCreate(d *schema.ResourceData, meta interface{ } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -167,15 +167,15 @@ func resourceComputeTargetTcpProxyRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetTcpProxy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetTcpProxy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading TargetTcpProxy: %s", err) } @@ -208,6 +208,11 @@ func resourceComputeTargetTcpProxyRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("proxy_header") { @@ -223,15 +228,11 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetTcpProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -261,15 +262,11 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetTcpProxy %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -295,6 +292,11 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ func resourceComputeTargetTcpProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetTcpProxies/{{name}}") if err != nil { return err @@ -302,15 +304,12 @@ func resourceComputeTargetTcpProxyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetTcpProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetTcpProxy") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_target_tcp_proxy_generated_test.go b/google/resource_compute_target_tcp_proxy_generated_test.go index 198b652e514..006a148acb6 100644 --- a/google/resource_compute_target_tcp_proxy_generated_test.go +++ b/google/resource_compute_target_tcp_proxy_generated_test.go @@ -91,7 +91,7 @@ func testAccCheckComputeTargetTcpProxyDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeTargetTcpProxy still exists at %s", url) } diff --git a/google/resource_compute_url_map.go b/google/resource_compute_url_map.go index f0ef343c0a6..8cb2f0eecc3 100644 --- a/google/resource_compute_url_map.go +++ b/google/resource_compute_url_map.go @@ -232,7 +232,11 @@ func resourceComputeUrlMapCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new UrlMap: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating UrlMap: %s", err) } @@ -244,10 +248,6 @@ func resourceComputeUrlMapCreate(d *schema.ResourceData, meta interface{}) error } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -277,15 +277,15 @@ func resourceComputeUrlMapRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeUrlMap %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeUrlMap %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading UrlMap: %s", err) } @@ -327,6 +327,11 @@ func resourceComputeUrlMapRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) defaultServiceProp, err := expandComputeUrlMapDefaultService(d.Get("default_service"), d, config) if err != nil { @@ -377,16 +382,12 @@ func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating UrlMap %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating UrlMap %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -407,6 +408,11 @@ func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeUrlMapDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/urlMaps/{{name}}") if err != nil { return err @@ -414,15 +420,12 @@ func resourceComputeUrlMapDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting UrlMap %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "UrlMap") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_url_map_generated_test.go b/google/resource_compute_url_map_generated_test.go index b5290e423bf..c102599a86d 100644 --- a/google/resource_compute_url_map_generated_test.go +++ b/google/resource_compute_url_map_generated_test.go @@ -142,7 +142,7 @@ func testAccCheckComputeUrlMapDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeUrlMap still exists at %s", url) } diff --git a/google/resource_compute_vpn_gateway.go b/google/resource_compute_vpn_gateway.go index 3161b1d5049..a0406952803 100644 --- a/google/resource_compute_vpn_gateway.go +++ b/google/resource_compute_vpn_gateway.go @@ -116,7 +116,11 @@ func resourceComputeVpnGatewayCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new VpnGateway: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating VpnGateway: %s", err) } @@ -128,10 +132,6 @@ func resourceComputeVpnGatewayCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -161,15 +161,15 @@ func resourceComputeVpnGatewayRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnGateway %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnGateway %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading VpnGateway: %s", err) } @@ -199,6 +199,11 @@ func resourceComputeVpnGatewayRead(d *schema.ResourceData, meta interface{}) err func resourceComputeVpnGatewayDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}") if err != nil { return err @@ -206,15 +211,12 @@ func resourceComputeVpnGatewayDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting VpnGateway %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "VpnGateway") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_vpn_gateway_generated_test.go b/google/resource_compute_vpn_gateway_generated_test.go index 1d2f3165bab..2e5e6b1ddc7 100644 --- a/google/resource_compute_vpn_gateway_generated_test.go +++ b/google/resource_compute_vpn_gateway_generated_test.go @@ -127,7 +127,7 @@ func testAccCheckComputeVpnGatewayDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeVpnGateway still exists at %s", url) } diff --git a/google/resource_compute_vpn_tunnel.go b/google/resource_compute_vpn_tunnel.go index aaf62223ed3..fbc41d40f84 100644 --- a/google/resource_compute_vpn_tunnel.go +++ b/google/resource_compute_vpn_tunnel.go @@ -315,7 +315,11 @@ func resourceComputeVpnTunnelCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new VpnTunnel: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating VpnTunnel: %s", err) } @@ -327,10 +331,6 @@ func resourceComputeVpnTunnelCreate(d *schema.ResourceData, meta interface{}) er } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { @@ -360,15 +360,15 @@ func resourceComputeVpnTunnelRead(d *schema.ResourceData, meta interface{}) erro return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnTunnel %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnTunnel %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading VpnTunnel: %s", err) } @@ -419,6 +419,11 @@ func resourceComputeVpnTunnelRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeVpnTunnelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/vpnTunnels/{{name}}") if err != nil { return err @@ -426,15 +431,12 @@ func resourceComputeVpnTunnelDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting VpnTunnel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "VpnTunnel") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_compute_vpn_tunnel_generated_test.go b/google/resource_compute_vpn_tunnel_generated_test.go index d6e2b2a331d..2cd02755274 100644 --- a/google/resource_compute_vpn_tunnel_generated_test.go +++ b/google/resource_compute_vpn_tunnel_generated_test.go @@ -128,7 +128,7 @@ func testAccCheckComputeVpnTunnelDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("ComputeVpnTunnel still exists at %s", url) } diff --git a/google/resource_dns_managed_zone.go b/google/resource_dns_managed_zone.go index dcaf3c09eb6..ee83832f4ff 100644 --- a/google/resource_dns_managed_zone.go +++ b/google/resource_dns_managed_zone.go @@ -240,7 +240,11 @@ func resourceDnsManagedZoneCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new ManagedZone: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ManagedZone: %s", err) } @@ -265,15 +269,15 @@ func resourceDnsManagedZoneRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("DnsManagedZone %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("DnsManagedZone %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading ManagedZone: %s", err) } @@ -309,6 +313,11 @@ func resourceDnsManagedZoneRead(d *schema.ResourceData, meta interface{}) error func resourceDnsManagedZoneUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("description") || d.HasChange("labels") || d.HasChange("private_visibility_config") { @@ -336,7 +345,7 @@ func resourceDnsManagedZoneUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ManagedZone %q: %s", d.Id(), err) } @@ -354,6 +363,11 @@ func resourceDnsManagedZoneUpdate(d *schema.ResourceData, meta interface{}) erro func resourceDnsManagedZoneDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{DnsBasePath}}projects/{{project}}/managedZones/{{name}}") if err != nil { return err @@ -361,7 +375,8 @@ func resourceDnsManagedZoneDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting ManagedZone %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ManagedZone") } diff --git a/google/resource_dns_managed_zone_generated_test.go b/google/resource_dns_managed_zone_generated_test.go index fe20e021b8c..80992bc7fa7 100644 --- a/google/resource_dns_managed_zone_generated_test.go +++ b/google/resource_dns_managed_zone_generated_test.go @@ -139,7 +139,7 @@ func testAccCheckDnsManagedZoneDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("DnsManagedZone still exists at %s", url) } diff --git a/google/resource_filestore_instance.go b/google/resource_filestore_instance.go index 7596d4605ff..3d8a38ec8a8 100644 --- a/google/resource_filestore_instance.go +++ b/google/resource_filestore_instance.go @@ -180,7 +180,11 @@ func resourceFilestoreInstanceCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Instance: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -192,10 +196,6 @@ func resourceFilestoreInstanceCreate(d *schema.ResourceData, meta interface{}) e } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := filestoreOperationWaitTime( config, res, project, "Creating Instance", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -219,15 +219,15 @@ func resourceFilestoreInstanceRead(d *schema.ResourceData, meta interface{}) err return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("FilestoreInstance %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("FilestoreInstance %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Instance: %s", err) } @@ -260,6 +260,11 @@ func resourceFilestoreInstanceRead(d *schema.ResourceData, meta interface{}) err func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) descriptionProp, err := expandFilestoreInstanceDescription(d.Get("description"), d, config) if err != nil { @@ -305,17 +310,12 @@ func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } - err = filestoreOperationWaitTime( config, res, project, "Updating Instance", int(d.Timeout(schema.TimeoutUpdate).Minutes())) @@ -330,6 +330,11 @@ func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) e func resourceFilestoreInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{FilestoreBasePath}}projects/{{project}}/locations/{{zone}}/instances/{{name}}") if err != nil { return err @@ -337,14 +342,10 @@ func resourceFilestoreInstanceDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) - if err != nil { - return handleNotFoundError(err, d, "Instance") - } - project, err := getProject(d, config) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { - return err + return handleNotFoundError(err, d, "Instance") } err = filestoreOperationWaitTime( diff --git a/google/resource_filestore_instance_generated_test.go b/google/resource_filestore_instance_generated_test.go index 03d911255bf..af37d0f09c1 100644 --- a/google/resource_filestore_instance_generated_test.go +++ b/google/resource_filestore_instance_generated_test.go @@ -85,7 +85,7 @@ func testAccCheckFilestoreInstanceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("FilestoreInstance still exists at %s", url) } diff --git a/google/resource_firestore_index.go b/google/resource_firestore_index.go index 078a06c02ad..60df0b10d9a 100644 --- a/google/resource_firestore_index.go +++ b/google/resource_firestore_index.go @@ -140,7 +140,11 @@ func resourceFirestoreIndexCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Index: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Index: %s", err) } @@ -152,10 +156,6 @@ func resourceFirestoreIndexCreate(d *schema.ResourceData, meta interface{}) erro } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := firestoreOperationWaitTime( config, res, project, "Creating Index", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -187,15 +187,15 @@ func resourceFirestoreIndexRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("FirestoreIndex %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("FirestoreIndex %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Index: %s", err) } @@ -216,6 +216,11 @@ func resourceFirestoreIndexRead(d *schema.ResourceData, meta interface{}) error func resourceFirestoreIndexDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{FirestoreBasePath}}{{name}}") if err != nil { return err @@ -223,14 +228,10 @@ func resourceFirestoreIndexDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Index %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) - if err != nil { - return handleNotFoundError(err, d, "Index") - } - project, err := getProject(d, config) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { - return err + return handleNotFoundError(err, d, "Index") } err = firestoreOperationWaitTime( diff --git a/google/resource_firestore_index_generated_test.go b/google/resource_firestore_index_generated_test.go index 7041c40a0d7..9091d4615cd 100644 --- a/google/resource_firestore_index_generated_test.go +++ b/google/resource_firestore_index_generated_test.go @@ -91,7 +91,7 @@ func testAccCheckFirestoreIndexDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("FirestoreIndex still exists at %s", url) } diff --git a/google/resource_kms_crypto_key.go b/google/resource_kms_crypto_key.go index 7723b62915a..a5de5795730 100644 --- a/google/resource_kms_crypto_key.go +++ b/google/resource_kms_crypto_key.go @@ -149,7 +149,7 @@ func resourceKmsCryptoKeyCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new CryptoKey: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating CryptoKey: %s", err) } @@ -174,7 +174,7 @@ func resourceKmsCryptoKeyRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsCryptoKey %q", d.Id())) } @@ -260,7 +260,7 @@ func resourceKmsCryptoKeyUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating CryptoKey %q: %s", d.Id(), err) diff --git a/google/resource_kms_key_ring.go b/google/resource_kms_key_ring.go index bdce8073261..896ea4450df 100644 --- a/google/resource_kms_key_ring.go +++ b/google/resource_kms_key_ring.go @@ -91,7 +91,11 @@ func resourceKmsKeyRingCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new KeyRing: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating KeyRing: %s", err) } @@ -116,7 +120,11 @@ func resourceKmsKeyRingRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KmsKeyRing %q", d.Id())) } @@ -133,10 +141,6 @@ func resourceKmsKeyRingRead(d *schema.ResourceData, meta interface{}) error { return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading KeyRing: %s", err) } diff --git a/google/resource_logging_metric.go b/google/resource_logging_metric.go index 885adc52325..33e992d2a47 100644 --- a/google/resource_logging_metric.go +++ b/google/resource_logging_metric.go @@ -242,7 +242,11 @@ func resourceLoggingMetricCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Metric: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Metric: %s", err) } @@ -275,15 +279,15 @@ func resourceLoggingMetricRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("LoggingMetric %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("LoggingMetric %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Metric: %s", err) } @@ -316,6 +320,11 @@ func resourceLoggingMetricRead(d *schema.ResourceData, meta interface{}) error { func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) nameProp, err := expandLoggingMetricName(d.Get("name"), d, config) if err != nil { @@ -373,7 +382,7 @@ func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating Metric %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Metric %q: %s", d.Id(), err) @@ -385,6 +394,11 @@ func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error func resourceLoggingMetricDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "customMetric/{{project}}") if err != nil { return err @@ -399,7 +413,8 @@ func resourceLoggingMetricDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Metric %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Metric") } diff --git a/google/resource_logging_metric_generated_test.go b/google/resource_logging_metric_generated_test.go index 1a9070a602f..ca7407138b6 100644 --- a/google/resource_logging_metric_generated_test.go +++ b/google/resource_logging_metric_generated_test.go @@ -171,7 +171,7 @@ func testAccCheckLoggingMetricDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("LoggingMetric still exists at %s", url) } diff --git a/google/resource_manager_operation.go b/google/resource_manager_operation.go index 6735cb19bbc..4c7ec6079b6 100644 --- a/google/resource_manager_operation.go +++ b/google/resource_manager_operation.go @@ -28,7 +28,7 @@ func (w *ResourceManagerOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://cloudresourcemanager.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", "", url, nil) } func resourceManagerOperationWaitTime(config *Config, op map[string]interface{}, activity string, timeoutMinutes int) error { diff --git a/google/resource_monitoring_alert_policy.go b/google/resource_monitoring_alert_policy.go index 218c60a6065..c28de0986ba 100644 --- a/google/resource_monitoring_alert_policy.go +++ b/google/resource_monitoring_alert_policy.go @@ -371,7 +371,11 @@ func resourceMonitoringAlertPolicyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new AlertPolicy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AlertPolicy: %s", err) } @@ -404,15 +408,15 @@ func resourceMonitoringAlertPolicyRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("MonitoringAlertPolicy %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("MonitoringAlertPolicy %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading AlertPolicy: %s", err) } @@ -451,6 +455,11 @@ func resourceMonitoringAlertPolicyRead(d *schema.ResourceData, meta interface{}) func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringAlertPolicyDisplayName(d.Get("display_name"), d, config) if err != nil { @@ -543,7 +552,7 @@ func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AlertPolicy %q: %s", d.Id(), err) @@ -555,6 +564,11 @@ func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{ func resourceMonitoringAlertPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "alertPolicy/{{project}}") if err != nil { return err @@ -569,7 +583,8 @@ func resourceMonitoringAlertPolicyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting AlertPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AlertPolicy") } diff --git a/google/resource_monitoring_alert_policy_test.go b/google/resource_monitoring_alert_policy_test.go index 0d063379c6b..52cf5961309 100644 --- a/google/resource_monitoring_alert_policy_test.go +++ b/google/resource_monitoring_alert_policy_test.go @@ -122,7 +122,7 @@ func testAccCheckAlertPolicyDestroy(s *terraform.State) error { 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, nil) if err == nil { return fmt.Errorf("Error, alert policy %s still exists", name) diff --git a/google/resource_monitoring_group.go b/google/resource_monitoring_group.go index 41f56b090c2..90f16ee2a0c 100644 --- a/google/resource_monitoring_group.go +++ b/google/resource_monitoring_group.go @@ -114,7 +114,11 @@ func resourceMonitoringGroupCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Group: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Group: %s", err) } @@ -147,15 +151,15 @@ func resourceMonitoringGroupRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("MonitoringGroup %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("MonitoringGroup %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Group: %s", err) } @@ -182,6 +186,11 @@ func resourceMonitoringGroupRead(d *schema.ResourceData, meta interface{}) error func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) parentNameProp, err := expandMonitoringGroupParentName(d.Get("parent_name"), d, config) if err != nil { @@ -221,7 +230,7 @@ func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Group %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Group %q: %s", d.Id(), err) @@ -233,6 +242,11 @@ func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) err func resourceMonitoringGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "stackdriver/groups/{{project}}") if err != nil { return err @@ -247,7 +261,8 @@ func resourceMonitoringGroupDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Group %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Group") } diff --git a/google/resource_monitoring_group_generated_test.go b/google/resource_monitoring_group_generated_test.go index fcb228e1448..09ffe42bda7 100644 --- a/google/resource_monitoring_group_generated_test.go +++ b/google/resource_monitoring_group_generated_test.go @@ -113,7 +113,7 @@ func testAccCheckMonitoringGroupDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("MonitoringGroup still exists at %s", url) } diff --git a/google/resource_monitoring_notification_channel.go b/google/resource_monitoring_notification_channel.go index 255564ee6d4..c2c9b5268fa 100644 --- a/google/resource_monitoring_notification_channel.go +++ b/google/resource_monitoring_notification_channel.go @@ -140,7 +140,11 @@ func resourceMonitoringNotificationChannelCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new NotificationChannel: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NotificationChannel: %s", err) } @@ -173,15 +177,15 @@ func resourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta inte return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("MonitoringNotificationChannel %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("MonitoringNotificationChannel %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading NotificationChannel: %s", err) } @@ -217,6 +221,11 @@ func resourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta inte func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) labelsProp, err := expandMonitoringNotificationChannelLabels(d.Get("labels"), d, config) if err != nil { @@ -268,7 +277,7 @@ func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Updating NotificationChannel %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating NotificationChannel %q: %s", d.Id(), err) @@ -280,6 +289,11 @@ func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta in func resourceMonitoringNotificationChannelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "stackdriver/notifications/{{project}}") if err != nil { return err @@ -294,7 +308,8 @@ func resourceMonitoringNotificationChannelDelete(d *schema.ResourceData, meta in var obj map[string]interface{} log.Printf("[DEBUG] Deleting NotificationChannel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NotificationChannel") } diff --git a/google/resource_monitoring_notification_channel_generated_test.go b/google/resource_monitoring_notification_channel_generated_test.go index fb49e177f6d..a474e7bef97 100644 --- a/google/resource_monitoring_notification_channel_generated_test.go +++ b/google/resource_monitoring_notification_channel_generated_test.go @@ -76,7 +76,7 @@ func testAccCheckMonitoringNotificationChannelDestroy(s *terraform.State) error return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("MonitoringNotificationChannel still exists at %s", url) } diff --git a/google/resource_monitoring_uptime_check_config.go b/google/resource_monitoring_uptime_check_config.go index 795a97f64f0..9358ab04ad7 100644 --- a/google/resource_monitoring_uptime_check_config.go +++ b/google/resource_monitoring_uptime_check_config.go @@ -311,7 +311,11 @@ func resourceMonitoringUptimeCheckConfigCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new UptimeCheckConfig: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating UptimeCheckConfig: %s", err) } @@ -344,7 +348,11 @@ func resourceMonitoringUptimeCheckConfigRead(d *schema.ResourceData, meta interf return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringUptimeCheckConfig %q", d.Id())) } @@ -361,10 +369,6 @@ func resourceMonitoringUptimeCheckConfigRead(d *schema.ResourceData, meta interf return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading UptimeCheckConfig: %s", err) } @@ -409,6 +413,11 @@ func resourceMonitoringUptimeCheckConfigRead(d *schema.ResourceData, meta interf func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringUptimeCheckConfigDisplayName(d.Get("display_name"), d, config) if err != nil { @@ -484,7 +493,7 @@ func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating UptimeCheckConfig %q: %s", d.Id(), err) @@ -496,6 +505,11 @@ func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta inte func resourceMonitoringUptimeCheckConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{MonitoringBasePath}}{{name}}") if err != nil { return err @@ -503,7 +517,8 @@ func resourceMonitoringUptimeCheckConfigDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting UptimeCheckConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "UptimeCheckConfig") } diff --git a/google/resource_monitoring_uptime_check_config_generated_test.go b/google/resource_monitoring_uptime_check_config_generated_test.go index 95b011df304..38d73e3561c 100644 --- a/google/resource_monitoring_uptime_check_config_generated_test.go +++ b/google/resource_monitoring_uptime_check_config_generated_test.go @@ -138,7 +138,7 @@ func testAccCheckMonitoringUptimeCheckConfigDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("MonitoringUptimeCheckConfig still exists at %s", url) } diff --git a/google/resource_pubsub_subscription.go b/google/resource_pubsub_subscription.go index f812c96d51c..f4df8097fa0 100644 --- a/google/resource_pubsub_subscription.go +++ b/google/resource_pubsub_subscription.go @@ -198,7 +198,11 @@ func resourcePubsubSubscriptionCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Subscription: %#v", obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Subscription: %s", err) } @@ -223,7 +227,11 @@ func resourcePubsubSubscriptionRead(d *schema.ResourceData, meta interface{}) er return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("PubsubSubscription %q", d.Id())) } @@ -240,10 +248,6 @@ func resourcePubsubSubscriptionRead(d *schema.ResourceData, meta interface{}) er return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Subscription: %s", err) } @@ -279,6 +283,11 @@ func resourcePubsubSubscriptionRead(d *schema.ResourceData, meta interface{}) er func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) labelsProp, err := expandPubsubSubscriptionLabels(d.Get("labels"), d, config) if err != nil { @@ -359,7 +368,7 @@ func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subscription %q: %s", d.Id(), err) @@ -371,6 +380,11 @@ func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) func resourcePubsubSubscriptionDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{PubsubBasePath}}projects/{{project}}/subscriptions/{{name}}") if err != nil { return err @@ -378,7 +392,8 @@ func resourcePubsubSubscriptionDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting Subscription %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Subscription") } diff --git a/google/resource_pubsub_subscription_generated_test.go b/google/resource_pubsub_subscription_generated_test.go index 0be7ea539fb..5b1f473915f 100644 --- a/google/resource_pubsub_subscription_generated_test.go +++ b/google/resource_pubsub_subscription_generated_test.go @@ -91,7 +91,7 @@ func testAccCheckPubsubSubscriptionDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("PubsubSubscription still exists at %s", url) } diff --git a/google/resource_pubsub_topic.go b/google/resource_pubsub_topic.go index 9ad7c667834..3061a6affa4 100644 --- a/google/resource_pubsub_topic.go +++ b/google/resource_pubsub_topic.go @@ -124,7 +124,11 @@ func resourcePubsubTopicCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Topic: %#v", obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Topic: %s", err) } @@ -149,15 +153,15 @@ func resourcePubsubTopicRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("PubsubTopic %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("PubsubTopic %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Topic: %s", err) } @@ -181,6 +185,11 @@ func resourcePubsubTopicRead(d *schema.ResourceData, meta interface{}) error { func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) labelsProp, err := expandPubsubTopicLabels(d.Get("labels"), d, config) if err != nil { @@ -221,7 +230,7 @@ func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - _, err = sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Topic %q: %s", d.Id(), err) @@ -233,6 +242,11 @@ func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { func resourcePubsubTopicDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{PubsubBasePath}}projects/{{project}}/topics/{{name}}") if err != nil { return err @@ -240,7 +254,8 @@ func resourcePubsubTopicDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Topic %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Topic") } diff --git a/google/resource_pubsub_topic_generated_test.go b/google/resource_pubsub_topic_generated_test.go index 3d88663b2eb..5e66594aca8 100644 --- a/google/resource_pubsub_topic_generated_test.go +++ b/google/resource_pubsub_topic_generated_test.go @@ -115,7 +115,7 @@ func testAccCheckPubsubTopicDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("PubsubTopic still exists at %s", url) } diff --git a/google/resource_redis_instance.go b/google/resource_redis_instance.go index f4fea7b0ee4..68cfc2d80d1 100644 --- a/google/resource_redis_instance.go +++ b/google/resource_redis_instance.go @@ -219,7 +219,11 @@ func resourceRedisInstanceCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Instance: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -231,10 +235,6 @@ func resourceRedisInstanceCreate(d *schema.ResourceData, meta interface{}) error } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := redisOperationWaitTime( config, res, project, "Creating Instance", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -258,15 +258,15 @@ func resourceRedisInstanceRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("RedisInstance %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("RedisInstance %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Instance: %s", err) } @@ -331,6 +331,11 @@ func resourceRedisInstanceRead(d *schema.ResourceData, meta interface{}) error { func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) displayNameProp, err := expandRedisInstanceDisplayName(d.Get("display_name"), d, config) if err != nil { @@ -391,17 +396,12 @@ func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } - err = redisOperationWaitTime( config, res, project, "Updating Instance", int(d.Timeout(schema.TimeoutUpdate).Minutes())) @@ -416,6 +416,11 @@ func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error func resourceRedisInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{RedisBasePath}}projects/{{project}}/locations/{{region}}/instances/{{name}}") if err != nil { return err @@ -423,14 +428,10 @@ func resourceRedisInstanceDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) - if err != nil { - return handleNotFoundError(err, d, "Instance") - } - project, err := getProject(d, config) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { - return err + return handleNotFoundError(err, d, "Instance") } err = redisOperationWaitTime( diff --git a/google/resource_redis_instance_generated_test.go b/google/resource_redis_instance_generated_test.go index a83ccc5bd4d..ebb9c10d4b4 100644 --- a/google/resource_redis_instance_generated_test.go +++ b/google/resource_redis_instance_generated_test.go @@ -127,7 +127,7 @@ func testAccCheckRedisInstanceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("RedisInstance still exists at %s", url) } diff --git a/google/resource_resource_manager_lien.go b/google/resource_resource_manager_lien.go index f5cd1373acf..bf8bbf4d22a 100644 --- a/google/resource_resource_manager_lien.go +++ b/google/resource_resource_manager_lien.go @@ -111,7 +111,7 @@ func resourceResourceManagerLienCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Lien: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Lien: %s", err) } @@ -146,7 +146,7 @@ func resourceResourceManagerLienRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ResourceManagerLien %q", d.Id())) } @@ -215,7 +215,8 @@ func resourceResourceManagerLienDelete(d *schema.ResourceData, meta interface{}) return err } log.Printf("[DEBUG] Deleting Lien %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Lien") } diff --git a/google/resource_service_networking_connection.go b/google/resource_service_networking_connection.go index 0f3c435898d..9acc06ee979 100644 --- a/google/resource_service_networking_connection.go +++ b/google/resource_service_networking_connection.go @@ -177,15 +177,16 @@ func resourceServiceNetworkingConnectionDelete(d *schema.ResourceData, meta inte obj["name"] = peering url := fmt.Sprintf("%s%s/removePeering", config.ComputeBasePath, serviceNetworkingNetworkName) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + project, err := getProject(d, config) if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("ServiceNetworkingConnection %q", d.Id())) + return err } - project, err := getProject(d, config) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { - return err + return handleNotFoundError(err, d, fmt.Sprintf("ServiceNetworkingConnection %q", d.Id())) } + op := &compute.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_source_repo_repository.go b/google/resource_source_repo_repository.go index 30811e8f1a5..5d23f23b84a 100644 --- a/google/resource_source_repo_repository.go +++ b/google/resource_source_repo_repository.go @@ -81,7 +81,11 @@ func resourceSourceRepoRepositoryCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new Repository: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Repository: %s", err) } @@ -106,15 +110,15 @@ func resourceSourceRepoRepositoryRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("SourceRepoRepository %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("SourceRepoRepository %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Repository: %s", err) } @@ -135,6 +139,11 @@ func resourceSourceRepoRepositoryRead(d *schema.ResourceData, meta interface{}) func resourceSourceRepoRepositoryDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{SourceRepoBasePath}}projects/{{project}}/repos/{{name}}") if err != nil { return err @@ -142,7 +151,8 @@ func resourceSourceRepoRepositoryDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting Repository %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Repository") } diff --git a/google/resource_source_repo_repository_generated_test.go b/google/resource_source_repo_repository_generated_test.go index ae232b8eb16..ebc05aa7c34 100644 --- a/google/resource_source_repo_repository_generated_test.go +++ b/google/resource_source_repo_repository_generated_test.go @@ -72,7 +72,7 @@ func testAccCheckSourceRepoRepositoryDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("SourceRepoRepository still exists at %s", url) } diff --git a/google/resource_spanner_database.go b/google/resource_spanner_database.go index aa150a68c0e..b9aa377ec9f 100644 --- a/google/resource_spanner_database.go +++ b/google/resource_spanner_database.go @@ -107,7 +107,11 @@ func resourceSpannerDatabaseCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Database: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Database: %s", err) } @@ -119,10 +123,6 @@ func resourceSpannerDatabaseCreate(d *schema.ResourceData, meta interface{}) err } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := spannerOperationWaitTime( config, res, project, "Creating Database", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -146,7 +146,11 @@ func resourceSpannerDatabaseRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SpannerDatabase %q", d.Id())) } @@ -163,10 +167,6 @@ func resourceSpannerDatabaseRead(d *schema.ResourceData, meta interface{}) error return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Database: %s", err) } @@ -187,6 +187,11 @@ func resourceSpannerDatabaseRead(d *schema.ResourceData, meta interface{}) error func resourceSpannerDatabaseDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{SpannerBasePath}}projects/{{project}}/instances/{{instance}}/databases/{{name}}") if err != nil { return err @@ -194,7 +199,8 @@ func resourceSpannerDatabaseDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Database %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Database") } diff --git a/google/resource_spanner_database_generated_test.go b/google/resource_spanner_database_generated_test.go index 31db56927ee..e4290471876 100644 --- a/google/resource_spanner_database_generated_test.go +++ b/google/resource_spanner_database_generated_test.go @@ -83,7 +83,7 @@ func testAccCheckSpannerDatabaseDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("SpannerDatabase still exists at %s", url) } diff --git a/google/resource_spanner_instance.go b/google/resource_spanner_instance.go index 6cd7a517779..10766318347 100644 --- a/google/resource_spanner_instance.go +++ b/google/resource_spanner_instance.go @@ -131,7 +131,11 @@ func resourceSpannerInstanceCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Instance: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -143,10 +147,6 @@ func resourceSpannerInstanceCreate(d *schema.ResourceData, meta interface{}) err } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := spannerOperationWaitTime( config, res, project, "Creating Instance", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -175,7 +175,11 @@ func resourceSpannerInstanceRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", url, nil) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequest(config, "GET", project, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SpannerInstance %q", d.Id())) } @@ -192,10 +196,6 @@ func resourceSpannerInstanceRead(d *schema.ResourceData, meta interface{}) error return nil } - project, err := getProject(d, config) - if err != nil { - return err - } if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Instance: %s", err) } @@ -225,6 +225,11 @@ func resourceSpannerInstanceRead(d *schema.ResourceData, meta interface{}) error func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) configProp, err := expandSpannerInstanceConfig(d.Get("config"), d, config) if err != nil { @@ -262,17 +267,12 @@ func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Instance %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } - err = spannerOperationWaitTime( config, res, project, "Updating Instance", int(d.Timeout(schema.TimeoutUpdate).Minutes())) @@ -287,6 +287,11 @@ func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) err func resourceSpannerInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{SpannerBasePath}}projects/{{project}}/instances/{{name}}") if err != nil { return err @@ -294,7 +299,8 @@ func resourceSpannerInstanceDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Instance") } diff --git a/google/resource_spanner_instance_generated_test.go b/google/resource_spanner_instance_generated_test.go index a6981a72420..dabdeff74f7 100644 --- a/google/resource_spanner_instance_generated_test.go +++ b/google/resource_spanner_instance_generated_test.go @@ -77,7 +77,7 @@ func testAccCheckSpannerInstanceDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("SpannerInstance still exists at %s", url) } diff --git a/google/resource_sql_database.go b/google/resource_sql_database.go index 5098903c952..2f9bb2e1f0f 100644 --- a/google/resource_sql_database.go +++ b/google/resource_sql_database.go @@ -118,7 +118,11 @@ func resourceSqlDatabaseCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Database: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Database: %s", err) } @@ -130,10 +134,6 @@ func resourceSqlDatabaseCreate(d *schema.ResourceData, meta interface{}) error { } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } op := &sqladmin.Operation{} err = Convert(res, op) if err != nil { @@ -163,15 +163,15 @@ func resourceSqlDatabaseRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("SqlDatabase %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("SqlDatabase %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Database: %s", err) } @@ -198,6 +198,11 @@ func resourceSqlDatabaseRead(d *schema.ResourceData, meta interface{}) error { func resourceSqlDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + obj := make(map[string]interface{}) charsetProp, err := expandSqlDatabaseCharset(d.Get("charset"), d, config) if err != nil { @@ -237,16 +242,12 @@ func resourceSqlDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Updating Database %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Database %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } op := &sqladmin.Operation{} err = Convert(res, op) if err != nil { @@ -267,6 +268,11 @@ func resourceSqlDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { func resourceSqlDatabaseDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + lockName, err := replaceVars(d, config, "google-sql-database-instance-{{project}}-{{instance}}") if err != nil { return err @@ -281,15 +287,12 @@ func resourceSqlDatabaseDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Database %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Database") } - project, err := getProject(d, config) - if err != nil { - return err - } op := &sqladmin.Operation{} err = Convert(res, op) if err != nil { diff --git a/google/resource_storage_default_object_access_control.go b/google/resource_storage_default_object_access_control.go index e070333b677..dc9fc632309 100644 --- a/google/resource_storage_default_object_access_control.go +++ b/google/resource_storage_default_object_access_control.go @@ -134,7 +134,7 @@ func resourceStorageDefaultObjectAccessControlCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new DefaultObjectAccessControl: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DefaultObjectAccessControl: %s", err) } @@ -159,7 +159,7 @@ func resourceStorageDefaultObjectAccessControlRead(d *schema.ResourceData, meta return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageDefaultObjectAccessControl %q", d.Id())) } @@ -227,7 +227,7 @@ func resourceStorageDefaultObjectAccessControlUpdate(d *schema.ResourceData, met } log.Printf("[DEBUG] Updating DefaultObjectAccessControl %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DefaultObjectAccessControl %q: %s", d.Id(), err) @@ -246,7 +246,8 @@ func resourceStorageDefaultObjectAccessControlDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting DefaultObjectAccessControl %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DefaultObjectAccessControl") } diff --git a/google/resource_storage_default_object_access_control_generated_test.go b/google/resource_storage_default_object_access_control_generated_test.go index ae8d0050596..ab1c9e11e8d 100644 --- a/google/resource_storage_default_object_access_control_generated_test.go +++ b/google/resource_storage_default_object_access_control_generated_test.go @@ -79,7 +79,7 @@ func testAccCheckStorageDefaultObjectAccessControlDestroy(s *terraform.State) er return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("StorageDefaultObjectAccessControl still exists at %s", url) } diff --git a/google/resource_storage_object_access_control.go b/google/resource_storage_object_access_control.go index 9ed10541ee2..0311e1171a0 100644 --- a/google/resource_storage_object_access_control.go +++ b/google/resource_storage_object_access_control.go @@ -134,7 +134,7 @@ func resourceStorageObjectAccessControlCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new ObjectAccessControl: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ObjectAccessControl: %s", err) } @@ -159,7 +159,7 @@ func resourceStorageObjectAccessControlRead(d *schema.ResourceData, meta interfa return err } - res, err := sendRequest(config, "GET", url, nil) + res, err := sendRequest(config, "GET", "", url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageObjectAccessControl %q", d.Id())) } @@ -230,7 +230,7 @@ func resourceStorageObjectAccessControlUpdate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Updating ObjectAccessControl %q: %#v", d.Id(), obj) - _, err = sendRequestWithTimeout(config, "PUT", url, obj, d.Timeout(schema.TimeoutUpdate)) + _, err = sendRequestWithTimeout(config, "PUT", "", url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ObjectAccessControl %q: %s", d.Id(), err) @@ -249,7 +249,8 @@ func resourceStorageObjectAccessControlDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting ObjectAccessControl %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) + + res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ObjectAccessControl") } diff --git a/google/resource_storage_object_access_control_generated_test.go b/google/resource_storage_object_access_control_generated_test.go index a4e75da665e..0591825bc5c 100644 --- a/google/resource_storage_object_access_control_generated_test.go +++ b/google/resource_storage_object_access_control_generated_test.go @@ -85,7 +85,7 @@ func testAccCheckStorageObjectAccessControlDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("StorageObjectAccessControl still exists at %s", url) } diff --git a/google/resource_tpu_node.go b/google/resource_tpu_node.go index 4f50ef69723..3b3d55c07c7 100644 --- a/google/resource_tpu_node.go +++ b/google/resource_tpu_node.go @@ -225,7 +225,11 @@ func resourceTpuNodeCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Node: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutCreate)) + project, err := getProject(d, config) + if err != nil { + return err + } + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Node: %s", err) } @@ -237,10 +241,6 @@ func resourceTpuNodeCreate(d *schema.ResourceData, meta interface{}) error { } d.SetId(id) - project, err := getProject(d, config) - if err != nil { - return err - } waitErr := tpuOperationWaitTime( config, res, project, "Creating Node", int(d.Timeout(schema.TimeoutCreate).Minutes())) @@ -264,15 +264,15 @@ func resourceTpuNodeRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", url, nil) - if err != nil { - return handleNotFoundError(err, d, fmt.Sprintf("TpuNode %q", d.Id())) - } - project, err := getProject(d, config) if err != nil { return err } + res, err := sendRequest(config, "GET", project, url, nil) + if err != nil { + return handleNotFoundError(err, d, fmt.Sprintf("TpuNode %q", d.Id())) + } + if err := d.Set("project", project); err != nil { return fmt.Errorf("Error reading Node: %s", err) } @@ -314,6 +314,11 @@ func resourceTpuNodeRead(d *schema.ResourceData, meta interface{}) error { func resourceTpuNodeUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + d.Partial(true) if d.HasChange("tensorflow_version") { @@ -329,16 +334,11 @@ func resourceTpuNodeUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", url, obj, d.Timeout(schema.TimeoutUpdate)) + res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Node %q: %s", d.Id(), err) } - project, err := getProject(d, config) - if err != nil { - return err - } - err = tpuOperationWaitTime( config, res, project, "Updating Node", int(d.Timeout(schema.TimeoutUpdate).Minutes())) @@ -358,6 +358,11 @@ func resourceTpuNodeUpdate(d *schema.ResourceData, meta interface{}) error { func resourceTpuNodeDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + project, err := getProject(d, config) + if err != nil { + return err + } + url, err := replaceVars(d, config, "{{TpuBasePath}}projects/{{project}}/locations/{{zone}}/nodes/{{name}}") if err != nil { return err @@ -365,14 +370,10 @@ func resourceTpuNodeDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Node %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", url, obj, d.Timeout(schema.TimeoutDelete)) - if err != nil { - return handleNotFoundError(err, d, "Node") - } - project, err := getProject(d, config) + res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { - return err + return handleNotFoundError(err, d, "Node") } err = tpuOperationWaitTime( diff --git a/google/resource_tpu_node_generated_test.go b/google/resource_tpu_node_generated_test.go index 89271f3fe4a..965256b365f 100644 --- a/google/resource_tpu_node_generated_test.go +++ b/google/resource_tpu_node_generated_test.go @@ -132,7 +132,7 @@ func testAccCheckTpuNodeDestroy(s *terraform.State) error { return err } - _, err = sendRequest(config, "GET", url, nil) + _, err = sendRequest(config, "GET", "", url, nil) if err == nil { return fmt.Errorf("TpuNode still exists at %s", url) } diff --git a/google/spanner_operation.go b/google/spanner_operation.go index 23e4af9c50b..8d5e70d48b8 100644 --- a/google/spanner_operation.go +++ b/google/spanner_operation.go @@ -18,7 +18,8 @@ import ( ) type SpannerOperationWaiter struct { - Config *Config + Config *Config + Project string CommonOperationWaiter } @@ -28,7 +29,7 @@ func (w *SpannerOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://spanner.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", w.Project, url, nil) } func spannerOperationWaitTime(config *Config, op map[string]interface{}, project, activity string, timeoutMinutes int) error { @@ -37,7 +38,8 @@ func spannerOperationWaitTime(config *Config, op map[string]interface{}, project return nil } w := &SpannerOperationWaiter{ - Config: config, + Config: config, + Project: project, } if err := w.CommonOperationWaiter.SetOp(op); err != nil { return err diff --git a/google/tpu_operation.go b/google/tpu_operation.go index cab45b3f946..fb3c9c356e5 100644 --- a/google/tpu_operation.go +++ b/google/tpu_operation.go @@ -18,7 +18,8 @@ import ( ) type TpuOperationWaiter struct { - Config *Config + Config *Config + Project string CommonOperationWaiter } @@ -28,7 +29,7 @@ func (w *TpuOperationWaiter) QueryOp() (interface{}, error) { } // Returns the proper get. url := fmt.Sprintf("https://tpu.googleapis.com/v1/%s", w.CommonOperationWaiter.Op.Name) - return sendRequest(w.Config, "GET", url, nil) + return sendRequest(w.Config, "GET", w.Project, url, nil) } func tpuOperationWaitTime(config *Config, op map[string]interface{}, project, activity string, timeoutMinutes int) error { @@ -37,7 +38,8 @@ func tpuOperationWaitTime(config *Config, op map[string]interface{}, project, ac return nil } w := &TpuOperationWaiter{ - Config: config, + Config: config, + Project: project, } if err := w.CommonOperationWaiter.SetOp(op); err != nil { return err diff --git a/google/transport.go b/google/transport.go index 2aecd7750c4..e9e50e1ba5e 100644 --- a/google/transport.go +++ b/google/transport.go @@ -34,15 +34,21 @@ func isEmptyValue(v reflect.Value) bool { return false } -func sendRequest(config *Config, method, rawurl string, body map[string]interface{}) (map[string]interface{}, error) { - return sendRequestWithTimeout(config, method, rawurl, body, DefaultRequestTimeout) +func sendRequest(config *Config, method, project, rawurl string, body map[string]interface{}) (map[string]interface{}, error) { + return sendRequestWithTimeout(config, method, project, rawurl, body, DefaultRequestTimeout) } -func sendRequestWithTimeout(config *Config, method, rawurl string, body map[string]interface{}, timeout time.Duration, errorRetryPredicates ...func(e error) (bool, string)) (map[string]interface{}, error) { +func sendRequestWithTimeout(config *Config, method, project, rawurl string, body map[string]interface{}, timeout time.Duration, errorRetryPredicates ...func(e error) (bool, string)) (map[string]interface{}, error) { reqHeaders := make(http.Header) reqHeaders.Set("User-Agent", config.userAgent) reqHeaders.Set("Content-Type", "application/json") + if config.UserProjectOverride && project != "" { + // Pass the project into this fn instead of parsing it from the URL because + // both project names and URLs can have colons in them. + reqHeaders.Set("X-Goog-User-Project", project) + } + if timeout == 0 { timeout = time.Duration(1) * time.Hour } diff --git a/google/utils.go b/google/utils.go index ead3ed86c95..e15fca90138 100644 --- a/google/utils.go +++ b/google/utils.go @@ -469,8 +469,8 @@ func serviceAccountFQN(serviceAccount string, d TerraformResourceData, config *C return fmt.Sprintf("projects/-/serviceAccounts/%s@%s.iam.gserviceaccount.com", serviceAccount, project), nil } -func paginatedListRequest(baseUrl string, config *Config, flattener func(map[string]interface{}) []interface{}) ([]interface{}, error) { - res, err := sendRequest(config, "GET", baseUrl, nil) +func paginatedListRequest(project, baseUrl string, config *Config, flattener func(map[string]interface{}) []interface{}) ([]interface{}, error) { + res, err := sendRequest(config, "GET", project, baseUrl, nil) if err != nil { return nil, err } @@ -482,7 +482,7 @@ func paginatedListRequest(baseUrl string, config *Config, flattener func(map[str break } url := fmt.Sprintf("%s?pageToken=%s", baseUrl, pageToken.(string)) - res, err = sendRequest(config, "GET", url, nil) + res, err = sendRequest(config, "GET", project, url, nil) if err != nil { return nil, err } diff --git a/website/docs/provider_reference.html.markdown b/website/docs/provider_reference.html.markdown index 835c198fbd0..fc346fa0a81 100644 --- a/website/docs/provider_reference.html.markdown +++ b/website/docs/provider_reference.html.markdown @@ -97,6 +97,11 @@ authenticate HTTP requests to GCP APIs. This is an alternative to `credentials`, and ignores the `scopes` field. If both are specified, `access_token` will be used over the `credentials` field. +* `user_project_override` - (Optional) Defaults to false. If true, uses the +resource project for preconditions, quota, and billing, instead of the project +the credentials belong to. Not all resources support this- see the +documentation for each resource to learn whether it does. + * `{{service}}_custom_endpoint` - (Optional) The endpoint for a service's APIs, such as `compute_custom_endpoint`. Defaults to the production GCP endpoint for the service. This can be used to configure the Google provider to communicate @@ -323,4 +328,21 @@ integer or float string with a unit suffix, such as "300ms", "1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". * `disable_batching` - (Optional) Defaults to false. If true, disables global -batching and each request is sent normally. \ No newline at end of file +batching and each request is sent normally. + +--- + +* `user_project_override` - (Optional) Defaults to false. If true, uses the +resource project for preconditions, quota, and billing, instead of the project +the credentials belong to. Not all resources support this- see the +documentation for each resource to learn whether it does. + +When set to false, the project the credentials belong to will be billed for the +request, and quota / API enablement checks will be done against that project. +For service account credentials, this is the project the service account was +created in. For credentials that come from the gcloud tool, this is a project +owned by Google. In order to properly use credentials that come from gcloud +with Terraform, it is recommended to set this property to true. + +When set to true, the caller must have `serviceusage.services.use` permission +on the resource project. diff --git a/website/docs/r/app_engine_firewall_rule.html.markdown b/website/docs/r/app_engine_firewall_rule.html.markdown index 72ca1cd6318..28e22de7d95 100644 --- a/website/docs/r/app_engine_firewall_rule.html.markdown +++ b/website/docs/r/app_engine_firewall_rule.html.markdown @@ -114,3 +114,7 @@ $ terraform import google_app_engine_firewall_rule.default {{priority}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/bigquery_data_transfer_config.html.markdown b/website/docs/r/bigquery_data_transfer_config.html.markdown index edae43a6e02..06cb831ec67 100644 --- a/website/docs/r/bigquery_data_transfer_config.html.markdown +++ b/website/docs/r/bigquery_data_transfer_config.html.markdown @@ -157,3 +157,7 @@ $ terraform import google_bigquery_data_transfer_config.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/binary_authorization_attestor.html.markdown b/website/docs/r/binary_authorization_attestor.html.markdown index 9ef84907b93..1b4d5ec45dc 100644 --- a/website/docs/r/binary_authorization_attestor.html.markdown +++ b/website/docs/r/binary_authorization_attestor.html.markdown @@ -253,3 +253,7 @@ $ terraform import google_binary_authorization_attestor.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/binary_authorization_policy.html.markdown b/website/docs/r/binary_authorization_policy.html.markdown index c265861a047..8242fd6028e 100644 --- a/website/docs/r/binary_authorization_policy.html.markdown +++ b/website/docs/r/binary_authorization_policy.html.markdown @@ -221,3 +221,7 @@ $ terraform import google_binary_authorization_policy.default {{project}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/cloud_build_trigger.html.markdown b/website/docs/r/cloud_build_trigger.html.markdown index d6d2465d167..002c1e252c3 100644 --- a/website/docs/r/cloud_build_trigger.html.markdown +++ b/website/docs/r/cloud_build_trigger.html.markdown @@ -303,3 +303,7 @@ $ terraform import google_cloudbuild_trigger.default {{trigger_id}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/cloud_scheduler_job.html.markdown b/website/docs/r/cloud_scheduler_job.html.markdown index d88ce1f0150..c5154da83b8 100644 --- a/website/docs/r/cloud_scheduler_job.html.markdown +++ b/website/docs/r/cloud_scheduler_job.html.markdown @@ -309,3 +309,7 @@ $ terraform import google_cloud_scheduler_job.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_address.html.markdown b/website/docs/r/compute_address.html.markdown index 76e32b88d81..ee9fee601a7 100644 --- a/website/docs/r/compute_address.html.markdown +++ b/website/docs/r/compute_address.html.markdown @@ -214,3 +214,7 @@ $ terraform import google_compute_address.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_autoscaler.html.markdown b/website/docs/r/compute_autoscaler.html.markdown index 48ec54f22e6..d5737496943 100644 --- a/website/docs/r/compute_autoscaler.html.markdown +++ b/website/docs/r/compute_autoscaler.html.markdown @@ -358,3 +358,7 @@ $ terraform import google_compute_autoscaler.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_backend_bucket.html.markdown b/website/docs/r/compute_backend_bucket.html.markdown index 9abb6900600..087024392a6 100644 --- a/website/docs/r/compute_backend_bucket.html.markdown +++ b/website/docs/r/compute_backend_bucket.html.markdown @@ -143,3 +143,7 @@ $ terraform import google_compute_backend_bucket.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_backend_bucket_signed_url_key.html.markdown b/website/docs/r/compute_backend_bucket_signed_url_key.html.markdown index 60cdba1b0f4..b8a98a8c63b 100644 --- a/website/docs/r/compute_backend_bucket_signed_url_key.html.markdown +++ b/website/docs/r/compute_backend_bucket_signed_url_key.html.markdown @@ -105,3 +105,7 @@ $ terraform import google_compute_backend_bucket_signed_url_key.default {{backen -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_backend_service.html.markdown b/website/docs/r/compute_backend_service.html.markdown index ab6b2a0c442..042855ce1ed 100644 --- a/website/docs/r/compute_backend_service.html.markdown +++ b/website/docs/r/compute_backend_service.html.markdown @@ -353,3 +353,7 @@ $ terraform import google_compute_backend_service.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_backend_service_signed_url_key.html.markdown b/website/docs/r/compute_backend_service_signed_url_key.html.markdown index 7b80da017c9..1b97116b185 100644 --- a/website/docs/r/compute_backend_service_signed_url_key.html.markdown +++ b/website/docs/r/compute_backend_service_signed_url_key.html.markdown @@ -138,3 +138,7 @@ $ terraform import google_compute_backend_service_signed_url_key.default {{backe -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_disk.html.markdown b/website/docs/r/compute_disk.html.markdown index 7f75c26b198..63def00cf6c 100644 --- a/website/docs/r/compute_disk.html.markdown +++ b/website/docs/r/compute_disk.html.markdown @@ -290,3 +290,7 @@ $ terraform import google_compute_disk.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_firewall.html.markdown b/website/docs/r/compute_firewall.html.markdown index f8312be1220..10f9f08d5d6 100644 --- a/website/docs/r/compute_firewall.html.markdown +++ b/website/docs/r/compute_firewall.html.markdown @@ -264,3 +264,7 @@ $ terraform import google_compute_firewall.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_forwarding_rule.html.markdown b/website/docs/r/compute_forwarding_rule.html.markdown index 68657114a26..64398fa942e 100644 --- a/website/docs/r/compute_forwarding_rule.html.markdown +++ b/website/docs/r/compute_forwarding_rule.html.markdown @@ -299,3 +299,7 @@ $ terraform import google_compute_forwarding_rule.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_global_address.html.markdown b/website/docs/r/compute_global_address.html.markdown index 42808273d58..fb2c6a8cf39 100644 --- a/website/docs/r/compute_global_address.html.markdown +++ b/website/docs/r/compute_global_address.html.markdown @@ -138,3 +138,7 @@ $ terraform import google_compute_global_address.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_global_forwarding_rule.html.markdown b/website/docs/r/compute_global_forwarding_rule.html.markdown index 53e586ae1e2..90e38f3d505 100644 --- a/website/docs/r/compute_global_forwarding_rule.html.markdown +++ b/website/docs/r/compute_global_forwarding_rule.html.markdown @@ -321,3 +321,7 @@ $ terraform import google_compute_global_forwarding_rule.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_health_check.html.markdown b/website/docs/r/compute_health_check.html.markdown index bb9afd9d6b3..724acf8c80f 100644 --- a/website/docs/r/compute_health_check.html.markdown +++ b/website/docs/r/compute_health_check.html.markdown @@ -340,3 +340,7 @@ $ terraform import google_compute_health_check.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_http_health_check.html.markdown b/website/docs/r/compute_http_health_check.html.markdown index f142b5d3d05..7fd9fafebdb 100644 --- a/website/docs/r/compute_http_health_check.html.markdown +++ b/website/docs/r/compute_http_health_check.html.markdown @@ -152,3 +152,7 @@ $ terraform import google_compute_http_health_check.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_https_health_check.html.markdown b/website/docs/r/compute_https_health_check.html.markdown index 1bcc0d14e9a..a6d3a6808d4 100644 --- a/website/docs/r/compute_https_health_check.html.markdown +++ b/website/docs/r/compute_https_health_check.html.markdown @@ -152,3 +152,7 @@ $ terraform import google_compute_https_health_check.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_image.html.markdown b/website/docs/r/compute_image.html.markdown index 363b34b0d6d..af2bfa6187e 100644 --- a/website/docs/r/compute_image.html.markdown +++ b/website/docs/r/compute_image.html.markdown @@ -180,3 +180,7 @@ $ terraform import google_compute_image.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_interconnect_attachment.html.markdown b/website/docs/r/compute_interconnect_attachment.html.markdown index 298cb42709a..11f4a2cfb6b 100644 --- a/website/docs/r/compute_interconnect_attachment.html.markdown +++ b/website/docs/r/compute_interconnect_attachment.html.markdown @@ -180,3 +180,7 @@ $ terraform import google_compute_interconnect_attachment.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_network.html.markdown b/website/docs/r/compute_network.html.markdown index fb92caa76e5..191e35fb5a1 100644 --- a/website/docs/r/compute_network.html.markdown +++ b/website/docs/r/compute_network.html.markdown @@ -133,3 +133,7 @@ $ terraform import google_compute_network.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_network_endpoint.html.markdown b/website/docs/r/compute_network_endpoint.html.markdown index 4837eec0e0d..f0be0426ebc 100644 --- a/website/docs/r/compute_network_endpoint.html.markdown +++ b/website/docs/r/compute_network_endpoint.html.markdown @@ -148,3 +148,7 @@ $ terraform import google_compute_network_endpoint.default {{network_endpoint_gr -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_network_endpoint_group.html.markdown b/website/docs/r/compute_network_endpoint_group.html.markdown index 6a19a4fe308..2a304d11a37 100644 --- a/website/docs/r/compute_network_endpoint_group.html.markdown +++ b/website/docs/r/compute_network_endpoint_group.html.markdown @@ -153,3 +153,7 @@ $ terraform import google_compute_network_endpoint_group.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_node_group.html.markdown b/website/docs/r/compute_node_group.html.markdown index b3cc7235f44..6e38b297df5 100644 --- a/website/docs/r/compute_node_group.html.markdown +++ b/website/docs/r/compute_node_group.html.markdown @@ -129,3 +129,7 @@ $ terraform import google_compute_node_group.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_node_template.html.markdown b/website/docs/r/compute_node_template.html.markdown index 9093fad530d..4b86f2b1f81 100644 --- a/website/docs/r/compute_node_template.html.markdown +++ b/website/docs/r/compute_node_template.html.markdown @@ -174,3 +174,7 @@ $ terraform import google_compute_node_template.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_region_autoscaler.html.markdown b/website/docs/r/compute_region_autoscaler.html.markdown index 00c012cb16b..9e00c554d93 100644 --- a/website/docs/r/compute_region_autoscaler.html.markdown +++ b/website/docs/r/compute_region_autoscaler.html.markdown @@ -356,3 +356,7 @@ $ terraform import google_compute_region_autoscaler.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_region_backend_service.html.markdown b/website/docs/r/compute_region_backend_service.html.markdown index 2bb43836b4e..514cbee9b4d 100644 --- a/website/docs/r/compute_region_backend_service.html.markdown +++ b/website/docs/r/compute_region_backend_service.html.markdown @@ -183,3 +183,7 @@ $ terraform import google_compute_region_backend_service.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_region_disk.html.markdown b/website/docs/r/compute_region_disk.html.markdown index d2b6d5f8398..3c173e6af33 100644 --- a/website/docs/r/compute_region_disk.html.markdown +++ b/website/docs/r/compute_region_disk.html.markdown @@ -250,3 +250,7 @@ $ terraform import google_compute_region_disk.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_route.html.markdown b/website/docs/r/compute_route.html.markdown index 543bb8ab95a..55fcd330f61 100644 --- a/website/docs/r/compute_route.html.markdown +++ b/website/docs/r/compute_route.html.markdown @@ -183,3 +183,7 @@ $ terraform import google_compute_route.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_router.html.markdown b/website/docs/r/compute_router.html.markdown index 5cba55384e7..53dc64dc009 100644 --- a/website/docs/r/compute_router.html.markdown +++ b/website/docs/r/compute_router.html.markdown @@ -174,3 +174,7 @@ $ terraform import google_compute_router.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_snapshot.html.markdown b/website/docs/r/compute_snapshot.html.markdown index 319fba51bd2..0732b7119f4 100644 --- a/website/docs/r/compute_snapshot.html.markdown +++ b/website/docs/r/compute_snapshot.html.markdown @@ -193,3 +193,7 @@ $ terraform import google_compute_snapshot.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_ssl_certificate.html.markdown b/website/docs/r/compute_ssl_certificate.html.markdown index 1227c99a1e7..254b2b2beab 100644 --- a/website/docs/r/compute_ssl_certificate.html.markdown +++ b/website/docs/r/compute_ssl_certificate.html.markdown @@ -234,3 +234,7 @@ $ terraform import google_compute_ssl_certificate.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_ssl_policy.html.markdown b/website/docs/r/compute_ssl_policy.html.markdown index 4ac96ee9a47..15ea1eba23a 100644 --- a/website/docs/r/compute_ssl_policy.html.markdown +++ b/website/docs/r/compute_ssl_policy.html.markdown @@ -155,3 +155,7 @@ $ terraform import google_compute_ssl_policy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_subnetwork.html.markdown b/website/docs/r/compute_subnetwork.html.markdown index 7f44484b27c..753fbc29fad 100644 --- a/website/docs/r/compute_subnetwork.html.markdown +++ b/website/docs/r/compute_subnetwork.html.markdown @@ -234,3 +234,7 @@ $ terraform import google_compute_subnetwork.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_target_http_proxy.html.markdown b/website/docs/r/compute_target_http_proxy.html.markdown index 77a17bb15ea..0bbb503453d 100644 --- a/website/docs/r/compute_target_http_proxy.html.markdown +++ b/website/docs/r/compute_target_http_proxy.html.markdown @@ -149,3 +149,7 @@ $ terraform import google_compute_target_http_proxy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_target_https_proxy.html.markdown b/website/docs/r/compute_target_https_proxy.html.markdown index ed0c766c486..f5814d2d71e 100644 --- a/website/docs/r/compute_target_https_proxy.html.markdown +++ b/website/docs/r/compute_target_https_proxy.html.markdown @@ -179,3 +179,7 @@ $ terraform import google_compute_target_https_proxy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_target_instance.html.markdown b/website/docs/r/compute_target_instance.html.markdown index 5ea06b7557c..52d1830fde0 100644 --- a/website/docs/r/compute_target_instance.html.markdown +++ b/website/docs/r/compute_target_instance.html.markdown @@ -148,3 +148,7 @@ $ terraform import google_compute_target_instance.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_target_ssl_proxy.html.markdown b/website/docs/r/compute_target_ssl_proxy.html.markdown index df1c43681b7..176ac30139f 100644 --- a/website/docs/r/compute_target_ssl_proxy.html.markdown +++ b/website/docs/r/compute_target_ssl_proxy.html.markdown @@ -153,3 +153,7 @@ $ terraform import google_compute_target_ssl_proxy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_target_tcp_proxy.html.markdown b/website/docs/r/compute_target_tcp_proxy.html.markdown index 36383849741..fe9a518eb94 100644 --- a/website/docs/r/compute_target_tcp_proxy.html.markdown +++ b/website/docs/r/compute_target_tcp_proxy.html.markdown @@ -137,3 +137,7 @@ $ terraform import google_compute_target_tcp_proxy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_url_map.html.markdown b/website/docs/r/compute_url_map.html.markdown index da703e4551c..c30fe8f0dfb 100644 --- a/website/docs/r/compute_url_map.html.markdown +++ b/website/docs/r/compute_url_map.html.markdown @@ -264,3 +264,7 @@ $ terraform import google_compute_url_map.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_vpn_gateway.html.markdown b/website/docs/r/compute_vpn_gateway.html.markdown index 606913e6973..9abb2ea318f 100644 --- a/website/docs/r/compute_vpn_gateway.html.markdown +++ b/website/docs/r/compute_vpn_gateway.html.markdown @@ -164,3 +164,7 @@ $ terraform import google_compute_vpn_gateway.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/compute_vpn_tunnel.html.markdown b/website/docs/r/compute_vpn_tunnel.html.markdown index a1ac1185126..0eb6d215c62 100644 --- a/website/docs/r/compute_vpn_tunnel.html.markdown +++ b/website/docs/r/compute_vpn_tunnel.html.markdown @@ -295,3 +295,7 @@ $ terraform import google_compute_vpn_tunnel.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/dns_managed_zone.html.markdown b/website/docs/r/dns_managed_zone.html.markdown index f9463585eea..c47250bef1c 100644 --- a/website/docs/r/dns_managed_zone.html.markdown +++ b/website/docs/r/dns_managed_zone.html.markdown @@ -329,3 +329,7 @@ $ terraform import google_dns_managed_zone.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/filestore_instance.html.markdown b/website/docs/r/filestore_instance.html.markdown index d5139487f4e..fd779c1312b 100644 --- a/website/docs/r/filestore_instance.html.markdown +++ b/website/docs/r/filestore_instance.html.markdown @@ -166,3 +166,7 @@ $ terraform import google_filestore_instance.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/firestore_index.html.markdown b/website/docs/r/firestore_index.html.markdown index b3f15e8dbbe..1a6248e04fa 100644 --- a/website/docs/r/firestore_index.html.markdown +++ b/website/docs/r/firestore_index.html.markdown @@ -141,3 +141,7 @@ $ terraform import google_firestore_index.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/kms_key_ring.html.markdown b/website/docs/r/kms_key_ring.html.markdown index a1911c29d96..d5f4ff8a52d 100644 --- a/website/docs/r/kms_key_ring.html.markdown +++ b/website/docs/r/kms_key_ring.html.markdown @@ -95,3 +95,7 @@ $ terraform import google_kms_key_ring.default {{location}}/{{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/logging_metric.html.markdown b/website/docs/r/logging_metric.html.markdown index c3214173453..cfd71a9c076 100644 --- a/website/docs/r/logging_metric.html.markdown +++ b/website/docs/r/logging_metric.html.markdown @@ -272,3 +272,7 @@ $ terraform import google_logging_metric.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/monitoring_alert_policy.html.markdown b/website/docs/r/monitoring_alert_policy.html.markdown index 91c632b272c..a21e969f9d8 100644 --- a/website/docs/r/monitoring_alert_policy.html.markdown +++ b/website/docs/r/monitoring_alert_policy.html.markdown @@ -658,3 +658,7 @@ $ terraform import google_monitoring_alert_policy.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/monitoring_group.html.markdown b/website/docs/r/monitoring_group.html.markdown index 56df46523a1..fb9e252f28c 100644 --- a/website/docs/r/monitoring_group.html.markdown +++ b/website/docs/r/monitoring_group.html.markdown @@ -133,3 +133,7 @@ $ terraform import google_monitoring_group.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/monitoring_notification_channel.html.markdown b/website/docs/r/monitoring_notification_channel.html.markdown index e08d98ff5d7..b6a2f3f84d8 100644 --- a/website/docs/r/monitoring_notification_channel.html.markdown +++ b/website/docs/r/monitoring_notification_channel.html.markdown @@ -146,3 +146,7 @@ $ terraform import google_monitoring_notification_channel.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/monitoring_uptime_check_config.html.markdown b/website/docs/r/monitoring_uptime_check_config.html.markdown index 5a48565fdeb..45e07c17d59 100644 --- a/website/docs/r/monitoring_uptime_check_config.html.markdown +++ b/website/docs/r/monitoring_uptime_check_config.html.markdown @@ -240,3 +240,7 @@ $ terraform import google_monitoring_uptime_check_config.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/pubsub_subscription.html.markdown b/website/docs/r/pubsub_subscription.html.markdown index bd50ffc7479..d0c243d6a55 100644 --- a/website/docs/r/pubsub_subscription.html.markdown +++ b/website/docs/r/pubsub_subscription.html.markdown @@ -253,3 +253,7 @@ $ terraform import google_pubsub_subscription.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/pubsub_topic.html.markdown b/website/docs/r/pubsub_topic.html.markdown index 6da52883279..121d2f5db64 100644 --- a/website/docs/r/pubsub_topic.html.markdown +++ b/website/docs/r/pubsub_topic.html.markdown @@ -155,3 +155,7 @@ $ terraform import google_pubsub_topic.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/pubsub_topic_iam.html.markdown b/website/docs/r/pubsub_topic_iam.html.markdown index e792b0e2892..4aad1098a6a 100644 --- a/website/docs/r/pubsub_topic_iam.html.markdown +++ b/website/docs/r/pubsub_topic_iam.html.markdown @@ -117,3 +117,7 @@ $ terraform import google_pubsub_topic_iam_member.editor "projects/{{project}}/t -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/redis_instance.html.markdown b/website/docs/r/redis_instance.html.markdown index 395e512c891..991cf669954 100644 --- a/website/docs/r/redis_instance.html.markdown +++ b/website/docs/r/redis_instance.html.markdown @@ -205,3 +205,7 @@ $ terraform import google_redis_instance.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/source_repo_repository.html.markdown b/website/docs/r/source_repo_repository.html.markdown index 8215d4e7f2b..7768ec267ee 100644 --- a/website/docs/r/source_repo_repository.html.markdown +++ b/website/docs/r/source_repo_repository.html.markdown @@ -94,3 +94,7 @@ $ terraform import google_sourcerepo_repository.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/source_repo_repository_iam.html.markdown b/website/docs/r/source_repo_repository_iam.html.markdown index c2d848eb9f4..7bdf5ff9e78 100644 --- a/website/docs/r/source_repo_repository_iam.html.markdown +++ b/website/docs/r/source_repo_repository_iam.html.markdown @@ -117,3 +117,7 @@ $ terraform import google_sourcerepo_repository_iam_member.editor "{{project}}/{ -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/spanner_database.html.markdown b/website/docs/r/spanner_database.html.markdown index c47b77e002f..cd2ccf1aec2 100644 --- a/website/docs/r/spanner_database.html.markdown +++ b/website/docs/r/spanner_database.html.markdown @@ -113,3 +113,7 @@ $ terraform import google_spanner_database.default {{instance}}/{{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/spanner_instance.html.markdown b/website/docs/r/spanner_instance.html.markdown index 4e086928ae8..cbd4b59c294 100644 --- a/website/docs/r/spanner_instance.html.markdown +++ b/website/docs/r/spanner_instance.html.markdown @@ -125,3 +125,7 @@ $ terraform import google_spanner_instance.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override). diff --git a/website/docs/r/tpu_node.html.markdown b/website/docs/r/tpu_node.html.markdown index bcc908df41b..0c7b26be3f0 100644 --- a/website/docs/r/tpu_node.html.markdown +++ b/website/docs/r/tpu_node.html.markdown @@ -195,3 +195,7 @@ $ terraform import google_tpu_node.default {{name}} -> If you're importing a resource with beta features, make sure to include `-provider=google-beta` as an argument so that Terraform uses the correct provider to import your resource. + +## User Project Overrides + +This resource supports [User Project Overrides](https://www.terraform.io/docs/providers/google/provider_reference.html#user_project_override).