Skip to content

Commit dec4cf1

Browse files
committed
reinforce conditions for edge-cases
1 parent 465795b commit dec4cf1

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

mmv1/third_party/terraform/services/compute/resource_compute_instance.go.tmpl

+8-6
Original file line numberDiff line numberDiff line change
@@ -1464,9 +1464,7 @@ func getAllStatusBut(status string) []string {
14641464
func changeInstanceStatusOnCreation(config *transport_tpg.Config, d *schema.ResourceData, project, zone, status, userAgent string) error {
14651465
var op *compute.Operation
14661466
var err error
1467-
if status == "RUNNING" {
1468-
return nil
1469-
} else if status == "TERMINATED" {
1467+
if status == "TERMINATED" {
14701468
op, err = config.NewComputeClient(userAgent).Instances.Stop(project, zone, d.Get("name").(string)).Do()
14711469
} else if status == "SUSPENDED" {
14721470
op, err = config.NewComputeClient(userAgent).Instances.Suspend(project, zone, d.Get("name").(string)).Do()
@@ -1583,9 +1581,13 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
15831581
return fmt.Errorf("Error waiting for status: %s", err)
15841582
}
15851583

1586-
err = changeInstanceStatusOnCreation(config, d, project, zone.Name, d.Get("desired_status").(string), userAgent)
1587-
if err != nil {
1588-
return fmt.Errorf("Error changing instance status after creation: %s", err)
1584+
if val, ok := d.GetOk("desired_status"); ok {
1585+
if val.(string) != "RUNNING" {
1586+
err = changeInstanceStatusOnCreation(config, d, project, zone.Name, d.Get("desired_status").(string), userAgent)
1587+
if err != nil {
1588+
return fmt.Errorf("Error changing instance status after creation: %s", err)
1589+
}
1590+
}
15891591
}
15901592

15911593
return resourceComputeInstanceRead(d, meta)

0 commit comments

Comments
 (0)