@@ -25,25 +25,25 @@ import (
2525)
2626
2727var (
28- MysqlHeatWaveClusterRequiredOnlyResource = MysqlHeatWaveClusterResourceDependencies +
29- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Required , acctest .Create , MysqlHeatWaveClusterRepresentation )
28+ MysqlHeatWaveClusterRequiredOnlyResource = MysqlHeatWaveWarehouseClusterResourceDependencies +
29+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Required , acctest .Create , MysqlHeatWaveLakehouseClusterRepresentation )
3030
31- MysqlHeatWaveClusterResourceConfig = MysqlHeatWaveClusterResourceDependencies +
32- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Update , MysqlHeatWaveClusterRepresentation )
31+ MysqlHeatWaveClusterResourceConfig = MysqlHeatWaveWarehouseClusterResourceDependencies +
32+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Update , MysqlHeatWaveWarehouseClusterRepresentation )
3333
3434 MysqlMysqlHeatWaveClusterSingularDataSourceRepresentation = map [string ]interface {}{
3535 "db_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_mysql_mysql_db_system.test_mysql_db_system.id}` },
3636 }
3737
38- mysqlDbSystemHeatWaveRepresentation = map [string ]interface {}{
38+ MysqlDbSystemHeatWaveRepresentation = map [string ]interface {}{
3939 "admin_password" : acctest.Representation {RepType : acctest .Required , Create : `BEstrO0ng_#11` },
4040 "admin_username" : acctest.Representation {RepType : acctest .Required , Create : `adminUser` },
4141 "availability_domain" : acctest.Representation {RepType : acctest .Required , Create : `${data.oci_identity_availability_domains.test_availability_domains.availability_domains.0.name}` },
4242 "compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
4343 "configuration_id" : acctest.Representation {RepType : acctest .Optional , Create : `${var.MysqlConfigurationOCID[var.region]}` },
4444 "shape_name" : acctest.Representation {RepType : acctest .Required , Create : `MySQL.VM.Standard.E3.1.8GB` },
4545 "subnet_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_core_subnet.test_subnet.id}` },
46- "backup_policy" : acctest.RepresentationGroup {RepType : acctest .Optional , Group : MysqlMysqlDbSystemBackupPolicyRepresentation },
46+ "backup_policy" : acctest.RepresentationGroup {RepType : acctest .Required , Group : MysqlDbSystemHeatWaveBackupPolicyRepresentation },
4747 "data_storage_size_in_gb" : acctest.Representation {RepType : acctest .Required , Create : `50` },
4848 "defined_tags" : acctest.Representation {RepType : acctest .Optional , Create : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}` },
4949 "description" : acctest.Representation {RepType : acctest .Optional , Create : `MySQL Database Service` },
@@ -57,19 +57,49 @@ var (
5757 "port_x" : acctest.Representation {RepType : acctest .Optional , Create : `33306` },
5858 }
5959
60- MysqlHeatWaveClusterRepresentation = map [string ]interface {}{
61- "db_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_mysql_mysql_db_system.test_mysql_db_system.id}` },
62- "cluster_size" : acctest.Representation {RepType : acctest .Required , Create : `2` , Update : `3` },
63- "shape_name" : acctest.Representation {RepType : acctest .Required , Create : `MySQL.VM.Standard.E3.1.8GB` },
64- "state" : acctest.Representation {RepType : acctest .Optional , Create : `INACTIVE` , Update : `ACTIVE` }, // testing stop & start actions
60+ MysqlDbSystemHeatWaveBackupPolicyRepresentation = map [string ]interface {}{
61+ "defined_tags" : acctest.Representation {RepType : acctest .Optional , Create : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}` },
62+ "freeform_tags" : acctest.Representation {RepType : acctest .Optional , Create : map [string ]string {"Department" : "Finance" }},
63+ "is_enabled" : acctest.Representation {RepType : acctest .Optional , Create : `false` },
64+ "pitr_policy" : acctest.RepresentationGroup {RepType : acctest .Required , Group : MysqlDbSystemHeatWavePitrPolicyRepresentation },
65+ "retention_in_days" : acctest.Representation {RepType : acctest .Optional , Create : `10` },
66+ "window_start_time" : acctest.Representation {RepType : acctest .Optional , Create : `01:00-00:00` },
67+ }
68+
69+ // Lakehouse tests: Create - Warehouse tests: Update
70+ MysqlDbSystemHeatWavePitrPolicyRepresentation = map [string ]interface {}{
71+ "is_enabled" : acctest.Representation {RepType : acctest .Required , Create : `false` , Update : `true` },
72+ }
73+
74+ MysqlHeatWaveLakehouseClusterRepresentation = map [string ]interface {}{
75+ "db_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_mysql_mysql_db_system.test_mysql_db_system.id}` },
76+ "cluster_size" : acctest.Representation {RepType : acctest .Required , Create : `2` },
77+ "shape_name" : acctest.Representation {RepType : acctest .Required , Create : `MySQL.VM.Standard.E3.1.8GB` },
78+ "state" : acctest.Representation {RepType : acctest .Required , Create : `ACTIVE` },
79+ "is_lakehouse_enabled" : acctest.Representation {RepType : acctest .Required , Create : `true` , Update : `false` },
6580 }
6681
67- MysqlHeatWaveClusterResourceDependencies = MysqlMysqlConfigurationResourceConfig +
82+ MysqlHeatWaveWarehouseClusterRepresentation = map [string ]interface {}{
83+ "db_system_id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_mysql_mysql_db_system.test_mysql_db_system.id}` },
84+ "cluster_size" : acctest.Representation {RepType : acctest .Required , Create : `2` , Update : `3` },
85+ "shape_name" : acctest.Representation {RepType : acctest .Required , Create : `MySQL.VM.Standard.E3.1.8GB` },
86+ "state" : acctest.Representation {RepType : acctest .Required , Create : `INACTIVE` , Update : `ACTIVE` }, // testing stop & start actions
87+ "is_lakehouse_enabled" : acctest.Representation {RepType : acctest .Required , Create : `false` , Update : `false` },
88+ }
89+
90+ MysqlHeatWaveClusterResourceDependenciesBase = MysqlMysqlConfigurationResourceConfig +
6891 acctest .GenerateResourceFromRepresentationMap ("oci_core_subnet" , "test_subnet" , acctest .Required , acctest .Create , CoreSubnetRepresentation ) +
6992 acctest .GenerateResourceFromRepresentationMap ("oci_core_vcn" , "test_vcn" , acctest .Required , acctest .Create , CoreVcnRepresentation ) +
7093 AvailabilityDomainConfig +
71- acctest .GenerateDataSourceFromRepresentationMap ("oci_mysql_shapes" , "test_shapes" , acctest .Required , acctest .Create , MysqlMysqlShapeDataSourceRepresentation ) +
72- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_mysql_db_system" , "test_mysql_db_system" , acctest .Required , acctest .Create , mysqlDbSystemHeatWaveRepresentation )
94+ acctest .GenerateDataSourceFromRepresentationMap ("oci_mysql_shapes" , "test_shapes" , acctest .Required , acctest .Create , MysqlMysqlShapeDataSourceRepresentation )
95+
96+ // DbSystem with PITR disabled
97+ MysqlHeatWaveLakehouseClusterResourceDependencies = MysqlHeatWaveClusterResourceDependenciesBase +
98+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_mysql_db_system" , "test_mysql_db_system" , acctest .Required , acctest .Create , MysqlDbSystemHeatWaveRepresentation )
99+
100+ // DbSystem with PITR enabled
101+ MysqlHeatWaveWarehouseClusterResourceDependencies = MysqlHeatWaveClusterResourceDependenciesBase +
102+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_mysql_db_system" , "test_mysql_db_system" , acctest .Required , acctest .Update , MysqlDbSystemHeatWaveRepresentation )
73103)
74104
75105// issue-routing-tag: mysql/default
@@ -91,10 +121,18 @@ func TestMysqlHeatWaveClusterResource_basic(t *testing.T) {
91121 acctest .ResourceTest (t , testAccCheckMysqlHeatWaveClusterDestroy , []resource.TestStep {
92122 // verify Create
93123 {
94- Config : config + compartmentIdVariableStr + MysqlHeatWaveClusterResourceDependencies +
95- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Required , acctest .Create , MysqlHeatWaveClusterRepresentation ),
124+ Config : config + compartmentIdVariableStr + MysqlHeatWaveLakehouseClusterResourceDependencies +
125+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Required , acctest .Create , MysqlHeatWaveLakehouseClusterRepresentation ),
96126 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
127+ resource .TestCheckResourceAttr (resourceName , "cluster_nodes.#" , "2" ),
128+ resource .TestCheckResourceAttr (resourceName , "cluster_size" , "2" ),
129+ resource .TestCheckResourceAttr (resourceName , "shape_name" , "MySQL.VM.Standard.E3.1.8GB" ),
130+ resource .TestCheckResourceAttr (resourceName , "state" , "ACTIVE" ),
131+ resource .TestCheckResourceAttr (resourceName , "is_lakehouse_enabled" , "true" ),
132+
97133 resource .TestCheckResourceAttrSet (resourceName , "db_system_id" ),
134+ resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
135+ resource .TestCheckResourceAttrSet (resourceName , "time_updated" ),
98136
99137 func (s * terraform.State ) (err error ) {
100138 resId , err = acctest .FromInstanceState (s , resourceName , "id" )
@@ -103,19 +141,49 @@ func TestMysqlHeatWaveClusterResource_basic(t *testing.T) {
103141 ),
104142 },
105143
106- // delete before next Create
144+ // Verify update enable Lakehouse
145+ {
146+ Config : config + compartmentIdVariableStr + MysqlHeatWaveLakehouseClusterResourceDependencies +
147+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Required , acctest .Update , MysqlHeatWaveLakehouseClusterRepresentation ),
148+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
149+ resource .TestCheckResourceAttr (resourceName , "cluster_nodes.#" , "2" ),
150+ resource .TestCheckResourceAttr (resourceName , "cluster_size" , "2" ),
151+ resource .TestCheckResourceAttr (resourceName , "shape_name" , "MySQL.VM.Standard.E3.1.8GB" ),
152+ resource .TestCheckResourceAttr (resourceName , "state" , "ACTIVE" ),
153+ resource .TestCheckResourceAttr (resourceName , "is_lakehouse_enabled" , "false" ),
154+
155+ resource .TestCheckResourceAttrSet (resourceName , "db_system_id" ),
156+ resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
157+ resource .TestCheckResourceAttrSet (resourceName , "time_updated" ),
158+
159+ func (s * terraform.State ) (err error ) {
160+ resId2 , err = acctest .FromInstanceState (s , resourceName , "id" )
161+ if resId != resId2 {
162+ return fmt .Errorf ("Resource recreated when it was supposed to be updated." )
163+ }
164+ return err
165+ },
166+ ),
167+ },
168+
169+ // deleting Lakehouse cluster before creating Warehouse cluster
170+ {
171+ Config : config + compartmentIdVariableStr + MysqlHeatWaveLakehouseClusterResourceDependencies ,
172+ },
173+ // Update DbSystem to enable PITR policies
107174 {
108- Config : config + compartmentIdVariableStr + MysqlHeatWaveClusterResourceDependencies ,
175+ Config : config + compartmentIdVariableStr + MysqlHeatWaveWarehouseClusterResourceDependencies ,
109176 },
110177 // verify Create & stop
111178 {
112- Config : config + compartmentIdVariableStr + MysqlHeatWaveClusterResourceDependencies +
113- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Create , MysqlHeatWaveClusterRepresentation ),
179+ Config : config + compartmentIdVariableStr + MysqlHeatWaveWarehouseClusterResourceDependencies +
180+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Create , MysqlHeatWaveWarehouseClusterRepresentation ),
114181 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
115182 resource .TestCheckResourceAttr (resourceName , "cluster_nodes.#" , "2" ),
116183 resource .TestCheckResourceAttr (resourceName , "cluster_size" , "2" ),
117184 resource .TestCheckResourceAttr (resourceName , "shape_name" , "MySQL.VM.Standard.E3.1.8GB" ),
118185 resource .TestCheckResourceAttr (resourceName , "state" , "INACTIVE" ),
186+ resource .TestCheckResourceAttr (resourceName , "is_lakehouse_enabled" , "false" ),
119187
120188 resource .TestCheckResourceAttrSet (resourceName , "db_system_id" ),
121189 resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
@@ -135,13 +203,14 @@ func TestMysqlHeatWaveClusterResource_basic(t *testing.T) {
135203
136204 // verify start & updates to updatable parameters
137205 {
138- Config : config + compartmentIdVariableStr + MysqlHeatWaveClusterResourceDependencies +
139- acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Update , MysqlHeatWaveClusterRepresentation ),
206+ Config : config + compartmentIdVariableStr + MysqlHeatWaveWarehouseClusterResourceDependencies +
207+ acctest .GenerateResourceFromRepresentationMap ("oci_mysql_heat_wave_cluster" , "test_heat_wave_cluster" , acctest .Optional , acctest .Update , MysqlHeatWaveWarehouseClusterRepresentation ),
140208 Check : acctest .ComposeAggregateTestCheckFuncWrapper (
141209 resource .TestCheckResourceAttr (resourceName , "cluster_nodes.#" , "3" ),
142210 resource .TestCheckResourceAttr (resourceName , "cluster_size" , "3" ),
143211 resource .TestCheckResourceAttr (resourceName , "shape_name" , "MySQL.VM.Standard.E3.1.8GB" ),
144212 resource .TestCheckResourceAttr (resourceName , "state" , "ACTIVE" ),
213+ resource .TestCheckResourceAttr (resourceName , "is_lakehouse_enabled" , "false" ),
145214
146215 resource .TestCheckResourceAttrSet (resourceName , "db_system_id" ),
147216 resource .TestCheckResourceAttrSet (resourceName , "time_created" ),
@@ -167,6 +236,7 @@ func TestMysqlHeatWaveClusterResource_basic(t *testing.T) {
167236
168237 resource .TestCheckResourceAttr (singularDatasourceName , "cluster_nodes.#" , "3" ),
169238 resource .TestCheckResourceAttr (singularDatasourceName , "cluster_size" , "3" ),
239+ resource .TestCheckResourceAttr (singularDatasourceName , "is_lakehouse_enabled" , "false" ),
170240 resource .TestCheckResourceAttr (singularDatasourceName , "shape_name" , "MySQL.VM.Standard.E3.1.8GB" ),
171241 resource .TestCheckResourceAttr (singularDatasourceName , "state" , "ACTIVE" ),
172242 resource .TestCheckResourceAttrSet (singularDatasourceName , "time_created" ),
0 commit comments