Allow local SSDs, Fix #1088

This commit is contained in:
Dave Cunningham 2015-05-11 21:40:37 -04:00
parent 4208e83c64
commit 27319e1366
2 changed files with 57 additions and 3 deletions

View File

@ -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 {

View File

@ -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"