Merge pull request #540 from snehaso/master
AWS instance resource now supports tenancy
This commit is contained in:
commit
b8d20960ff
|
@ -125,6 +125,12 @@ func resourceAwsInstance() *schema.Resource {
|
||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
"tenancy": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
ForceNew: true,
|
||||||
|
},
|
||||||
"tags": tagsSchema(),
|
"tags": tagsSchema(),
|
||||||
|
|
||||||
"block_device": &schema.Schema{
|
"block_device": &schema.Schema{
|
||||||
|
@ -202,6 +208,7 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error {
|
||||||
UserData: []byte(userData),
|
UserData: []byte(userData),
|
||||||
EbsOptimized: d.Get("ebs_optimized").(bool),
|
EbsOptimized: d.Get("ebs_optimized").(bool),
|
||||||
IamInstanceProfile: d.Get("iam_instance_profile").(string),
|
IamInstanceProfile: d.Get("iam_instance_profile").(string),
|
||||||
|
Tenancy: d.Get("tenancy").(string),
|
||||||
}
|
}
|
||||||
|
|
||||||
if v := d.Get("security_groups"); v != nil {
|
if v := d.Get("security_groups"); v != nil {
|
||||||
|
@ -326,6 +333,7 @@ func resourceAwsInstanceRead(d *schema.ResourceData, meta interface{}) error {
|
||||||
d.Set("subnet_id", instance.SubnetId)
|
d.Set("subnet_id", instance.SubnetId)
|
||||||
d.Set("ebs_optimized", instance.EbsOptimized)
|
d.Set("ebs_optimized", instance.EbsOptimized)
|
||||||
d.Set("tags", tagsToMap(instance.Tags))
|
d.Set("tags", tagsToMap(instance.Tags))
|
||||||
|
d.Set("tenancy", instance.Tenancy)
|
||||||
|
|
||||||
// Determine whether we're referring to security groups with
|
// Determine whether we're referring to security groups with
|
||||||
// IDs or names. We use a heuristic to figure this out. By default,
|
// IDs or names. We use a heuristic to figure this out. By default,
|
||||||
|
|
|
@ -3,8 +3,10 @@ package aws
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
"github.com/hashicorp/terraform/helper/resource"
|
||||||
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
"github.com/mitchellh/goamz/ec2"
|
"github.com/mitchellh/goamz/ec2"
|
||||||
)
|
)
|
||||||
|
@ -247,6 +249,22 @@ func testAccCheckInstanceExists(n string, i *ec2.Instance) resource.TestCheckFun
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInstanceTenancySchema(t *testing.T) {
|
||||||
|
actualSchema := resourceAwsInstance().Schema["tenancy"]
|
||||||
|
expectedSchema := &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
ForceNew: true,
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(actualSchema, expectedSchema ) {
|
||||||
|
t.Fatalf(
|
||||||
|
"Got:\n\n%#v\n\nExpected:\n\n%#v\n",
|
||||||
|
actualSchema,
|
||||||
|
expectedSchema)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const testAccInstanceConfig = `
|
const testAccInstanceConfig = `
|
||||||
resource "aws_security_group" "tf_test_foo" {
|
resource "aws_security_group" "tf_test_foo" {
|
||||||
name = "tf_test_foo"
|
name = "tf_test_foo"
|
||||||
|
@ -338,6 +356,7 @@ resource "aws_instance" "foo" {
|
||||||
instance_type = "m1.small"
|
instance_type = "m1.small"
|
||||||
subnet_id = "${aws_subnet.foo.id}"
|
subnet_id = "${aws_subnet.foo.id}"
|
||||||
associate_public_ip_address = true
|
associate_public_ip_address = true
|
||||||
|
tenancy = "dedicated"
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue