@@ -35,33 +35,49 @@ var (
3535 "ipv6id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_core_ipv6.test_ipv6.id}` },
3636 }
3737
38+ CoreIpv6DataSourceRepresentation = map [string ]interface {}{
39+ "ip_state" : acctest.Representation {RepType : acctest .Optional , Create : `ipState` },
40+ "lifetime" : acctest.Representation {RepType : acctest .Optional , Create : `EPHEMERAL` , Update : `RESERVED` },
41+ "subnet_id" : acctest.Representation {RepType : acctest .Optional , Create : `${oci_core_subnet.test_subnet.id}` },
42+ "vnic_id" : acctest.Representation {RepType : acctest .Optional , Create : `${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0], "vnic_id")}` },
43+ "filter" : acctest.RepresentationGroup {RepType : acctest .Required , Group : CoreIpv6DataSourceFilterRepresentation }}
44+
3845 CoreCoreIpv6DataSourceRepresentation = map [string ]interface {}{
3946 "vnic_id" : acctest.Representation {RepType : acctest .Optional , Create : `${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0], "vnic_id")}` },
4047 "filter" : acctest.RepresentationGroup {RepType : acctest .Required , Group : CoreIpv6DataSourceFilterRepresentation }}
48+
4149 CoreIpv6DataSourceFilterRepresentation = map [string ]interface {}{
4250 "name" : acctest.Representation {RepType : acctest .Required , Create : `id` },
4351 "values" : acctest.Representation {RepType : acctest .Required , Create : []string {`${oci_core_ipv6.test_ipv6.id}` }},
4452 }
4553
4654 CoreIpv6Representation = map [string ]interface {}{
55+ "defined_tags" : acctest.Representation {RepType : acctest .Optional , Create : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}` , Update : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}` },
56+ "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `displayName` , Update : `displayName2` },
57+ "freeform_tags" : acctest.Representation {RepType : acctest .Optional , Create : map [string ]string {"Department" : "Finance" }, Update : map [string ]string {"Department" : "Accounting" }},
58+ "lifetime" : acctest.Representation {RepType : acctest .Optional , Create : `EPHEMERAL` , Update : `RESERVED` },
4759 "route_table_id" : acctest.Representation {RepType : acctest .Optional , Create : `${oci_core_route_table.test_route_table.id}` },
4860 "vnic_id" : acctest.Representation {RepType : acctest .Required , Create : `${lookup(data.oci_core_vnic_attachments.t.vnic_attachments[0], "vnic_id")}` },
61+ }
62+
63+ CoreIpv6Representation2 = map [string ]interface {}{
4964 "defined_tags" : acctest.Representation {RepType : acctest .Optional , Create : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}` , Update : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}` },
5065 "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `displayName` , Update : `displayName2` },
5166 "freeform_tags" : acctest.Representation {RepType : acctest .Optional , Create : map [string ]string {"Department" : "Finance" }, Update : map [string ]string {"Department" : "Accounting" }},
52- "ip_address" : acctest.Representation {RepType : acctest .Optional , Create : `${substr(oci_core_vcn.test_vcn.ipv6cidr_blocks[0], 0, length(oci_core_vcn.test_vcn.ipv6cidr_blocks[0]) - 4)}5901:cede:a617:8bba` },
67+ "lifetime" : acctest.Representation {RepType : acctest .Optional , Create : `EPHEMERAL` , Update : `RESERVED` },
68+ "route_table_id" : acctest.Representation {RepType : acctest .Optional , Create : `${oci_core_route_table.test_route_table.id}` },
5369 }
5470
5571 CoreIpv6ResourceDependencies = utils .OciImageIdsVariable +
5672 acctest .GenerateResourceFromRepresentationMap ("oci_core_instance" , "test_instance" , acctest .Required , acctest .Create , CoreInstanceRepresentation ) +
5773 acctest .GenerateResourceFromRepresentationMap ("oci_core_route_table" , "test_route_table" , acctest .Required , acctest .Create , CoreRouteTableRepresentation ) +
58- acctest .GenerateResourceFromRepresentationMap ("oci_core_subnet" , "test_subnet" , acctest .Optional , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreSubnetRepresentation , map [string ]interface {}{
74+ acctest .GenerateResourceFromRepresentationMap ("oci_core_subnet" , "test_subnet" , acctest .Required , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreSubnetRepresentation , map [string ]interface {}{
5975 "dns_label" : acctest.Representation {RepType : acctest .Required , Create : `dnslabel` },
60- "ipv6cidr_block" : acctest.Representation {RepType : acctest .Optional , Create : `${substr(oci_core_vcn.test_vcn.ipv6cidr_blocks[0], 0, length(oci_core_vcn.test_vcn.ipv6cidr_blocks[0]) - 2)}${64}` },
76+ "ipv6cidr_block" : acctest.Representation {RepType : acctest .Required , Create : `${substr(oci_core_vcn.test_vcn.ipv6cidr_blocks[0], 0, length(oci_core_vcn.test_vcn.ipv6cidr_blocks[0]) - 2)}${64}` },
6177 })) +
62- acctest .GenerateResourceFromRepresentationMap ("oci_core_vcn" , "test_vcn" , acctest .Optional , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreVcnRepresentation , map [string ]interface {}{
78+ acctest .GenerateResourceFromRepresentationMap ("oci_core_vcn" , "test_vcn" , acctest .Required , acctest .Create , acctest .RepresentationCopyWithNewProperties (CoreVcnRepresentation , map [string ]interface {}{
6379 "dns_label" : acctest.Representation {RepType : acctest .Required , Create : `dnslabel` },
64- "is_ipv6enabled" : acctest.Representation {RepType : acctest .Optional , Create : `true` },
80+ "is_ipv6enabled" : acctest.Representation {RepType : acctest .Required , Create : `true` },
6581 })) +
6682 AvailabilityDomainConfig +
6783 DefinedTagsDependencies + `
@@ -99,7 +115,6 @@ func TestCoreIpv6Resource_basic(t *testing.T) {
99115 Config : config + compartmentIdVariableStr + CoreIpv6ResourceDependencies +
100116 acctest .GenerateResourceFromRepresentationMap ("oci_core_ipv6" , "test_ipv6" , acctest .Required , acctest .Create , CoreIpv6Representation ),
101117 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
102- resource .TestCheckResourceAttrSet (resourceName , "vnic_id" ),
103118
104119 func (s * terraform.State ) (err error ) {
105120 resId , err = acctest .FromInstanceState (s , resourceName , "id" )
@@ -117,13 +132,10 @@ func TestCoreIpv6Resource_basic(t *testing.T) {
117132 Config : config + compartmentIdVariableStr + CoreIpv6ResourceDependencies +
118133 acctest .GenerateResourceFromRepresentationMap ("oci_core_ipv6" , "test_ipv6" , acctest .Optional , acctest .Create , CoreIpv6Representation ),
119134 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
120- resource .TestCheckResourceAttrSet (resourceName , "compartment_id" ),
121135 resource .TestCheckResourceAttr (resourceName , "display_name" , "displayName" ),
122136 resource .TestCheckResourceAttr (resourceName , "freeform_tags.%" , "1" ),
123- resource .TestCheckResourceAttrSet (resourceName , "id " ),
137+ resource .TestCheckResourceAttr (resourceName , "lifetime" , "EPHEMERAL " ),
124138 resource .TestCheckResourceAttrSet (resourceName , "route_table_id" ),
125- resource .TestCheckResourceAttrSet (resourceName , "ip_address" ),
126- resource .TestCheckResourceAttrSet (resourceName , "state" ),
127139 resource .TestCheckResourceAttrSet (resourceName , "subnet_id" ),
128140 resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
129141 resource .TestCheckResourceAttrSet (resourceName , "vnic_id" ),
@@ -149,8 +161,8 @@ func TestCoreIpv6Resource_basic(t *testing.T) {
149161 resource .TestCheckResourceAttr (resourceName , "display_name" , "displayName2" ),
150162 resource .TestCheckResourceAttr (resourceName , "freeform_tags.%" , "1" ),
151163 resource .TestCheckResourceAttrSet (resourceName , "id" ),
164+ resource .TestCheckResourceAttr (resourceName , "lifetime" , "RESERVED" ),
152165 resource .TestCheckResourceAttrSet (resourceName , "route_table_id" ),
153- resource .TestCheckResourceAttrSet (resourceName , "ip_address" ),
154166 resource .TestCheckResourceAttrSet (resourceName , "state" ),
155167 resource .TestCheckResourceAttrSet (resourceName , "subnet_id" ),
156168 resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
@@ -165,19 +177,52 @@ func TestCoreIpv6Resource_basic(t *testing.T) {
165177 },
166178 ),
167179 },
180+
181+ // verify detach operation
182+ {
183+ Config : config + compartmentIdVariableStr + CoreIpv6ResourceDependencies +
184+ acctest .GenerateResourceFromRepresentationMap ("oci_core_ipv6" , "test_ipv6" , acctest .Optional , acctest .Update , CoreIpv6Representation2 ),
185+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
186+ resource .TestCheckResourceAttrSet (resourceName , "compartment_id" ),
187+ resource .TestCheckResourceAttr (resourceName , "display_name" , "displayName2" ),
188+ resource .TestCheckResourceAttr (resourceName , "freeform_tags.%" , "1" ),
189+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
190+ resource .TestCheckResourceAttr (resourceName , "lifetime" , "RESERVED" ),
191+ resource .TestCheckResourceAttrSet (resourceName , "route_table_id" ),
192+ resource .TestCheckResourceAttrSet (resourceName , "ip_address" ),
193+ resource .TestCheckResourceAttrSet (resourceName , "state" ),
194+ resource .TestCheckResourceAttrSet (resourceName , "subnet_id" ),
195+ resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
196+
197+ func (s * terraform.State ) (err error ) {
198+ resId2 , err = acctest .FromInstanceState (s , resourceName , "id" )
199+ if resId != resId2 {
200+ return fmt .Errorf ("Resource recreated when it was supposed to be updated." )
201+ }
202+ return err
203+ },
204+ ),
205+ },
206+
168207 // verify datasource
169208 {
170209 Config : config +
171210 acctest .GenerateDataSourceFromRepresentationMap ("oci_core_ipv6s" , "test_ipv6s" , acctest .Optional , acctest .Update , CoreCoreIpv6DataSourceRepresentation ) +
172211 compartmentIdVariableStr + CoreIpv6ResourceDependencies +
173212 acctest .GenerateResourceFromRepresentationMap ("oci_core_ipv6" , "test_ipv6" , acctest .Optional , acctest .Update , CoreIpv6Representation ),
174213 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
175- resource .TestCheckResourceAttrSet (datasourceName , "vnic_id" ),
214+ //resource.TestCheckResourceAttr(datasourceName, "ip_address", "ipAddress"),
215+ //resource.TestCheckResourceAttr(datasourceName, "ip_state", "ipState"),
216+ //resource.TestCheckResourceAttr(datasourceName, "lifetime", "lifetime2"),
217+ //resource.TestCheckResourceAttrSet(datasourceName, "subnet_id"),
218+ //resource.TestCheckResourceAttrSet(datasourceName, "vnic_id"),
176219
177220 resource .TestCheckResourceAttr (datasourceName , "ipv6s.#" , "1" ),
178221 resource .TestCheckResourceAttr (datasourceName , "ipv6s.0.display_name" , "displayName2" ),
179222 resource .TestCheckResourceAttr (datasourceName , "ipv6s.0.freeform_tags.%" , "1" ),
180223 resource .TestCheckResourceAttrSet (datasourceName , "ipv6s.0.id" ),
224+ resource .TestCheckResourceAttrSet (datasourceName , "ipv6s.0.ip_state" ),
225+ resource .TestCheckResourceAttr (datasourceName , "ipv6s.0.lifetime" , "RESERVED" ),
181226 resource .TestCheckResourceAttrSet (datasourceName , "ipv6s.0.route_table_id" ),
182227 resource .TestCheckResourceAttrSet (datasourceName , "ipv6s.0.ip_address" ),
183228 resource .TestCheckResourceAttrSet (datasourceName , "ipv6s.0.subnet_id" ),
@@ -196,6 +241,9 @@ func TestCoreIpv6Resource_basic(t *testing.T) {
196241 resource .TestCheckResourceAttr (singularDatasourceName , "display_name" , "displayName2" ),
197242 resource .TestCheckResourceAttr (singularDatasourceName , "freeform_tags.%" , "1" ),
198243 resource .TestCheckResourceAttrSet (singularDatasourceName , "id" ),
244+ resource .TestCheckResourceAttrSet (singularDatasourceName , "ip_state" ),
245+ resource .TestCheckResourceAttr (singularDatasourceName , "lifetime" , "RESERVED" ),
246+ resource .TestCheckResourceAttrSet (singularDatasourceName , "state" ),
199247 resource .TestCheckResourceAttrSet (singularDatasourceName , "ip_address" ),
200248 resource .TestCheckResourceAttrSet (singularDatasourceName , "time_created" ),
201249 resource .TestCheckResourceAttrSet (singularDatasourceName , "route_table_id" ),
0 commit comments