mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-05 17:52:38 +00:00
Add labels to google_compute_instance_template (#515)
This commit is contained in:
parent
888df75f39
commit
e3ca8fbe59
|
@ -324,6 +324,14 @@ func resourceComputeInstanceTemplate() *schema.Resource {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"labels": &schema.Schema{
|
||||||
|
Type: schema.TypeMap,
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
|
Set: schema.HashString,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -576,6 +584,9 @@ func resourceComputeInstanceTemplateCreate(d *schema.ResourceData, meta interfac
|
||||||
instanceProperties.ServiceAccounts = serviceAccounts
|
instanceProperties.ServiceAccounts = serviceAccounts
|
||||||
|
|
||||||
instanceProperties.Tags = resourceInstanceTags(d)
|
instanceProperties.Tags = resourceInstanceTags(d)
|
||||||
|
if _, ok := d.GetOk("labels"); ok {
|
||||||
|
instanceProperties.Labels = expandLabels(d)
|
||||||
|
}
|
||||||
|
|
||||||
var itName string
|
var itName string
|
||||||
if v, ok := d.GetOk("name"); ok {
|
if v, ok := d.GetOk("name"); ok {
|
||||||
|
@ -743,6 +754,9 @@ func resourceComputeInstanceTemplateRead(d *schema.ResourceData, meta interface{
|
||||||
return fmt.Errorf("Error setting tags_fingerprint: %s", err)
|
return fmt.Errorf("Error setting tags_fingerprint: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if instanceTemplate.Properties.Labels != nil {
|
||||||
|
d.Set("labels", instanceTemplate.Properties.Labels)
|
||||||
|
}
|
||||||
if err = d.Set("self_link", instanceTemplate.SelfLink); err != nil {
|
if err = d.Set("self_link", instanceTemplate.SelfLink); err != nil {
|
||||||
return fmt.Errorf("Error setting self_link: %s", err)
|
return fmt.Errorf("Error setting self_link: %s", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ func TestAccComputeInstanceTemplate_basic(t *testing.T) {
|
||||||
testAccCheckComputeInstanceTemplateTag(&instanceTemplate, "foo"),
|
testAccCheckComputeInstanceTemplateTag(&instanceTemplate, "foo"),
|
||||||
testAccCheckComputeInstanceTemplateMetadata(&instanceTemplate, "foo", "bar"),
|
testAccCheckComputeInstanceTemplateMetadata(&instanceTemplate, "foo", "bar"),
|
||||||
testAccCheckComputeInstanceTemplateDisk(&instanceTemplate, "projects/debian-cloud/global/images/debian-8-jessie-v20160803", true, true),
|
testAccCheckComputeInstanceTemplateDisk(&instanceTemplate, "projects/debian-cloud/global/images/debian-8-jessie-v20160803", true, true),
|
||||||
|
testAccCheckComputeInstanceTemplateContainsLabel(&instanceTemplate, "my_label", "foobar"),
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -412,6 +413,19 @@ func testAccCheckComputeInstanceTemplateNetworkIP(n, networkIP string, instanceT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testAccCheckComputeInstanceTemplateContainsLabel(instanceTemplate *compute.InstanceTemplate, key string, value string) resource.TestCheckFunc {
|
||||||
|
return func(s *terraform.State) error {
|
||||||
|
v, ok := instanceTemplate.Properties.Labels[key]
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("Expected label with key '%s' not found", key)
|
||||||
|
}
|
||||||
|
if v != value {
|
||||||
|
return fmt.Errorf("Incorrect label value for key '%s': expected '%s' but found '%s'", key, value, v)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var testAccComputeInstanceTemplate_basic = fmt.Sprintf(`
|
var testAccComputeInstanceTemplate_basic = fmt.Sprintf(`
|
||||||
resource "google_compute_instance_template" "foobar" {
|
resource "google_compute_instance_template" "foobar" {
|
||||||
name = "instancet-test-%s"
|
name = "instancet-test-%s"
|
||||||
|
@ -441,6 +455,10 @@ resource "google_compute_instance_template" "foobar" {
|
||||||
service_account {
|
service_account {
|
||||||
scopes = ["userinfo-email", "compute-ro", "storage-ro"]
|
scopes = ["userinfo-email", "compute-ro", "storage-ro"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
labels {
|
||||||
|
my_label = "foobar"
|
||||||
|
}
|
||||||
}`, acctest.RandString(10))
|
}`, acctest.RandString(10))
|
||||||
|
|
||||||
var testAccComputeInstanceTemplate_preemptible = fmt.Sprintf(`
|
var testAccComputeInstanceTemplate_preemptible = fmt.Sprintf(`
|
||||||
|
|
|
@ -24,6 +24,10 @@ resource "google_compute_instance_template" "default" {
|
||||||
|
|
||||||
tags = ["foo", "bar"]
|
tags = ["foo", "bar"]
|
||||||
|
|
||||||
|
labels = {
|
||||||
|
environment = "dev"
|
||||||
|
}
|
||||||
|
|
||||||
instance_description = "description assigned to instances"
|
instance_description = "description assigned to instances"
|
||||||
machine_type = "n1-standard-1"
|
machine_type = "n1-standard-1"
|
||||||
can_ip_forward = false
|
can_ip_forward = false
|
||||||
|
@ -133,6 +137,9 @@ The following arguments are supported:
|
||||||
* `instance_description` - (Optional) A brief description to use for instances
|
* `instance_description` - (Optional) A brief description to use for instances
|
||||||
created from this template.
|
created from this template.
|
||||||
|
|
||||||
|
* `labels` - (Optional) A set of key/value label pairs to assign to instances
|
||||||
|
created from this template,
|
||||||
|
|
||||||
* `metadata` - (Optional) Metadata key/value pairs to make available from
|
* `metadata` - (Optional) Metadata key/value pairs to make available from
|
||||||
within instances created from this template.
|
within instances created from this template.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user