mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-03 01:01:06 +00:00
Allow local SSDs, Fix #1088
This commit is contained in:
parent
4208e83c64
commit
27319e1366
@ -81,6 +81,12 @@ func resourceComputeInstance() *schema.Resource {
|
||||
ForceNew: true,
|
||||
},
|
||||
|
||||
"scratch": &schema.Schema{
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
},
|
||||
|
||||
"auto_delete": &schema.Schema{
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
@ -319,6 +325,15 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
|
||||
}
|
||||
|
||||
disk.Source = diskData.SelfLink
|
||||
} else {
|
||||
// Create a new disk
|
||||
disk.InitializeParams = &compute.AttachedDiskInitializeParams{ }
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk(prefix + ".scratch"); ok {
|
||||
if v.(bool) {
|
||||
disk.Type = "SCRATCH"
|
||||
}
|
||||
}
|
||||
|
||||
// Load up the image for this disk if specified
|
||||
@ -332,9 +347,7 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
|
||||
imageName, err)
|
||||
}
|
||||
|
||||
disk.InitializeParams = &compute.AttachedDiskInitializeParams{
|
||||
SourceImage: imageUrl,
|
||||
}
|
||||
disk.InitializeParams.SourceImage = imageUrl
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk(prefix + ".type"); ok {
|
||||
|
@ -140,6 +140,26 @@ func TestAccComputeInstance_disks(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccComputeInstance_local_ssd(t *testing.T) {
|
||||
var instance compute.Instance
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckComputeInstanceDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
resource.TestStep{
|
||||
Config: testAccComputeInstance_local_ssd,
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckComputeInstanceExists(
|
||||
"google_compute_instance.local-ssd", &instance),
|
||||
testAccCheckComputeInstanceDisk(&instance, "terraform-test", true, true),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccComputeInstance_update_deprecated_network(t *testing.T) {
|
||||
var instance compute.Instance
|
||||
|
||||
@ -609,6 +629,27 @@ resource "google_compute_instance" "foobar" {
|
||||
}
|
||||
}`
|
||||
|
||||
const testAccComputeInstance_local_ssd = `
|
||||
resource "google_compute_instance" "local-ssd" {
|
||||
name = "terraform-test"
|
||||
machine_type = "n1-standard-1"
|
||||
zone = "us-central1-a"
|
||||
|
||||
disk {
|
||||
image = "debian-7-wheezy-v20140814"
|
||||
}
|
||||
|
||||
disk {
|
||||
type = "local-ssd"
|
||||
scratch = true
|
||||
}
|
||||
|
||||
network_interface {
|
||||
network = "default"
|
||||
}
|
||||
|
||||
}`
|
||||
|
||||
const testAccComputeInstance_service_account = `
|
||||
resource "google_compute_instance" "foobar" {
|
||||
name = "terraform-test"
|
||||
|
Loading…
Reference in New Issue
Block a user