mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-04 17:51:11 +00:00
Add region disk support to attached disk
This commit is contained in:
parent
35bc6ba882
commit
de68af5b11
@ -76,10 +76,21 @@ func resourceAttachedDiskCreate(d *schema.ResourceData, meta interface{}) error
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
diskName := GetResourceNameFromSelfLink(d.Get("disk").(string))
|
disk := d.Get("disk").(string)
|
||||||
|
diskName := GetResourceNameFromSelfLink(disk)
|
||||||
|
diskSrc := fmt.Sprintf("projects/%s/zones/%s/disks/%s", zv.Project, zv.Zone, diskName)
|
||||||
|
|
||||||
|
// Check if the disk is a regional disk
|
||||||
|
if strings.Contains(disk, "regions") {
|
||||||
|
rv, err := ParseRegionDiskFieldValue(disk, d, config)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
diskSrc = rv.RelativeLink()
|
||||||
|
}
|
||||||
|
|
||||||
attachedDisk := compute.AttachedDisk{
|
attachedDisk := compute.AttachedDisk{
|
||||||
Source: fmt.Sprintf("projects/%s/zones/%s/disks/%s", zv.Project, zv.Zone, diskName),
|
Source: diskSrc,
|
||||||
Mode: d.Get("mode").(string),
|
Mode: d.Get("mode").(string),
|
||||||
DeviceName: d.Get("device_name").(string),
|
DeviceName: d.Get("device_name").(string),
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,33 @@ func TestAccComputeAttachedDisk_full(t *testing.T) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAccComputeAttachedDisk_region(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
diskName := acctest.RandomWithPrefix("tf-test")
|
||||||
|
instanceName := acctest.RandomWithPrefix("tf-test")
|
||||||
|
importID := fmt.Sprintf("%s/us-central1-a/%s:%s", getTestProjectFromEnv(), instanceName, diskName)
|
||||||
|
|
||||||
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
Providers: testAccProviders,
|
||||||
|
// Check destroy isn't a good test here, see comment on testCheckAttachedDiskIsNowDetached
|
||||||
|
CheckDestroy: nil,
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
resource.TestStep{
|
||||||
|
Config: testAttachedDiskResource_region(diskName, instanceName),
|
||||||
|
},
|
||||||
|
resource.TestStep{
|
||||||
|
ResourceName: "google_compute_attached_disk.test",
|
||||||
|
ImportStateId: importID,
|
||||||
|
ImportState: true,
|
||||||
|
ImportStateVerify: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestAccComputeAttachedDisk_count(t *testing.T) {
|
func TestAccComputeAttachedDisk_count(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
@ -152,6 +179,43 @@ resource "google_compute_attached_disk" "test" {
|
|||||||
}`)
|
}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testAttachedDiskResource_region(diskName, instanceName string) string {
|
||||||
|
return fmt.Sprintf(`
|
||||||
|
resource "google_compute_attached_disk" "test" {
|
||||||
|
disk = "${google_compute_region_disk.region.self_link}"
|
||||||
|
instance = "${google_compute_instance.test.self_link}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "google_compute_region_disk" "region" {
|
||||||
|
name = "%s"
|
||||||
|
region = "us-central1"
|
||||||
|
size = 10
|
||||||
|
replica_zones = ["us-central1-b", "us-central1-a"]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "google_compute_instance" "test" {
|
||||||
|
name = "%s"
|
||||||
|
machine_type = "f1-micro"
|
||||||
|
zone = "us-central1-a"
|
||||||
|
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
"attached_disk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_disk {
|
||||||
|
initialize_params {
|
||||||
|
image = "debian-cloud/debian-9"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
network_interface {
|
||||||
|
network = "default"
|
||||||
|
}
|
||||||
|
}`, diskName, instanceName)
|
||||||
|
}
|
||||||
|
|
||||||
func testAttachedDiskResource(diskName, instanceName string) string {
|
func testAttachedDiskResource(diskName, instanceName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_compute_disk" "test1" {
|
resource "google_compute_disk" "test1" {
|
||||||
|
Loading…
Reference in New Issue
Block a user