From 276529072428d20a5b645417fb9c52f67cde24de Mon Sep 17 00:00:00 2001 From: Joe Selman Date: Fri, 13 Oct 2017 15:36:03 -0700 Subject: [PATCH] Add label support to google_compute_snapshot (#570) * Add label support to google_compute_snapshot * Refactor operation polling code to use client directly --- google/compute_operation.go | 12 ++-- google/compute_shared_operation.go | 10 +-- google/resource_compute_address.go | 4 +- google/resource_compute_autoscaler.go | 6 +- google/resource_compute_backend_bucket.go | 6 +- google/resource_compute_backend_service.go | 6 +- google/resource_compute_disk.go | 10 +-- google/resource_compute_firewall.go | 6 +- google/resource_compute_forwarding_rule.go | 6 +- google/resource_compute_global_address.go | 4 +- ...resource_compute_global_forwarding_rule.go | 8 +-- google/resource_compute_health_check.go | 6 +- google/resource_compute_http_health_check.go | 6 +- google/resource_compute_https_health_check.go | 6 +- google/resource_compute_image.go | 6 +- google/resource_compute_instance.go | 16 ++--- google/resource_compute_instance_group.go | 12 ++-- ...resource_compute_instance_group_manager.go | 18 ++--- .../resource_compute_instance_migrate_test.go | 28 ++++---- google/resource_compute_instance_template.go | 4 +- google/resource_compute_instance_test.go | 4 +- google/resource_compute_network.go | 4 +- google/resource_compute_network_peering.go | 4 +- google/resource_compute_project_metadata.go | 6 +- .../resource_compute_project_metadata_item.go | 2 +- google/resource_compute_region_autoscaler.go | 6 +- ...resource_compute_region_backend_service.go | 6 +- ...e_compute_region_instance_group_manager.go | 14 ++-- google/resource_compute_route.go | 4 +- google/resource_compute_router.go | 4 +- google/resource_compute_router_interface.go | 4 +- google/resource_compute_router_peer.go | 4 +- ...esource_compute_shared_vpc_host_project.go | 4 +- ...urce_compute_shared_vpc_service_project.go | 4 +- google/resource_compute_snapshot.go | 71 ++++++++++++++++++- google/resource_compute_snapshot_test.go | 67 ++++++++++++++++- google/resource_compute_ssl_certificate.go | 4 +- google/resource_compute_subnetwork.go | 6 +- google/resource_compute_target_http_proxy.go | 6 +- google/resource_compute_target_https_proxy.go | 8 +-- google/resource_compute_target_pool.go | 14 ++-- google/resource_compute_target_ssl_proxy.go | 10 +-- google/resource_compute_target_tcp_proxy.go | 6 +- google/resource_compute_url_map.go | 6 +- google/resource_compute_vpn_gateway.go | 4 +- google/resource_compute_vpn_tunnel.go | 4 +- website/docs/r/compute_snapshot.html.markdown | 14 +++- 47 files changed, 303 insertions(+), 167 deletions(-) diff --git a/google/compute_operation.go b/google/compute_operation.go index 92905135..52c64a71 100644 --- a/google/compute_operation.go +++ b/google/compute_operation.go @@ -65,13 +65,13 @@ func (e ComputeOperationError) Error() string { return buf.String() } -func computeOperationWait(config *Config, op *compute.Operation, project, activity string) error { - return computeOperationWaitTime(config, op, project, activity, 4) +func computeOperationWait(client *compute.Service, op *compute.Operation, project, activity string) error { + return computeOperationWaitTime(client, op, project, activity, 4) } -func computeOperationWaitTime(config *Config, op *compute.Operation, project, activity string, timeoutMin int) error { +func computeOperationWaitTime(client *compute.Service, op *compute.Operation, project, activity string, timeoutMin int) error { w := &ComputeOperationWaiter{ - Service: config.clientCompute, + Service: client, Op: op, Project: project, } @@ -93,12 +93,12 @@ func computeOperationWaitTime(config *Config, op *compute.Operation, project, ac return nil } -func computeBetaOperationWaitTime(config *Config, op *computeBeta.Operation, project, activity string, timeoutMin int) error { +func computeBetaOperationWaitTime(client *compute.Service, op *computeBeta.Operation, project, activity string, timeoutMin int) error { opV1 := &compute.Operation{} err := Convert(op, opV1) if err != nil { return err } - return computeOperationWaitTime(config, opV1, project, activity, timeoutMin) + return computeOperationWaitTime(client, opV1, project, activity, timeoutMin) } diff --git a/google/compute_shared_operation.go b/google/compute_shared_operation.go index 37fab75c..fc72f828 100644 --- a/google/compute_shared_operation.go +++ b/google/compute_shared_operation.go @@ -5,20 +5,20 @@ import ( "google.golang.org/api/compute/v1" ) -func computeSharedOperationWait(config *Config, op interface{}, project string, activity string) error { - return computeSharedOperationWaitTime(config, op, project, 4, activity) +func computeSharedOperationWait(client *compute.Service, op interface{}, project string, activity string) error { + return computeSharedOperationWaitTime(client, op, project, 4, activity) } -func computeSharedOperationWaitTime(config *Config, op interface{}, project string, minutes int, activity string) error { +func computeSharedOperationWaitTime(client *compute.Service, op interface{}, project string, minutes int, activity string) error { if op == nil { panic("Attempted to wait on an Operation that was nil.") } switch op.(type) { case *compute.Operation: - return computeOperationWaitTime(config, op.(*compute.Operation), project, activity, minutes) + return computeOperationWaitTime(client, op.(*compute.Operation), project, activity, minutes) case *computeBeta.Operation: - return computeBetaOperationWaitTime(config, op.(*computeBeta.Operation), project, activity, minutes) + return computeBetaOperationWaitTime(client, op.(*computeBeta.Operation), project, activity, minutes) default: panic("Attempted to wait on an Operation of unknown type.") } diff --git a/google/resource_compute_address.go b/google/resource_compute_address.go index fc498a2d..0748402b 100644 --- a/google/resource_compute_address.go +++ b/google/resource_compute_address.go @@ -88,7 +88,7 @@ func resourceComputeAddressCreate(d *schema.ResourceData, meta interface{}) erro Name: addr.Name, }.canonicalId()) - err = computeOperationWait(config, op, project, "Creating Address") + err = computeOperationWait(config.clientCompute, op, project, "Creating Address") if err != nil { return err } @@ -134,7 +134,7 @@ func resourceComputeAddressDelete(d *schema.ResourceData, meta interface{}) erro return fmt.Errorf("Error deleting address: %s", err) } - err = computeOperationWait(config, op, addressId.Project, "Deleting Address") + err = computeOperationWait(config.clientCompute, op, addressId.Project, "Deleting Address") if err != nil { return err } diff --git a/google/resource_compute_autoscaler.go b/google/resource_compute_autoscaler.go index 71844572..c7d8eb28 100644 --- a/google/resource_compute_autoscaler.go +++ b/google/resource_compute_autoscaler.go @@ -232,7 +232,7 @@ func resourceComputeAutoscalerCreate(d *schema.ResourceData, meta interface{}) e // It probably maybe worked, so store the ID now d.SetId(scaler.Name) - err = computeOperationWait(config, op, project, "Creating Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Creating Autoscaler") if err != nil { return err } @@ -352,7 +352,7 @@ func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) e // It probably maybe worked, so store the ID now d.SetId(scaler.Name) - err = computeOperationWait(config, op, project, "Updating Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Updating Autoscaler") if err != nil { return err } @@ -375,7 +375,7 @@ func resourceComputeAutoscalerDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error deleting autoscaler: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Autoscaler") if err != nil { return err } diff --git a/google/resource_compute_backend_bucket.go b/google/resource_compute_backend_bucket.go index 11d558bf..cef1c81d 100644 --- a/google/resource_compute_backend_bucket.go +++ b/google/resource_compute_backend_bucket.go @@ -87,7 +87,7 @@ func resourceComputeBackendBucketCreate(d *schema.ResourceData, meta interface{} d.SetId(bucket.Name) // Wait for the operation to complete - waitErr := computeOperationWait(config, op, project, "Creating Backend Bucket") + waitErr := computeOperationWait(config.clientCompute, op, project, "Creating Backend Bucket") if waitErr != nil { // The resource didn't actually create d.SetId("") @@ -150,7 +150,7 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{} d.SetId(bucket.Name) - err = computeOperationWait(config, op, project, "Updating Backend Bucket") + err = computeOperationWait(config.clientCompute, op, project, "Updating Backend Bucket") if err != nil { return err } @@ -173,7 +173,7 @@ func resourceComputeBackendBucketDelete(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error deleting backend bucket: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Backend Bucket") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Backend Bucket") if err != nil { return err } diff --git a/google/resource_compute_backend_service.go b/google/resource_compute_backend_service.go index dedf8d4c..fc59f551 100644 --- a/google/resource_compute_backend_service.go +++ b/google/resource_compute_backend_service.go @@ -174,7 +174,7 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{ d.SetId(service.Name) // Wait for the operation to complete - waitErr := computeOperationWait(config, op, project, "Creating Backend Service") + waitErr := computeOperationWait(config.clientCompute, op, project, "Creating Backend Service") if waitErr != nil { // The resource didn't actually create d.SetId("") @@ -238,7 +238,7 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{ d.SetId(service.Name) - err = computeOperationWait(config, op, project, "Updating Backend Service") + err = computeOperationWait(config.clientCompute, op, project, "Updating Backend Service") if err != nil { return err } @@ -261,7 +261,7 @@ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error deleting backend service: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Backend Service") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Backend Service") if err != nil { return err } diff --git a/google/resource_compute_disk.go b/google/resource_compute_disk.go index dcc6d9d3..84dc641b 100644 --- a/google/resource_compute_disk.go +++ b/google/resource_compute_disk.go @@ -199,7 +199,7 @@ func resourceComputeDiskCreate(d *schema.ResourceData, meta interface{}) error { // It probably maybe worked, so store the ID now d.SetId(disk.Name) - err = computeOperationWait(config, op, project, "Creating Disk") + err = computeOperationWait(config.clientCompute, op, project, "Creating Disk") if err != nil { return err } @@ -225,7 +225,7 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { } d.SetPartial("size") - err = computeOperationWait(config, op, project, "Resizing Disk") + err = computeOperationWait(config.clientCompute, op, project, "Resizing Disk") if err != nil { return err } @@ -243,7 +243,7 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { } d.SetPartial("labels") - err = computeOperationWait(config, op, project, "Setting labels on disk") + err = computeOperationWait(config.clientCompute, op, project, "Setting labels on disk") if err != nil { return err } @@ -357,7 +357,7 @@ func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { return fmt.Errorf("Error detaching disk %s from instance %s/%s/%s: %s", call.deviceName, call.project, call.zone, call.instance, err.Error()) } - err = computeOperationWait(config, op, call.project, + err = computeOperationWait(config.clientCompute, op, call.project, fmt.Sprintf("Detaching disk from %s/%s/%s", call.project, call.zone, call.instance)) if err != nil { return err @@ -378,7 +378,7 @@ func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { return fmt.Errorf("Error deleting disk: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Disk") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Disk") if err != nil { return err } diff --git a/google/resource_compute_firewall.go b/google/resource_compute_firewall.go index 32393916..8fb33dfa 100644 --- a/google/resource_compute_firewall.go +++ b/google/resource_compute_firewall.go @@ -225,7 +225,7 @@ func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) err // It probably maybe worked, so store the ID now d.SetId(firewall.Name) - err = computeSharedOperationWait(config, op, project, "Creating Firewall") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Firewall") if err != nil { return err } @@ -359,7 +359,7 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err } } - err = computeSharedOperationWait(config, op, project, "Updating Firewall") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Firewall") if err != nil { return err } @@ -393,7 +393,7 @@ func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) err } } - err = computeSharedOperationWait(config, op, project, "Deleting Firewall") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting Firewall") if err != nil { return err } diff --git a/google/resource_compute_forwarding_rule.go b/google/resource_compute_forwarding_rule.go index aa348797..36515917 100644 --- a/google/resource_compute_forwarding_rule.go +++ b/google/resource_compute_forwarding_rule.go @@ -170,7 +170,7 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{ // It probably maybe worked, so store the ID now d.SetId(frule.Name) - err = computeOperationWait(config, op, project, "Creating Fowarding Rule") + err = computeOperationWait(config.clientCompute, op, project, "Creating Fowarding Rule") if err != nil { return err } @@ -202,7 +202,7 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error updating target: %s", err) } - err = computeOperationWait(config, op, project, "Updating Forwarding Rule") + err = computeOperationWait(config.clientCompute, op, project, "Updating Forwarding Rule") if err != nil { return err } @@ -272,7 +272,7 @@ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error deleting ForwardingRule: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Forwarding Rule") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Forwarding Rule") if err != nil { return err } diff --git a/google/resource_compute_global_address.go b/google/resource_compute_global_address.go index efcfa465..6515c8a2 100644 --- a/google/resource_compute_global_address.go +++ b/google/resource_compute_global_address.go @@ -74,7 +74,7 @@ func resourceComputeGlobalAddressCreate(d *schema.ResourceData, meta interface{} // It probably maybe worked, so store the ID now d.SetId(addr.Name) - err = computeSharedOperationWait(config, op, project, "Creating Global Address") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Global Address") if err != nil { return err } @@ -118,7 +118,7 @@ func resourceComputeGlobalAddressDelete(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error deleting address: %s", err) } - err = computeSharedOperationWait(config, op, project, "Deleting Global Address") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting Global Address") if err != nil { return err } diff --git a/google/resource_compute_global_forwarding_rule.go b/google/resource_compute_global_forwarding_rule.go index 3c804346..e81a1af3 100644 --- a/google/resource_compute_global_forwarding_rule.go +++ b/google/resource_compute_global_forwarding_rule.go @@ -150,7 +150,7 @@ func resourceComputeGlobalForwardingRuleCreate(d *schema.ResourceData, meta inte // It probably maybe worked, so store the ID now d.SetId(frule.Name) - err = computeSharedOperationWait(config, op, project, "Creating Global Fowarding Rule") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Global Fowarding Rule") if err != nil { return err } @@ -216,7 +216,7 @@ func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta inte } } - err = computeSharedOperationWait(config, op, project, "Updating Global Forwarding Rule") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Global Forwarding Rule") if err != nil { return err } @@ -308,7 +308,7 @@ func resourceComputeGlobalForwardingRuleDelete(d *schema.ResourceData, meta inte } } - err = computeSharedOperationWait(config, op, project, "Deleting GlobalForwarding Rule") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting GlobalForwarding Rule") if err != nil { return err } @@ -358,7 +358,7 @@ func resourceComputeGlobalForwardingRuleSetLabels(config *Config, computeApiVers computeApiVersion) } - err = computeSharedOperationWait(config, op, project, "Setting labels on Global Forwarding Rule") + err = computeSharedOperationWait(config.clientCompute, op, project, "Setting labels on Global Forwarding Rule") if err != nil { return err } diff --git a/google/resource_compute_health_check.go b/google/resource_compute_health_check.go index 34eee969..e04597ad 100644 --- a/google/resource_compute_health_check.go +++ b/google/resource_compute_health_check.go @@ -302,7 +302,7 @@ func resourceComputeHealthCheckCreate(d *schema.ResourceData, meta interface{}) // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Creating Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Creating Health Check") if err != nil { return err } @@ -422,7 +422,7 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Updating Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Updating Health Check") if err != nil { return err } @@ -475,7 +475,7 @@ func resourceComputeHealthCheckDelete(d *schema.ResourceData, meta interface{}) return fmt.Errorf("Error deleting HealthCheck: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Health Check") if err != nil { return err } diff --git a/google/resource_compute_http_health_check.go b/google/resource_compute_http_health_check.go index 913258d8..e995247f 100644 --- a/google/resource_compute_http_health_check.go +++ b/google/resource_compute_http_health_check.go @@ -134,7 +134,7 @@ func resourceComputeHttpHealthCheckCreate(d *schema.ResourceData, meta interface // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Creating Http Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Creating Http Health Check") if err != nil { return err } @@ -190,7 +190,7 @@ func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Updating Http Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Updating Http Health Check") if err != nil { return err } @@ -242,7 +242,7 @@ func resourceComputeHttpHealthCheckDelete(d *schema.ResourceData, meta interface return fmt.Errorf("Error deleting HttpHealthCheck: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Http Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Http Health Check") if err != nil { return err } diff --git a/google/resource_compute_https_health_check.go b/google/resource_compute_https_health_check.go index eaeddc71..8ce472b7 100644 --- a/google/resource_compute_https_health_check.go +++ b/google/resource_compute_https_health_check.go @@ -133,7 +133,7 @@ func resourceComputeHttpsHealthCheckCreate(d *schema.ResourceData, meta interfac // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Creating Https Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Creating Https Health Check") if err != nil { return err } @@ -189,7 +189,7 @@ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interfac // It probably maybe worked, so store the ID now d.SetId(hchk.Name) - err = computeOperationWait(config, op, project, "Updating Https Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Updating Https Health Check") if err != nil { return err } @@ -240,7 +240,7 @@ func resourceComputeHttpsHealthCheckDelete(d *schema.ResourceData, meta interfac return fmt.Errorf("Error deleting HttpsHealthCheck: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Https Health Check") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Https Health Check") if err != nil { return err } diff --git a/google/resource_compute_image.go b/google/resource_compute_image.go index 1cc4adbc..61e4dc97 100644 --- a/google/resource_compute_image.go +++ b/google/resource_compute_image.go @@ -166,7 +166,7 @@ func resourceComputeImageCreate(d *schema.ResourceData, meta interface{}) error // Store the ID d.SetId(image.Name) - err = computeOperationWaitTime(config, op, project, "Creating Image", createTimeout) + err = computeOperationWaitTime(config.clientCompute, op, project, "Creating Image", createTimeout) if err != nil { return err } @@ -235,7 +235,7 @@ func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error d.SetPartial("labels") - err = computeOperationWaitTime(config, op, project, "Setting labels", 4) + err = computeOperationWaitTime(config.clientCompute, op, project, "Setting labels", 4) if err != nil { return err } @@ -268,7 +268,7 @@ func resourceComputeImageDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error deleting image: %s", err) } - err = computeOperationWait(config, op, project, "Deleting image") + err = computeOperationWait(config.clientCompute, op, project, "Deleting image") if err != nil { return err } diff --git a/google/resource_compute_instance.go b/google/resource_compute_instance.go index 8035ed75..7182b93f 100644 --- a/google/resource_compute_instance.go +++ b/google/resource_compute_instance.go @@ -790,7 +790,7 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err d.SetId(instance.Name) // Wait for the operation to complete - waitErr := computeSharedOperationWaitTime(config, op, project, createTimeout, "instance to create") + waitErr := computeSharedOperationWaitTime(config.clientCompute, op, project, createTimeout, "instance to create") if waitErr != nil { // The resource didn't actually create d.SetId("") @@ -1052,7 +1052,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating metadata: %s", err) } - opErr := computeOperationWait(config, op, project, "metadata to update") + opErr := computeOperationWait(config.clientCompute, op, project, "metadata to update") if opErr != nil { return opErr } @@ -1072,7 +1072,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating tags: %s", err) } - opErr := computeOperationWait(config, op, project, "tags to update") + opErr := computeOperationWait(config.clientCompute, op, project, "tags to update") if opErr != nil { return opErr } @@ -1090,7 +1090,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating labels: %s", err) } - opErr := computeOperationWait(config, op, project, "labels to update") + opErr := computeOperationWait(config.clientCompute, op, project, "labels to update") if opErr != nil { return opErr } @@ -1120,7 +1120,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error updating scheduling policy: %s", err) } - opErr := computeOperationWait(config, op, project, "scheduling policy update") + opErr := computeOperationWait(config.clientCompute, op, project, "scheduling policy update") if opErr != nil { return opErr } @@ -1160,7 +1160,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return fmt.Errorf("Error deleting old access_config: %s", err) } - opErr := computeOperationWait(config, op, project, "old access_config to delete") + opErr := computeOperationWait(config.clientCompute, op, project, "old access_config to delete") if opErr != nil { return opErr } @@ -1179,7 +1179,7 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return fmt.Errorf("Error adding new access_config: %s", err) } - opErr := computeOperationWait(config, op, project, "new access_config to add") + opErr := computeOperationWait(config.clientCompute, op, project, "new access_config to add") if opErr != nil { return opErr } @@ -1209,7 +1209,7 @@ func resourceComputeInstanceDelete(d *schema.ResourceData, meta interface{}) err } // Wait for the operation to complete - opErr := computeOperationWait(config, op, project, "instance to delete") + opErr := computeOperationWait(config.clientCompute, op, project, "instance to delete") if opErr != nil { return opErr } diff --git a/google/resource_compute_instance_group.go b/google/resource_compute_instance_group.go index 11cfe35a..685922c1 100644 --- a/google/resource_compute_instance_group.go +++ b/google/resource_compute_instance_group.go @@ -153,7 +153,7 @@ func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{} d.SetId(fmt.Sprintf("%s/%s", zone, name)) // Wait for the operation to complete - err = computeOperationWait(config, op, project, "Creating InstanceGroup") + err = computeOperationWait(config.clientCompute, op, project, "Creating InstanceGroup") if err != nil { d.SetId("") return err @@ -177,7 +177,7 @@ func resourceComputeInstanceGroupCreate(d *schema.ResourceData, meta interface{} } // Wait for the operation to complete - err = computeOperationWait(config, op, project, "Adding instances to InstanceGroup") + err = computeOperationWait(config.clientCompute, op, project, "Adding instances to InstanceGroup") if err != nil { return err } @@ -281,7 +281,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} } } else { // Wait for the operation to complete - err = computeOperationWait(config, removeOp, project, "Updating InstanceGroup") + err = computeOperationWait(config.clientCompute, removeOp, project, "Updating InstanceGroup") if err != nil { return err } @@ -302,7 +302,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} } // Wait for the operation to complete - err = computeOperationWait(config, addOp, project, "Updating InstanceGroup") + err = computeOperationWait(config.clientCompute, addOp, project, "Updating InstanceGroup") if err != nil { return err } @@ -325,7 +325,7 @@ func resourceComputeInstanceGroupUpdate(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error updating named ports for InstanceGroup: %s", err) } - err = computeOperationWait(config, op, project, "Updating InstanceGroup") + err = computeOperationWait(config.clientCompute, op, project, "Updating InstanceGroup") if err != nil { return err } @@ -352,7 +352,7 @@ func resourceComputeInstanceGroupDelete(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error deleting InstanceGroup: %s", err) } - err = computeOperationWait(config, op, project, "Deleting InstanceGroup") + err = computeOperationWait(config.clientCompute, op, project, "Deleting InstanceGroup") if err != nil { return err } diff --git a/google/resource_compute_instance_group_manager.go b/google/resource_compute_instance_group_manager.go index 18ce93b4..353fcae1 100644 --- a/google/resource_compute_instance_group_manager.go +++ b/google/resource_compute_instance_group_manager.go @@ -225,7 +225,7 @@ func resourceComputeInstanceGroupManagerCreate(d *schema.ResourceData, meta inte d.SetId(manager.Name) // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Creating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating InstanceGroupManager") if err != nil { return err } @@ -406,7 +406,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating InstanceGroupManager") if err != nil { return err } @@ -448,7 +448,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating InstanceGroupManager") if err != nil { return err } @@ -519,7 +519,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeSharedOperationWaitTime(config, op, project, managedInstanceCount*4, "Restarting InstanceGroupManagers instances") + err = computeSharedOperationWaitTime(config.clientCompute, op, project, managedInstanceCount*4, "Restarting InstanceGroupManagers instances") if err != nil { return err } @@ -565,7 +565,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete: - err = computeSharedOperationWait(config, op, project, "Updating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating InstanceGroupManager") if err != nil { return err } @@ -590,7 +590,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating InstanceGroupManager") if err != nil { return err } @@ -613,7 +613,7 @@ func resourceComputeInstanceGroupManagerUpdate(d *schema.ResourceData, meta inte } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating AutoHealingPolicies") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating AutoHealingPolicies") if err != nil { return err } @@ -664,7 +664,7 @@ func resourceComputeInstanceGroupManagerDelete(d *schema.ResourceData, meta inte currentSize := int64(d.Get("target_size").(int)) // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Deleting InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting InstanceGroupManager") for err != nil && currentSize > 0 { if !strings.Contains(err.Error(), "timeout") { @@ -697,7 +697,7 @@ func resourceComputeInstanceGroupManagerDelete(d *schema.ResourceData, meta inte log.Printf("[INFO] timeout occured, but instance group is shrinking (%d < %d)", instanceGroupSize, currentSize) currentSize = instanceGroupSize - err = computeSharedOperationWait(config, op, project, "Deleting InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting InstanceGroupManager") } d.SetId("") diff --git a/google/resource_compute_instance_migrate_test.go b/google/resource_compute_instance_migrate_test.go index 29591439..df3ae4d0 100644 --- a/google/resource_compute_instance_migrate_test.go +++ b/google/resource_compute_instance_migrate_test.go @@ -131,7 +131,7 @@ func TestAccComputeInstanceMigrateState_bootDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -195,7 +195,7 @@ func TestAccComputeInstanceMigrateState_v4FixBootDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -245,7 +245,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromSource(t *testing.T) { if err != nil { t.Fatalf("Error creating disk: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "disk to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "disk to create") if waitErr != nil { t.Fatal(waitErr) } @@ -276,7 +276,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromSource(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr = computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr = computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -325,7 +325,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromSource(t *testing.T if err != nil { t.Fatalf("Error creating disk: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "disk to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "disk to create") if waitErr != nil { t.Fatal(waitErr) } @@ -356,7 +356,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromSource(t *testing.T if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr = computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr = computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -424,7 +424,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromEncryptionKey(t *testing if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -492,7 +492,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromEncryptionKey(t *te if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -562,7 +562,7 @@ func TestAccComputeInstanceMigrateState_attachedDiskFromAutoDeleteAndImage(t *te if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -634,7 +634,7 @@ func TestAccComputeInstanceMigrateState_v4FixAttachedDiskFromAutoDeleteAndImage( if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -701,7 +701,7 @@ func TestAccComputeInstanceMigrateState_scratchDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -765,7 +765,7 @@ func TestAccComputeInstanceMigrateState_v4FixScratchDisk(t *testing.T) { if err != nil { t.Fatalf("Error creating instance: %s", err) } - waitErr := computeSharedOperationWait(config, op, config.Project, "instance to create") + waitErr := computeSharedOperationWait(config.clientCompute, op, config.Project, "instance to create") if waitErr != nil { t.Fatal(waitErr) } @@ -824,7 +824,7 @@ func cleanUpInstance(config *Config, instanceName, zone string) { } // Wait for the operation to complete - opErr := computeOperationWait(config, op, config.Project, "instance to delete") + opErr := computeOperationWait(config.clientCompute, op, config.Project, "instance to delete") if opErr != nil { log.Printf("[WARNING] Error deleting instance %q, dangling resources may exist: %s", instanceName, opErr) } @@ -838,7 +838,7 @@ func cleanUpDisk(config *Config, diskName, zone string) { } // Wait for the operation to complete - opErr := computeOperationWait(config, op, config.Project, "disk to delete") + opErr := computeOperationWait(config.clientCompute, op, config.Project, "disk to delete") if opErr != nil { log.Printf("[WARNING] Error deleting disk %q, dangling resources may exist: %s", diskName, opErr) } diff --git a/google/resource_compute_instance_template.go b/google/resource_compute_instance_template.go index 751239a8..8ed6281c 100644 --- a/google/resource_compute_instance_template.go +++ b/google/resource_compute_instance_template.go @@ -612,7 +612,7 @@ func resourceComputeInstanceTemplateCreate(d *schema.ResourceData, meta interfac // Store the ID now d.SetId(instanceTemplate.Name) - err = computeOperationWait(config, op, project, "Creating Instance Template") + err = computeOperationWait(config.clientCompute, op, project, "Creating Instance Template") if err != nil { return err } @@ -831,7 +831,7 @@ func resourceComputeInstanceTemplateDelete(d *schema.ResourceData, meta interfac return fmt.Errorf("Error deleting instance template: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Instance Template") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Instance Template") if err != nil { return err } diff --git a/google/resource_compute_instance_test.go b/google/resource_compute_instance_test.go index d774b893..06473535 100644 --- a/google/resource_compute_instance_test.go +++ b/google/resource_compute_instance_test.go @@ -750,7 +750,7 @@ func testAccCheckComputeInstanceUpdateMachineType(n string) resource.TestCheckFu if err != nil { return fmt.Errorf("Could not stop instance: %s", err) } - err = computeOperationWait(config, op, config.Project, "Waiting on stop") + err = computeOperationWait(config.clientCompute, op, config.Project, "Waiting on stop") if err != nil { return fmt.Errorf("Could not stop instance: %s", err) } @@ -764,7 +764,7 @@ func testAccCheckComputeInstanceUpdateMachineType(n string) resource.TestCheckFu if err != nil { return fmt.Errorf("Could not change machine type: %s", err) } - err = computeOperationWait(config, op, config.Project, "Waiting machine type change") + err = computeOperationWait(config.clientCompute, op, config.Project, "Waiting machine type change") if err != nil { return fmt.Errorf("Could not change machine type: %s", err) } diff --git a/google/resource_compute_network.go b/google/resource_compute_network.go index e473fb3e..4279f973 100644 --- a/google/resource_compute_network.go +++ b/google/resource_compute_network.go @@ -91,7 +91,7 @@ func resourceComputeNetworkCreate(d *schema.ResourceData, meta interface{}) erro // It probably maybe worked, so store the ID now d.SetId(network.Name) - err = computeOperationWait(config, op, project, "Creating Network") + err = computeOperationWait(config.clientCompute, op, project, "Creating Network") if err != nil { return err } @@ -136,7 +136,7 @@ func resourceComputeNetworkDelete(d *schema.ResourceData, meta interface{}) erro return fmt.Errorf("Error deleting network: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Network") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Network") if err != nil { return err } diff --git a/google/resource_compute_network_peering.go b/google/resource_compute_network_peering.go index 7d9f7a87..85b4a59d 100644 --- a/google/resource_compute_network_peering.go +++ b/google/resource_compute_network_peering.go @@ -75,7 +75,7 @@ func resourceComputeNetworkPeeringCreate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error adding network peering: %s", err) } - err = computeOperationWait(config, addOp, networkFieldValue.Project, "Adding Network Peering") + err = computeOperationWait(config.clientCompute, addOp, networkFieldValue.Project, "Adding Network Peering") if err != nil { return err } @@ -145,7 +145,7 @@ func resourceComputeNetworkPeeringDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error removing peering `%s` from network `%s`: %s", name, networkFieldValue.Name, err) } } else { - err = computeOperationWait(config, removeOp, networkFieldValue.Project, "Removing Network Peering") + err = computeOperationWait(config.clientCompute, removeOp, networkFieldValue.Project, "Removing Network Peering") if err != nil { return err } diff --git a/google/resource_compute_project_metadata.go b/google/resource_compute_project_metadata.go index 1814a637..16a25d84 100644 --- a/google/resource_compute_project_metadata.go +++ b/google/resource_compute_project_metadata.go @@ -76,7 +76,7 @@ func resourceComputeProjectMetadataCreate(d *schema.ResourceData, meta interface log.Printf("[DEBUG] SetCommonMetadata: %d (%s)", op.Id, op.SelfLink) - return computeOperationWait(config, op, project.Name, "SetCommonMetadata") + return computeOperationWait(config.clientCompute, op, project.Name, "SetCommonMetadata") } err = MetadataRetryWrapper(createMD) @@ -154,7 +154,7 @@ func resourceComputeProjectMetadataUpdate(d *schema.ResourceData, meta interface // Optimistic locking requires the fingerprint received to match // the fingerprint we send the server, if there is a mismatch then we // are working on old data, and must retry - return computeOperationWait(config, op, project.Name, "SetCommonMetadata") + return computeOperationWait(config.clientCompute, op, project.Name, "SetCommonMetadata") } err := MetadataRetryWrapper(updateMD) @@ -196,7 +196,7 @@ func resourceComputeProjectMetadataDelete(d *schema.ResourceData, meta interface log.Printf("[DEBUG] SetCommonMetadata: %d (%s)", op.Id, op.SelfLink) - err = computeOperationWait(config, op, project.Name, "SetCommonMetadata") + err = computeOperationWait(config.clientCompute, op, project.Name, "SetCommonMetadata") if err != nil { return err } diff --git a/google/resource_compute_project_metadata_item.go b/google/resource_compute_project_metadata_item.go index c6539542..063a9bb7 100644 --- a/google/resource_compute_project_metadata_item.go +++ b/google/resource_compute_project_metadata_item.go @@ -171,7 +171,7 @@ func updateComputeCommonInstanceMetadata(config *Config, projectID string, key s log.Printf("[DEBUG] SetCommonInstanceMetadata: %d (%s)", op.Id, op.SelfLink) - return computeOperationWait(config, op, project.Name, "SetCommonInstanceMetadata") + return computeOperationWait(config.clientCompute, op, project.Name, "SetCommonInstanceMetadata") } return MetadataRetryWrapper(updateMD) diff --git a/google/resource_compute_region_autoscaler.go b/google/resource_compute_region_autoscaler.go index 407f365a..434d4750 100644 --- a/google/resource_compute_region_autoscaler.go +++ b/google/resource_compute_region_autoscaler.go @@ -87,7 +87,7 @@ func resourceComputeRegionAutoscalerCreate(d *schema.ResourceData, meta interfac // It probably maybe worked, so store the ID now d.SetId(scaler.Name) - err = computeOperationWait(config, op, project, "Creating Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Creating Autoscaler") if err != nil { return err } @@ -156,7 +156,7 @@ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interfac // It probably maybe worked, so store the ID now d.SetId(scaler.Name) - err = computeOperationWait(config, op, project, "Updating Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Updating Autoscaler") if err != nil { return err } @@ -179,7 +179,7 @@ func resourceComputeRegionAutoscalerDelete(d *schema.ResourceData, meta interfac return fmt.Errorf("Error deleting autoscaler: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Autoscaler") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Autoscaler") if err != nil { return err } diff --git a/google/resource_compute_region_backend_service.go b/google/resource_compute_region_backend_service.go index dfeb3a7f..44c1a628 100644 --- a/google/resource_compute_region_backend_service.go +++ b/google/resource_compute_region_backend_service.go @@ -175,7 +175,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte d.SetId(service.Name) - err = computeOperationWait(config, op, project, "Creating Region Backend Service") + err = computeOperationWait(config.clientCompute, op, project, "Creating Region Backend Service") if err != nil { return err } @@ -278,7 +278,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte d.SetId(service.Name) - err = computeOperationWait(config, op, project, "Updating Backend Service") + err = computeOperationWait(config.clientCompute, op, project, "Updating Backend Service") if err != nil { return err } @@ -306,7 +306,7 @@ func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta inte return fmt.Errorf("Error deleting backend service: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Backend Service") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Backend Service") if err != nil { return err } diff --git a/google/resource_compute_region_instance_group_manager.go b/google/resource_compute_region_instance_group_manager.go index a4e58508..bf77f712 100644 --- a/google/resource_compute_region_instance_group_manager.go +++ b/google/resource_compute_region_instance_group_manager.go @@ -177,7 +177,7 @@ func resourceComputeRegionInstanceGroupManagerCreate(d *schema.ResourceData, met d.SetId(manager.Name) // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Creating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating InstanceGroupManager") if err != nil { return err } @@ -279,7 +279,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating RegionInstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating RegionInstanceGroupManager") if err != nil { return err } @@ -320,7 +320,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating InstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating InstanceGroupManager") if err != nil { return err } @@ -363,7 +363,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met } // Wait for the operation to complete: - err = computeSharedOperationWait(config, op, project, "Updating RegionInstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating RegionInstanceGroupManager") if err != nil { return err } @@ -388,7 +388,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Resizing RegionInstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Resizing RegionInstanceGroupManager") if err != nil { return err } @@ -410,7 +410,7 @@ func resourceComputeRegionInstanceGroupManagerUpdate(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Updating AutoHealingPolicies") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating AutoHealingPolicies") if err != nil { return err } @@ -447,7 +447,7 @@ func resourceComputeRegionInstanceGroupManagerDelete(d *schema.ResourceData, met } // Wait for the operation to complete - err = computeSharedOperationWait(config, op, project, "Deleting RegionInstanceGroupManager") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting RegionInstanceGroupManager") d.SetId("") return nil diff --git a/google/resource_compute_route.go b/google/resource_compute_route.go index 8bda10e1..417eb485 100644 --- a/google/resource_compute_route.go +++ b/google/resource_compute_route.go @@ -178,7 +178,7 @@ func resourceComputeRouteCreate(d *schema.ResourceData, meta interface{}) error // It probably maybe worked, so store the ID now d.SetId(route.Name) - err = computeOperationWait(config, op, project, "Creating Route") + err = computeOperationWait(config.clientCompute, op, project, "Creating Route") if err != nil { return err } @@ -236,7 +236,7 @@ func resourceComputeRouteDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error deleting route: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Route") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Route") if err != nil { return err } diff --git a/google/resource_compute_router.go b/google/resource_compute_router.go index 47401b58..35b15bfc 100644 --- a/google/resource_compute_router.go +++ b/google/resource_compute_router.go @@ -131,7 +131,7 @@ func resourceComputeRouterCreate(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error Inserting Router %s into network %s: %s", name, network.Name, err) } d.SetId(fmt.Sprintf("%s/%s", region, name)) - err = computeOperationWait(config, op, project, "Inserting Router") + err = computeOperationWait(config.clientCompute, op, project, "Inserting Router") if err != nil { d.SetId("") return fmt.Errorf("Error Waiting to Insert Router %s into network %s: %s", name, network.Name, err) @@ -209,7 +209,7 @@ func resourceComputeRouterDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error Reading Router %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Deleting Router") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Router") if err != nil { return fmt.Errorf("Error Waiting to Delete Router %s: %s", name, err) } diff --git a/google/resource_compute_router_interface.go b/google/resource_compute_router_interface.go index 732a106a..c6c1f829 100644 --- a/google/resource_compute_router_interface.go +++ b/google/resource_compute_router_interface.go @@ -126,7 +126,7 @@ func resourceComputeRouterInterfaceCreate(d *schema.ResourceData, meta interface return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } d.SetId(fmt.Sprintf("%s/%s/%s", region, routerName, ifaceName)) - err = computeOperationWait(config, op, project, "Patching router") + err = computeOperationWait(config.clientCompute, op, project, "Patching router") if err != nil { d.SetId("") return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) @@ -246,7 +246,7 @@ func resourceComputeRouterInterfaceDelete(d *schema.ResourceData, meta interface return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } - err = computeOperationWait(config, op, project, "Patching router") + err = computeOperationWait(config.clientCompute, op, project, "Patching router") if err != nil { return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) } diff --git a/google/resource_compute_router_peer.go b/google/resource_compute_router_peer.go index a5be1a99..5c2bf3c4 100644 --- a/google/resource_compute_router_peer.go +++ b/google/resource_compute_router_peer.go @@ -148,7 +148,7 @@ func resourceComputeRouterPeerCreate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } d.SetId(fmt.Sprintf("%s/%s/%s", region, routerName, peerName)) - err = computeOperationWait(config, op, project, "Patching router") + err = computeOperationWait(config.clientCompute, op, project, "Patching router") if err != nil { d.SetId("") return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) @@ -267,7 +267,7 @@ func resourceComputeRouterPeerDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error patching router %s/%s: %s", region, routerName, err) } - err = computeOperationWait(config, op, project, "Patching router") + err = computeOperationWait(config.clientCompute, op, project, "Patching router") if err != nil { return fmt.Errorf("Error waiting to patch router %s/%s: %s", region, routerName, err) } diff --git a/google/resource_compute_shared_vpc_host_project.go b/google/resource_compute_shared_vpc_host_project.go index c9110b90..31c5b066 100644 --- a/google/resource_compute_shared_vpc_host_project.go +++ b/google/resource_compute_shared_vpc_host_project.go @@ -34,7 +34,7 @@ func resourceComputeSharedVpcHostProjectCreate(d *schema.ResourceData, meta inte d.SetId(hostProject) - err = computeOperationWait(config, op, hostProject, "Enabling Shared VPC Host") + err = computeOperationWait(config.clientCompute, op, hostProject, "Enabling Shared VPC Host") if err != nil { d.SetId("") return err @@ -70,7 +70,7 @@ func resourceComputeSharedVpcHostProjectDelete(d *schema.ResourceData, meta inte return fmt.Errorf("Error disabling Shared VPC Host %q: %s", hostProject, err) } - err = computeOperationWait(config, op, hostProject, "Disabling Shared VPC Host") + err = computeOperationWait(config.clientCompute, op, hostProject, "Disabling Shared VPC Host") if err != nil { return err } diff --git a/google/resource_compute_shared_vpc_service_project.go b/google/resource_compute_shared_vpc_service_project.go index f054200f..10d6e640 100644 --- a/google/resource_compute_shared_vpc_service_project.go +++ b/google/resource_compute_shared_vpc_service_project.go @@ -47,7 +47,7 @@ func resourceComputeSharedVpcServiceProjectCreate(d *schema.ResourceData, meta i if err != nil { return err } - if err = computeOperationWait(config, op, hostProject, "Enabling Shared VPC Resource"); err != nil { + if err = computeOperationWait(config.clientCompute, op, hostProject, "Enabling Shared VPC Resource"); err != nil { return err } @@ -105,7 +105,7 @@ func disableXpnResource(config *Config, hostProject, project string) error { if err != nil { return err } - if err = computeOperationWait(config, op, hostProject, "Disabling Shared VPC Resource"); err != nil { + if err = computeOperationWait(config.clientCompute, op, hostProject, "Disabling Shared VPC Resource"); err != nil { return err } return nil diff --git a/google/resource_compute_snapshot.go b/google/resource_compute_snapshot.go index cc84452e..f20f788e 100644 --- a/google/resource_compute_snapshot.go +++ b/google/resource_compute_snapshot.go @@ -15,6 +15,7 @@ func resourceComputeSnapshot() *schema.Resource { Read: resourceComputeSnapshotRead, Delete: resourceComputeSnapshotDelete, Exists: resourceComputeSnapshotExists, + Update: resourceComputeSnapshotUpdate, Schema: map[string]*schema.Schema{ "name": &schema.Schema{ @@ -74,6 +75,18 @@ func resourceComputeSnapshot() *schema.Resource { Type: schema.TypeString, Computed: true, }, + + "labels": &schema.Schema{ + Type: schema.TypeMap, + Optional: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + + "label_fingerprint": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + }, }, } } @@ -112,10 +125,24 @@ func resourceComputeSnapshotCreate(d *schema.ResourceData, meta interface{}) err // It probably maybe worked, so store the ID now d.SetId(snapshot.Name) - err = computeOperationWait(config, op, project, "Creating Snapshot") + err = computeOperationWait(config.clientCompute, op, project, "Creating Snapshot") if err != nil { return err } + + // Now if labels are set, go ahead and apply them + if labels := expandLabels(d); len(labels) > 0 { + // First, read the remote resource in order to find the fingerprint + apiSnapshot, err := config.clientCompute.Snapshots.Get(project, d.Id()).Do() + if err != nil { + return fmt.Errorf("Eror when reading snapshot for label update: %s", err) + } + + err = updateLabels(config.clientCompute, project, d.Id(), labels, apiSnapshot.LabelFingerprint) + if err != nil { + return err + } + } return resourceComputeSnapshotRead(d, meta) } @@ -145,9 +172,36 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error d.Set("source_disk_encryption_key_sha256", snapshot.SourceDiskEncryptionKey.Sha256) } + d.Set("labels", snapshot.Labels) + d.Set("label_fingerprint", snapshot.LabelFingerprint) + return nil } +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") { + err = updateLabels(config.clientCompute, project, d.Id(), expandLabels(d), d.Get("label_fingerprint").(string)) + if err != nil { + return err + } + + d.SetPartial("labels") + } + + d.Partial(false) + + return resourceComputeSnapshotRead(d, meta) +} + func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) @@ -169,7 +223,7 @@ func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error deleting snapshot: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Snapshot") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Snapshot") if err != nil { return err } @@ -200,3 +254,16 @@ func resourceComputeSnapshotExists(d *schema.ResourceData, meta interface{}) (bo } return true, nil } + +func updateLabels(client *compute.Service, project string, resourceId string, labels map[string]string, labelFingerprint string) error { + setLabelsReq := compute.GlobalSetLabelsRequest{ + Labels: labels, + LabelFingerprint: labelFingerprint, + } + op, err := client.Snapshots.SetLabels(project, resourceId, &setLabelsReq).Do() + if err != nil { + return err + } + + return computeOperationWait(client, op, project, "Setting labels on snapshot") +} diff --git a/google/resource_compute_snapshot_test.go b/google/resource_compute_snapshot_test.go index 84020a9e..b63d9501 100644 --- a/google/resource_compute_snapshot_test.go +++ b/google/resource_compute_snapshot_test.go @@ -4,6 +4,9 @@ import ( "fmt" "testing" + "reflect" + "strings" + "github.com/hashicorp/terraform/helper/acctest" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" @@ -24,7 +27,37 @@ func TestAccComputeSnapshot_basic(t *testing.T) { CheckDestroy: testAccCheckComputeSnapshotDestroy, Steps: []resource.TestStep{ resource.TestStep{ - Config: testAccComputeSnapshot_basic(snapshotName, diskName), + Config: testAccComputeSnapshot_basic(snapshotName, diskName, "my-value"), + Check: resource.ComposeTestCheckFunc( + testAccCheckComputeSnapshotExists( + "google_compute_snapshot.foobar", &snapshot), + ), + }, + }, + }) +} + +func TestAccComputeSnapshot_update(t *testing.T) { + t.Parallel() + + snapshotName := fmt.Sprintf("tf-test-%s", acctest.RandString(10)) + var snapshot compute.Snapshot + diskName := fmt.Sprintf("tf-test-%s", acctest.RandString(10)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckComputeSnapshotDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccComputeSnapshot_basic(snapshotName, diskName, "my-value"), + Check: resource.ComposeTestCheckFunc( + testAccCheckComputeSnapshotExists( + "google_compute_snapshot.foobar", &snapshot), + ), + }, + resource.TestStep{ + Config: testAccComputeSnapshot_basic(snapshotName, diskName, "my-updated-value"), Check: resource.ComposeTestCheckFunc( testAccCheckComputeSnapshotExists( "google_compute_snapshot.foobar", &snapshot), @@ -144,13 +177,38 @@ func testAccCheckComputeSnapshotExists(n string, snapshot *compute.Snapshot) res n, attr, found.SelfLink) } + // We should have a map + attr, ok = rs.Primary.Attributes["labels.%"] + if !ok { + return fmt.Errorf("Snapshot %s has no labels map in attributes", n) + } + // Parse out our map + attrMap := make(map[string]string) + for k, v := range rs.Primary.Attributes { + if !strings.HasPrefix(k, "labels.") || k == "labels.%" { + continue + } + key := k[len("labels."):] + attrMap[key] = v + } + if (len(attrMap) != 0 || len(found.Labels) != 0) && !reflect.DeepEqual(attrMap, found.Labels) { + return fmt.Errorf("Snapshot %s has mismatched labels.\nTF State: %+v\nGCP State: %+v", + n, attrMap, found.Labels) + } + + attr = rs.Primary.Attributes["label_fingerprint"] + if found.LabelFingerprint != attr { + return fmt.Errorf("Snapshot %s has mismatched label fingerprint\nTF State: %+v.\nGCP State: %+v", + n, attr, found.LabelFingerprint) + } + *snapshot = *found return nil } } -func testAccComputeSnapshot_basic(snapshotName string, diskName string) string { +func testAccComputeSnapshot_basic(snapshotName, diskName, labelValue string) string { return fmt.Sprintf(` resource "google_compute_disk" "foobar" { name = "%s" @@ -164,7 +222,10 @@ resource "google_compute_snapshot" "foobar" { name = "%s" source_disk = "${google_compute_disk.foobar.name}" zone = "us-central1-a" -}`, diskName, snapshotName) + labels = { + my_label = "%s" + } +}`, diskName, snapshotName, labelValue) } func testAccComputeSnapshot_encryption(snapshotName string, diskName string) string { diff --git a/google/resource_compute_ssl_certificate.go b/google/resource_compute_ssl_certificate.go index ead49a7d..32579cca 100644 --- a/google/resource_compute_ssl_certificate.go +++ b/google/resource_compute_ssl_certificate.go @@ -115,7 +115,7 @@ func resourceComputeSslCertificateCreate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error creating ssl certificate: %s", err) } - err = computeOperationWait(config, op, project, "Creating SslCertificate") + err = computeOperationWait(config.clientCompute, op, project, "Creating SslCertificate") if err != nil { return err } @@ -159,7 +159,7 @@ func resourceComputeSslCertificateDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error deleting ssl certificate: %s", err) } - err = computeOperationWait(config, op, project, "Deleting SslCertificate") + err = computeOperationWait(config.clientCompute, op, project, "Deleting SslCertificate") if err != nil { return err } diff --git a/google/resource_compute_subnetwork.go b/google/resource_compute_subnetwork.go index 0fe09791..6482dae5 100644 --- a/google/resource_compute_subnetwork.go +++ b/google/resource_compute_subnetwork.go @@ -140,7 +140,7 @@ func resourceComputeSubnetworkCreate(d *schema.ResourceData, meta interface{}) e subnetwork.Region = region d.SetId(createSubnetID(subnetwork)) - err = computeSharedOperationWait(config, op, project, "Creating Subnetwork") + err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Subnetwork") if err != nil { return err } @@ -209,7 +209,7 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating subnetwork PrivateIpGoogleAccess: %s", err) } - err = computeSharedOperationWait(config, op, project, "Updating Subnetwork PrivateIpGoogleAccess") + err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Subnetwork PrivateIpGoogleAccess") if err != nil { return err } @@ -242,7 +242,7 @@ func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error deleting subnetwork: %s", err) } - err = computeSharedOperationWait(config, op, project, "Deleting Subnetwork") + err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting Subnetwork") if err != nil { return err } diff --git a/google/resource_compute_target_http_proxy.go b/google/resource_compute_target_http_proxy.go index 26cebc7c..2f7913b0 100644 --- a/google/resource_compute_target_http_proxy.go +++ b/google/resource_compute_target_http_proxy.go @@ -77,7 +77,7 @@ func resourceComputeTargetHttpProxyCreate(d *schema.ResourceData, meta interface return fmt.Errorf("Error creating TargetHttpProxy: %s", err) } - err = computeOperationWait(config, op, project, "Creating Target Http Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Creating Target Http Proxy") if err != nil { return err } @@ -106,7 +106,7 @@ func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface return fmt.Errorf("Error updating target: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Http Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Http Proxy") if err != nil { return err } @@ -155,7 +155,7 @@ func resourceComputeTargetHttpProxyDelete(d *schema.ResourceData, meta interface return fmt.Errorf("Error deleting TargetHttpProxy: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Target Http Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Target Http Proxy") if err != nil { return err } diff --git a/google/resource_compute_target_https_proxy.go b/google/resource_compute_target_https_proxy.go index c56c7c37..fc75508f 100644 --- a/google/resource_compute_target_https_proxy.go +++ b/google/resource_compute_target_https_proxy.go @@ -101,7 +101,7 @@ func resourceComputeTargetHttpsProxyCreate(d *schema.ResourceData, meta interfac return fmt.Errorf("Error creating TargetHttpsProxy: %s", err) } - err = computeOperationWait(config, op, project, "Creating Target Https Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Creating Target Https Proxy") if err != nil { return err } @@ -130,7 +130,7 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac return fmt.Errorf("Error updating Target HTTPS proxy URL map: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Https Proxy URL Map") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Https Proxy URL Map") if err != nil { return err } @@ -149,7 +149,7 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac return fmt.Errorf("Error updating Target Https Proxy SSL Certificates: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Https Proxy SSL certificates") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Https Proxy SSL certificates") if err != nil { return err } @@ -199,7 +199,7 @@ func resourceComputeTargetHttpsProxyDelete(d *schema.ResourceData, meta interfac return fmt.Errorf("Error deleting TargetHttpsProxy: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Target Https Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Target Https Proxy") if err != nil { return err } diff --git a/google/resource_compute_target_pool.go b/google/resource_compute_target_pool.go index 1fa926a8..31ae7115 100644 --- a/google/resource_compute_target_pool.go +++ b/google/resource_compute_target_pool.go @@ -170,7 +170,7 @@ func resourceComputeTargetPoolCreate(d *schema.ResourceData, meta interface{}) e // It probably maybe worked, so store the ID now d.SetId(tpool.Name) - err = computeOperationWait(config, op, project, "Creating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Creating Target Pool") if err != nil { return err } @@ -249,7 +249,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating health_check: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Pool") if err != nil { return err } @@ -265,7 +265,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating health_check: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Pool") if err != nil { return err } @@ -299,7 +299,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating instances: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Pool") if err != nil { return err } @@ -314,7 +314,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return fmt.Errorf("Error updating instances: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Pool") if err != nil { return err } @@ -332,7 +332,7 @@ func resourceComputeTargetPoolUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating backup_pool: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Pool") if err != nil { return err } @@ -425,7 +425,7 @@ func resourceComputeTargetPoolDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error deleting TargetPool: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Target Pool") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Target Pool") if err != nil { return err } diff --git a/google/resource_compute_target_ssl_proxy.go b/google/resource_compute_target_ssl_proxy.go index 57661434..26d73845 100644 --- a/google/resource_compute_target_ssl_proxy.go +++ b/google/resource_compute_target_ssl_proxy.go @@ -101,7 +101,7 @@ func resourceComputeTargetSslProxyCreate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error creating TargetSslProxy: %s", err) } - err = computeOperationWait(config, op, project, "Creating Target Ssl Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Creating Target Ssl Proxy") if err != nil { return err } @@ -132,7 +132,7 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error updating proxy_header: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target SSL Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target SSL Proxy") if err != nil { return err } @@ -149,7 +149,7 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error updating backend_service: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target SSL Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target SSL Proxy") if err != nil { return err } @@ -171,7 +171,7 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error updating backend_service: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target SSL Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target SSL Proxy") if err != nil { return err } @@ -223,7 +223,7 @@ func resourceComputeTargetSslProxyDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error deleting TargetSslProxy: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Target SSL Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Target SSL Proxy") if err != nil { return err } diff --git a/google/resource_compute_target_tcp_proxy.go b/google/resource_compute_target_tcp_proxy.go index 23ec1490..c0bda663 100644 --- a/google/resource_compute_target_tcp_proxy.go +++ b/google/resource_compute_target_tcp_proxy.go @@ -85,7 +85,7 @@ func resourceComputeTargetTcpProxyCreate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error creating TargetTcpProxy: %s", err) } - err = computeOperationWait(config, op, project, "Creating Target Tcp Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Creating Target Tcp Proxy") if err != nil { return err } @@ -116,7 +116,7 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error updating target: %s", err) } - err = computeOperationWait(config, op, project, "Updating Target Tcp Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Updating Target Tcp Proxy") if err != nil { return err } @@ -169,7 +169,7 @@ func resourceComputeTargetTcpProxyDelete(d *schema.ResourceData, meta interface{ return fmt.Errorf("Error deleting TargetTcpProxy: %s", err) } - err = computeOperationWait(config, op, project, "Deleting Target Tcp Proxy") + err = computeOperationWait(config.clientCompute, op, project, "Deleting Target Tcp Proxy") if err != nil { return err } diff --git a/google/resource_compute_url_map.go b/google/resource_compute_url_map.go index 6a53fe68..855799e8 100644 --- a/google/resource_compute_url_map.go +++ b/google/resource_compute_url_map.go @@ -288,7 +288,7 @@ func resourceComputeUrlMapCreate(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error, failed to insert Url Map %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Insert Url Map") + err = computeOperationWait(config.clientCompute, op, project, "Insert Url Map") if err != nil { return fmt.Errorf("Error, failed waitng to insert Url Map %s: %s", name, err) @@ -642,7 +642,7 @@ func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error, failed to update Url Map %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Update Url Map") + err = computeOperationWait(config.clientCompute, op, project, "Update Url Map") if err != nil { return fmt.Errorf("Error, failed waitng to update Url Map %s: %s", name, err) @@ -667,7 +667,7 @@ func resourceComputeUrlMapDelete(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error, failed to delete Url Map %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Delete Url Map") + err = computeOperationWait(config.clientCompute, op, project, "Delete Url Map") if err != nil { return fmt.Errorf("Error, failed waitng to delete Url Map %s: %s", name, err) diff --git a/google/resource_compute_vpn_gateway.go b/google/resource_compute_vpn_gateway.go index 30b831ae..72515ad3 100644 --- a/google/resource_compute_vpn_gateway.go +++ b/google/resource_compute_vpn_gateway.go @@ -91,7 +91,7 @@ func resourceComputeVpnGatewayCreate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error Inserting VPN Gateway %s into network %s: %s", name, network.Name, err) } - err = computeOperationWait(config, op, project, "Inserting VPN Gateway") + err = computeOperationWait(config.clientCompute, op, project, "Inserting VPN Gateway") if err != nil { return fmt.Errorf("Error Waiting to Insert VPN Gateway %s into network %s: %s", name, network.Name, err) } @@ -152,7 +152,7 @@ func resourceComputeVpnGatewayDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error Reading VPN Gateway %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Deleting VPN Gateway") + err = computeOperationWait(config.clientCompute, op, project, "Deleting VPN Gateway") if err != nil { return fmt.Errorf("Error Waiting to Delete VPN Gateway %s: %s", name, err) } diff --git a/google/resource_compute_vpn_tunnel.go b/google/resource_compute_vpn_tunnel.go index 435e4a66..9dca0ef8 100644 --- a/google/resource_compute_vpn_tunnel.go +++ b/google/resource_compute_vpn_tunnel.go @@ -177,7 +177,7 @@ func resourceComputeVpnTunnelCreate(d *schema.ResourceData, meta interface{}) er return fmt.Errorf("Error Inserting VPN Tunnel %s : %s", name, err) } - err = computeOperationWait(config, op, project, "Inserting VPN Tunnel") + err = computeOperationWait(config.clientCompute, op, project, "Inserting VPN Tunnel") if err != nil { return fmt.Errorf("Error Waiting to Insert VPN Tunnel %s: %s", name, err) } @@ -249,7 +249,7 @@ func resourceComputeVpnTunnelDelete(d *schema.ResourceData, meta interface{}) er return fmt.Errorf("Error Reading VPN Tunnel %s: %s", name, err) } - err = computeOperationWait(config, op, project, "Deleting VPN Tunnel") + err = computeOperationWait(config.clientCompute, op, project, "Deleting VPN Tunnel") if err != nil { return fmt.Errorf("Error Waiting to Delete VPN Tunnel %s: %s", name, err) } diff --git a/website/docs/r/compute_snapshot.html.markdown b/website/docs/r/compute_snapshot.html.markdown index 95d05f2e..d6a805ee 100644 --- a/website/docs/r/compute_snapshot.html.markdown +++ b/website/docs/r/compute_snapshot.html.markdown @@ -17,9 +17,13 @@ and ```js resource "google_compute_snapshot" "default" { - name = "test-snapshot" - source_disk = "test-disk" - zone = "us-central1-a" + name = "test-snapshot" + source_disk = "test-disk" + zone = "us-central1-a" + + labels { + my-label = "my-label-value" + } } ``` @@ -49,6 +53,8 @@ The following arguments are supported: * `project` - (Optional) The project in which the resource belongs. If it is not provided, the provider project is used. +* `labels` - (Optional) A set of key/value label pairs to assign to the snapshot. + ## Attributes Reference In addition to the arguments listed above, the following computed attributes are @@ -67,3 +73,5 @@ exported: * `source_disk_link` - The URI of the source disk. * `self_link` - The URI of the created resource. + +* `label_fingerprint` - The unique fingerprint of the labels.