mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-01 16:21:06 +00:00
Allow project to be specified when importing instance groups (#3597)
Signed-off-by: Modular Magician <magic-modules@google.com>
This commit is contained in:
parent
2840ea9037
commit
b4991087a6
@ -379,12 +379,17 @@ func resourceComputeInstanceGroupDelete(d *schema.ResourceData, meta interface{}
|
|||||||
|
|
||||||
func resourceComputeInstanceGroupImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
|
func resourceComputeInstanceGroupImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
|
||||||
parts := strings.Split(d.Id(), "/")
|
parts := strings.Split(d.Id(), "/")
|
||||||
if len(parts) != 2 {
|
if len(parts) == 2 {
|
||||||
return nil, fmt.Errorf("Invalid compute instance group specifier. Expecting {zone}/{name}")
|
|
||||||
}
|
|
||||||
|
|
||||||
d.Set("zone", parts[0])
|
d.Set("zone", parts[0])
|
||||||
d.Set("name", parts[1])
|
d.Set("name", parts[1])
|
||||||
|
} else if len(parts) == 3 {
|
||||||
|
d.Set("project", parts[0])
|
||||||
|
d.Set("zone", parts[1])
|
||||||
|
d.Set("name", parts[2])
|
||||||
|
d.SetId(parts[1] + "/" + parts[2])
|
||||||
|
} else {
|
||||||
|
return nil, fmt.Errorf("Invalid compute instance group specifier. Expecting {zone}/{name} or {project}/{zone}/{name}")
|
||||||
|
}
|
||||||
|
|
||||||
return []*schema.ResourceData{d}, nil
|
return []*schema.ResourceData{d}, nil
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,9 @@ func TestAccComputeInstanceGroup_basic(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
var instanceGroup compute.InstanceGroup
|
var instanceGroup compute.InstanceGroup
|
||||||
|
var resourceName = "google_compute_instance_group.basic"
|
||||||
var instanceName = fmt.Sprintf("instancegroup-test-%s", acctest.RandString(10))
|
var instanceName = fmt.Sprintf("instancegroup-test-%s", acctest.RandString(10))
|
||||||
|
var zone = "us-central1-c"
|
||||||
|
|
||||||
resource.Test(t, resource.TestCase{
|
resource.Test(t, resource.TestCase{
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
@ -23,7 +25,7 @@ func TestAccComputeInstanceGroup_basic(t *testing.T) {
|
|||||||
CheckDestroy: testAccComputeInstanceGroup_destroy,
|
CheckDestroy: testAccComputeInstanceGroup_destroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
{
|
{
|
||||||
Config: testAccComputeInstanceGroup_basic(instanceName),
|
Config: testAccComputeInstanceGroup_basic(zone, instanceName),
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccComputeInstanceGroup_exists(
|
testAccComputeInstanceGroup_exists(
|
||||||
"google_compute_instance_group.basic", &instanceGroup),
|
"google_compute_instance_group.basic", &instanceGroup),
|
||||||
@ -32,10 +34,16 @@ func TestAccComputeInstanceGroup_basic(t *testing.T) {
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ResourceName: "google_compute_instance_group.basic",
|
ResourceName: resourceName,
|
||||||
ImportState: true,
|
ImportState: true,
|
||||||
ImportStateVerify: true,
|
ImportStateVerify: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ResourceName: resourceName,
|
||||||
|
ImportState: true,
|
||||||
|
ImportStateVerify: true,
|
||||||
|
ImportStateId: fmt.Sprintf("%s/%s/%s", getTestProjectFromEnv(), zone, instanceName),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -307,7 +315,7 @@ func testAccComputeInstanceGroup_hasCorrectNetwork(nInstanceGroup string, nNetwo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAccComputeInstanceGroup_basic(instance string) string {
|
func testAccComputeInstanceGroup_basic(zone, instance string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
data "google_compute_image" "my_image" {
|
data "google_compute_image" "my_image" {
|
||||||
family = "debian-9"
|
family = "debian-9"
|
||||||
@ -334,7 +342,7 @@ func testAccComputeInstanceGroup_basic(instance string) string {
|
|||||||
resource "google_compute_instance_group" "basic" {
|
resource "google_compute_instance_group" "basic" {
|
||||||
description = "Terraform test instance group"
|
description = "Terraform test instance group"
|
||||||
name = "%s"
|
name = "%s"
|
||||||
zone = "us-central1-c"
|
zone = "%s"
|
||||||
instances = [ "${google_compute_instance.ig_instance.self_link}" ]
|
instances = [ "${google_compute_instance.ig_instance.self_link}" ]
|
||||||
named_port {
|
named_port {
|
||||||
name = "http"
|
name = "http"
|
||||||
@ -349,7 +357,7 @@ func testAccComputeInstanceGroup_basic(instance string) string {
|
|||||||
resource "google_compute_instance_group" "empty" {
|
resource "google_compute_instance_group" "empty" {
|
||||||
description = "Terraform test instance group empty"
|
description = "Terraform test instance group empty"
|
||||||
name = "%s-empty"
|
name = "%s-empty"
|
||||||
zone = "us-central1-c"
|
zone = "%s"
|
||||||
named_port {
|
named_port {
|
||||||
name = "http"
|
name = "http"
|
||||||
port = "8080"
|
port = "8080"
|
||||||
@ -358,7 +366,7 @@ func testAccComputeInstanceGroup_basic(instance string) string {
|
|||||||
name = "https"
|
name = "https"
|
||||||
port = "8443"
|
port = "8443"
|
||||||
}
|
}
|
||||||
}`, instance, instance, instance)
|
}`, instance, instance, zone, instance, zone)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAccComputeInstanceGroup_rename(instance, instanceGroup, backend, health string) string {
|
func testAccComputeInstanceGroup_rename(instance, instanceGroup, backend, health string) string {
|
||||||
|
@ -175,8 +175,9 @@ This resource provides the following
|
|||||||
|
|
||||||
## Import
|
## Import
|
||||||
|
|
||||||
Instance group can be imported using the `zone` and `name`, e.g.
|
Instance group can be imported using the `zone` and `name` with an optional `project`, e.g.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ terraform import google_compute_instance_group.webservers us-central1-a/terraform-webservers
|
$ terraform import google_compute_instance_group.webservers us-central1-a/terraform-webservers
|
||||||
|
$ terraform import google_compute_instance_group.webservers big-project/us-central1-a/terraform-webservers
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user