|
|
|
|
@ -291,6 +291,13 @@ func resourceComputeInstance() *schema.Resource {
|
|
|
|
|
Type: schema.TypeString,
|
|
|
|
|
Computed: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"create_timeout": &schema.Schema{
|
|
|
|
|
Type: schema.TypeInt,
|
|
|
|
|
Optional: true,
|
|
|
|
|
Default: 4,
|
|
|
|
|
ForceNew: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -564,6 +571,12 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
|
|
|
|
|
scheduling.OnHostMaintenance = val.(string)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Read create timeout
|
|
|
|
|
var createTimeout int
|
|
|
|
|
if v, ok := d.GetOk("create_timeout"); ok {
|
|
|
|
|
createTimeout = v.(int)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
metadata, err := resourceInstanceMetadata(d)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("Error creating metadata: %s", err)
|
|
|
|
|
@ -594,7 +607,7 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
|
|
|
|
|
d.SetId(instance.Name)
|
|
|
|
|
|
|
|
|
|
// Wait for the operation to complete
|
|
|
|
|
waitErr := computeOperationWaitZone(config, op, project, zone.Name, "instance to create")
|
|
|
|
|
waitErr := computeOperationWaitZoneTime(config, op, project, zone.Name, createTimeout, "instance to create")
|
|
|
|
|
if waitErr != nil {
|
|
|
|
|
// The resource didn't actually create
|
|
|
|
|
d.SetId("")
|
|
|
|
|
|