Skip to content

Commit 2cc61fd

Browse files
author
Ravi Tandon
committed
Modified vendor terraform/helper/schema readMap to return map[string]interface{} instead of interface{} in case of computed key, and updated Instance resource test
1 parent c520003 commit 2cc61fd

File tree

4 files changed

+85
-11
lines changed

4 files changed

+85
-11
lines changed

oci/core_instance_resource_test.go

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ func (s *ResourceCoreInstanceTestSuite) TestAccResourceCoreInstance_basic() {
8282
hostname_label = "hostname1"
8383
image = "${var.InstanceImageOCID[var.region]}"
8484
shape = "VM.Standard2.1"
85-
defined_tags = "${map(
85+
defined_tags = "${map(
8686
"${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value"
8787
)}"
88-
freeform_tags = { "Department" = "Accounting"}
88+
freeform_tags = { "Department" = "Accounting"}
8989
metadata {
9090
ssh_authorized_keys = "${var.ssh_public_key}"
9191
user_data = "ZWNobyBoZWxsbw=="
@@ -471,18 +471,93 @@ func (s *ResourceCoreInstanceTestSuite) TestAccResourceCoreInstance_basic() {
471471
},
472472
),
473473
},
474+
},
475+
})
476+
}
477+
478+
func (s *ResourceCoreInstanceTestSuite) TestAccResourceCoreInstance_customdiff() {
479+
480+
var instanceId string
481+
482+
resource.Test(s.T(), resource.TestCase{
483+
Providers: s.Providers,
484+
Steps: []resource.TestStep{
485+
// create a new instance with metadata interpolations so that no state exists
486+
{
487+
Config: s.Config + `
488+
locals {
489+
nat_offset = "4"
490+
}
491+
492+
resource "oci_core_instance" "t" {
493+
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
494+
compartment_id = "${var.compartment_id}"
495+
image = "${var.InstanceImageOCID[var.region]}"
496+
shape = "VM.Standard2.1"
497+
display_name = "-tf-instance"
498+
metadata {
499+
should_observe_dependency = "${jsonencode(cidrhost(oci_core_subnet.t.cidr_block, local.nat_offset))}"
500+
this_should_also = "${oci_core_subnet.t.time_created}"
501+
ssh_authorized_keys = "${var.ssh_public_key}"
502+
user_data = "ZWNobyBoZWxsbw=="
503+
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
504+
subnet_id = "${oci_core_subnet.t.id}"
505+
}
506+
extended_metadata {
507+
keyA = "valA"
508+
keyB = "{\"keyB1\": \"valB1\", \"keyB2\": {\"keyB2\": \"valB2\"}}"
509+
}
510+
create_vnic_details {
511+
subnet_id = "${oci_core_subnet.t.id}"
512+
display_name = "-tf-vnic-2"
513+
assign_public_ip = false
514+
private_ip = "10.0.1.20"
515+
skip_source_dest_check = true
516+
defined_tags = "${map(
517+
"${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue"
518+
)}"
519+
freeform_tags = { "Department" = "Finance" }
520+
}
521+
}
522+
data "oci_core_vnic_attachments" "t" {
523+
compartment_id = "${var.compartment_id}"
524+
instance_id = "${oci_core_instance.t.id}"
525+
}
526+
data "oci_core_vnic" "t" {
527+
vnic_id = "${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0],"vnic_id")}"
528+
}`,
529+
Check: resource.ComposeAggregateTestCheckFunc(
530+
resource.TestCheckResourceAttr(s.ResourceName, "display_name", "-tf-instance"),
531+
resource.TestCheckResourceAttr(s.ResourceName, "private_ip", "10.0.1.20"),
532+
resource.TestCheckResourceAttr(s.ResourceName, "metadata.%", "6"),
533+
resource.TestCheckResourceAttrSet(s.ResourceName, "metadata.ssh_authorized_keys"),
534+
resource.TestCheckResourceAttr(s.ResourceName, "metadata.user_data", "ZWNobyBoZWxsbw=="),
535+
func(ts *terraform.State) (err error) {
536+
instanceId, err = fromInstanceState(ts, s.ResourceName, "id")
537+
return err
538+
},
539+
),
540+
},
474541
// verify force new by changing ssh_authorized_keys and user_data in metadata
475542
{
476543
Config: s.Config + `
544+
locals {
545+
nat_offset = "4"
546+
}
547+
477548
resource "oci_core_instance" "t" {
478549
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
479550
compartment_id = "${var.compartment_id}"
480551
image = "${var.InstanceImageOCID[var.region]}"
481-
shape = "VM.Standard1.8"
552+
shape = "VM.Standard2.1"
482553
display_name = "-tf-instance"
483554
metadata {
555+
should_observe_dependency = "${jsonencode(cidrhost(oci_core_subnet.t.cidr_block, local.nat_offset + 1))}"
556+
this_should_also = "${oci_core_subnet.t.time_created}"
484557
ssh_authorized_keys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOuBJgh6lTmQvQJ4BA3RCJdSmxRtmiXAQEEIP68/G4gF3XuZdKEYTFeputacmRq9yO5ZnNXgO9akdUgePpf8+CfFtveQxmN5xo3HVCDKxu/70lbMgeu7+wJzrMOlzj+a4zNq2j0Ww2VWMsisJ6eV3bJTnO/9VLGCOC8M9noaOlcKcLgIYy4aDM724MxFX2lgn7o6rVADHRxkvLEXPVqYT4syvYw+8OVSnNgE4MJLxaw8/2K0qp19YlQyiriIXfQpci3ThxwLjymYRPj+kjU1xIxv6qbFQzHR7ds0pSWp1U06cIoKPfCazU9hGWW8yIe/vzfTbWrt2DK6pLwBn/G0x3 sample"
485558
user_data = "ZWNobyB3b3JsZA=="
559+
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
560+
subnet_id = "${oci_core_subnet.t.id}"
486561
}
487562
extended_metadata {
488563
keyA = "valA"
@@ -510,7 +585,7 @@ func (s *ResourceCoreInstanceTestSuite) TestAccResourceCoreInstance_basic() {
510585
Check: resource.ComposeAggregateTestCheckFunc(
511586
resource.TestCheckResourceAttr(s.ResourceName, "display_name", "-tf-instance"),
512587
resource.TestCheckResourceAttr(s.ResourceName, "private_ip", "10.0.1.20"),
513-
resource.TestCheckResourceAttr(s.ResourceName, "metadata.%", "2"),
588+
resource.TestCheckResourceAttr(s.ResourceName, "metadata.%", "6"),
514589
resource.TestCheckResourceAttr(s.ResourceName, "metadata.ssh_authorized_keys", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOuBJgh6lTmQvQJ4BA3RCJdSmxRtmiXAQEEIP68/G4gF3XuZdKEYTFeputacmRq9yO5ZnNXgO9akdUgePpf8+CfFtveQxmN5xo3HVCDKxu/70lbMgeu7+wJzrMOlzj+a4zNq2j0Ww2VWMsisJ6eV3bJTnO/9VLGCOC8M9noaOlcKcLgIYy4aDM724MxFX2lgn7o6rVADHRxkvLEXPVqYT4syvYw+8OVSnNgE4MJLxaw8/2K0qp19YlQyiriIXfQpci3ThxwLjymYRPj+kjU1xIxv6qbFQzHR7ds0pSWp1U06cIoKPfCazU9hGWW8yIe/vzfTbWrt2DK6pLwBn/G0x3 sample"),
515590
resource.TestCheckResourceAttr(s.ResourceName, "metadata.user_data", "ZWNobyB3b3JsZA=="),
516591
func(ts *terraform.State) (err error) {

vendor/github.com/hashicorp/terraform/helper/schema/field_reader_config.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/hashicorp/terraform/helper/schema/field_reader_diff.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/vendor.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -501,12 +501,11 @@
501501
"versionExact": "v0.11.7"
502502
},
503503
{
504-
"checksumSHA1": "JHxGzmxcIS8NyLX9pGhK5beIra4=",
504+
"__comment": "This package has been modified locally in vendor folder due to Terraform Issue: https://github.com/hashicorp/terraform/issues/19978",
505+
"checksumSHA1": "pL2ZDLpzWq1UxqZIc2ucNEROIMc=",
505506
"path": "github.com/hashicorp/terraform/helper/schema",
506-
"revision": "41e50bd32a8825a84535e353c3674af8ce799161",
507-
"revisionTime": "2018-04-10T16:50:42Z",
508-
"version": "=v0.11.7",
509-
"versionExact": "v0.11.7"
507+
"revision": "b9950eb68da97c05e061df3acf51b2480110b65e",
508+
"revisionTime": "2019-01-11T00:36:54Z"
510509
},
511510
{
512511
"checksumSHA1": "Fzbv+N7hFXOtrR6E7ZcHT3jEE9s=",

0 commit comments

Comments
 (0)