@@ -1464,9 +1464,7 @@ func getAllStatusBut(status string) []string {
1464
1464
func changeInstanceStatusOnCreation(config *transport_tpg.Config, d *schema.ResourceData, project, zone, status, userAgent string) error {
1465
1465
var op *compute.Operation
1466
1466
var err error
1467
- if status == "RUNNING" {
1468
- return nil
1469
- } else if status == "TERMINATED" {
1467
+ if status == "TERMINATED" {
1470
1468
op, err = config.NewComputeClient(userAgent).Instances.Stop(project, zone, d.Get("name").(string)).Do()
1471
1469
} else if status == "SUSPENDED" {
1472
1470
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
1583
1581
return fmt.Errorf("Error waiting for status: %s", err)
1584
1582
}
1585
1583
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
+ }
1589
1591
}
1590
1592
1591
1593
return resourceComputeInstanceRead(d, meta)
0 commit comments