Skip to content

Commit 8c24fff

Browse files
Terraform Team Automationrashik-bhasin
authored andcommitted
Added - Support for GoldenGate Maintenance
1 parent 48506a2 commit 8c24fff

20 files changed

+1114
-87
lines changed

examples/goldengate/Deployment/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ variable "deployment_description" {
2121
}
2222

2323
variable "deployment_display_name" {
24-
default = "displayName"
24+
default = "TERRAFORM_backward_compatibility_test"
2525
}
2626

2727
variable "deployment_fqdn" {

internal/client/provider_clients.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ package client
55

66
import (
77
"fmt"
8-
oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains"
98
"strings"
109

10+
oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains"
11+
1112
oci_functions "github.com/oracle/oci-go-sdk/v65/functions"
1213

1314
oci_kms "github.com/oracle/oci-go-sdk/v65/keymanagement"

internal/integrationtest/golden_gate_deployment_test.go

Lines changed: 167 additions & 21 deletions
Large diffs are not rendered by default.

internal/integrationtest/golden_gate_deployment_type_test.go

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package integrationtest
55

66
import (
7-
"fmt"
87
"testing"
98

109
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -22,52 +21,46 @@ var (
2221
}
2322

2423
GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation = map[string]interface{}{
25-
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
26-
"display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`},
24+
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
25+
"deployment_type": acctest.Representation{RepType: acctest.Optional, Create: `DATABASE_ORACLE`},
2726
}
2827

2928
GoldenGateDeploymentTypeResourceConfig = ""
3029
)
3130

31+
/*
32+
Note:
33+
Set the following environmentVariables in order to make it work:
34+
TF_VAR_compartment_id=com
35+
*/
3236
// issue-routing-tag: golden_gate/default
3337
func TestGoldenGateDeploymentTypeResource_basic(t *testing.T) {
3438
httpreplay.SetScenario("TestGoldenGateDeploymentTypeResource_basic")
3539
defer httpreplay.SaveScenario()
3640

37-
config := acctest.ProviderTestConfig()
41+
const CompartmentId = "compartment_id"
42+
43+
config := acctest.ProviderTestConfig() + makeVariableStr(CompartmentId, t)
3844

39-
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
40-
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
45+
var compartmentId = utils.GetEnvSettingWithBlankDefault(CompartmentId)
4146

4247
datasourceName := "data.oci_golden_gate_deployment_types.test_deployment_types"
43-
singularDatasourceName := "data.oci_golden_gate_deployment_type.test_deployment_type"
4448

4549
acctest.SaveConfigContent("", "", "", t)
4650

4751
acctest.ResourceTest(t, nil, []resource.TestStep{
4852
// verify datasource
4953
{
5054
Config: config +
51-
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_types", "test_deployment_types", acctest.Required, acctest.Create, GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation) +
52-
compartmentIdVariableStr + GoldenGateDeploymentTypeResourceConfig,
55+
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_types", "test_deployment_types", acctest.Optional, acctest.Create, GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation) +
56+
GoldenGateDeploymentTypeResourceConfig,
5357
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
5458
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
55-
resource.TestCheckResourceAttr(datasourceName, "display_name", "displayName"),
56-
59+
resource.TestCheckResourceAttr(datasourceName, "deployment_type", "DATABASE_ORACLE"),
60+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_type_collection.0.items.0.ogg_version"),
61+
resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.0.deployment_type", "DATABASE_ORACLE"),
62+
resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.0.category", "DATA_REPLICATION"),
5763
resource.TestCheckResourceAttrSet(datasourceName, "deployment_type_collection.#"),
58-
resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.#", "3"),
59-
),
60-
},
61-
// verify singular datasource
62-
{
63-
Config: config +
64-
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_type", "test_deployment_type", acctest.Required, acctest.Create, GoldenGateGoldenGateDeploymentTypeSingularDataSourceRepresentation) +
65-
compartmentIdVariableStr + GoldenGateDeploymentTypeResourceConfig,
66-
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
67-
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
68-
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName"),
69-
70-
resource.TestCheckResourceAttr(singularDatasourceName, "items.#", "3"),
7164
),
7265
},
7366
})

internal/integrationtest/golden_gate_deployment_upgrade_test.go

Lines changed: 61 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package integrationtest
66
import (
77
"testing"
88

9+
"github.com/oracle/terraform-provider-oci/internal/utils"
10+
911
"github.com/oracle/terraform-provider-oci/internal/acctest"
1012

1113
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -14,6 +16,13 @@ import (
1416
"github.com/oracle/terraform-provider-oci/httpreplay"
1517
)
1618

19+
/*
20+
Note:
21+
this test requires an existing deployment, with at least 1 upgrade record.
22+
Set the following environmentVariables in order to make it work:
23+
TF_VAR_compartment_id=compartment_id_of_the_deployment
24+
TF_VAR_test_deployment_id=ocid_of_deployment
25+
*/
1726
// issue-routing-tag: golden_gate/default
1827
func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) {
1928
httpreplay.SetScenario("TestGoldenGateDeploymentUpgradeResource_basic")
@@ -25,14 +34,20 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) {
2534
)
2635

2736
var (
28-
datasourceName = "data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades"
37+
datasourceName = "data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades"
38+
singularDatasourceName = "data.oci_golden_gate_deployment_upgrade.test_deployment_upgrade"
2939
)
3040
var (
3141
GoldenGateDeploymentUpgradeResourceDependencies = ""
3242

3343
goldenGatedeploymentUpgradeDataSourceRepresentation = map[string]interface{}{
3444
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
35-
"deployment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.test_deployment_id}`},
45+
"deployment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.test_deployment_id}`},
46+
}
47+
48+
goldenGateDeploymentUpgradeSingularDataSourceRepresentation = map[string]interface{}{
49+
"deployment_upgrade_id": acctest.Representation{RepType: acctest.Required,
50+
Create: `${data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades.deployment_upgrade_collection[0].items[0].id}`},
3651
}
3752
)
3853

@@ -41,6 +56,10 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) {
4156
makeVariableStr(TEST_DEPLOYMENT_ID, t) +
4257
GoldenGateDeploymentUpgradeResourceDependencies
4358

59+
var (
60+
compartmentId = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID)
61+
deploymentId = utils.GetEnvSettingWithBlankDefault(TEST_DEPLOYMENT_ID)
62+
)
4463
acctest.SaveConfigContent("", "", "", t)
4564

4665
acctest.ResourceTest(t, testAccCheckGoldenGateDeploymentUpgradeDestroy, []resource.TestStep{
@@ -49,7 +68,7 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) {
4968
Config: config +
5069
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation),
5170
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
52-
resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "0"),
71+
resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "1"),
5372
),
5473
},
5574

@@ -58,32 +77,48 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) {
5877
Config: config +
5978
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation),
6079
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
61-
resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "0"),
80+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.#"),
81+
resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "1"),
82+
resource.TestCheckResourceAttr(datasourceName, "deployment_id", deploymentId),
83+
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
84+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.deployment_upgrade_type"),
85+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_rollback_allowed"),
86+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_security_fix"),
87+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_snoozed"),
88+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.ogg_version"),
89+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.previous_ogg_version"),
90+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.release_type"),
91+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_created"),
92+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_finished"),
93+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_released"),
94+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_started"),
95+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_updated"),
6296
),
6397
},
6498

65-
// // verify singular datasource
66-
// {
67-
// Config: config +
68-
// generateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrade", "test_deployment_upgrade", acctest.Required, acctest.Create, goldenGateDeploymentUpgradeSingularDataSourceRepresentation) +
69-
// compartmentIdVariableStr + DeploymentUpgradeResourceConfig,
70-
// Check: acctest.ComposeAggregateTestCheckFuncWrapper(
71-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_id"),
72-
//
73-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
74-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_type"),
75-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "description"),
76-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"),
77-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
78-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "lifecycle_sub_state"),
79-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_version"),
80-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
81-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
82-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "time_finished"),
83-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started"),
84-
// resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
85-
// ),
86-
// },
99+
// verify singular datasource
100+
{
101+
Config: config +
102+
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation) +
103+
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrade", "test_deployment_upgrade", acctest.Required, acctest.Create, goldenGateDeploymentUpgradeSingularDataSourceRepresentation),
104+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
105+
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
106+
resource.TestCheckResourceAttr(singularDatasourceName, "deployment_id", deploymentId),
107+
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
108+
resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_type"),
109+
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_rollback_allowed"),
110+
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_security_fix"),
111+
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_snoozed"),
112+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_version"),
113+
resource.TestCheckResourceAttrSet(singularDatasourceName, "previous_ogg_version"),
114+
resource.TestCheckResourceAttrSet(singularDatasourceName, "release_type"),
115+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
116+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_finished"),
117+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_released"),
118+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started"),
119+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
120+
),
121+
},
87122
})
88123
}
89124

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"testing"
8+
9+
"github.com/oracle/terraform-provider-oci/internal/utils"
10+
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
12+
13+
"github.com/oracle/terraform-provider-oci/httpreplay"
14+
"github.com/oracle/terraform-provider-oci/internal/acctest"
15+
)
16+
17+
var (
18+
GoldenGateDeploymentVersionDataSourceRepresentation = map[string]interface{}{
19+
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
20+
"deployment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.test_deployment.id}`},
21+
"deployment_type": acctest.Representation{RepType: acctest.Required, Create: `DATABASE_ORACLE`},
22+
}
23+
)
24+
25+
/*
26+
Note:
27+
Set the following environmentVariables in order to make it work:
28+
TF_VAR_compartment_id=compartment - use any compartmentId what you have rights for
29+
*/
30+
// issue-routing-tag: golden_gate/default
31+
func TestGoldenGateDeploymentVersionResource_basic(t *testing.T) {
32+
httpreplay.SetScenario("TestGoldenGateDeploymentVersionResource_basic")
33+
defer httpreplay.SaveScenario()
34+
35+
const (
36+
COMPARTMENT_ID = "compartment_id"
37+
)
38+
39+
config := acctest.ProviderTestConfig() +
40+
makeVariableStr(COMPARTMENT_ID, t)
41+
42+
var (
43+
compartmentId = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID)
44+
)
45+
46+
datasourceName := "data.oci_golden_gate_deployment_versions.test_deployment_versions"
47+
48+
acctest.SaveConfigContent("", "", "", t)
49+
50+
acctest.ResourceTest(t, nil, []resource.TestStep{
51+
// verify datasource
52+
{
53+
Config: config +
54+
acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_versions", "test_deployment_versions", acctest.Required, acctest.Create, GoldenGateDeploymentVersionDataSourceRepresentation),
55+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
56+
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
57+
resource.TestCheckResourceAttr(datasourceName, "deployment_type", "DATABASE_ORACLE"),
58+
resource.TestCheckResourceAttrSet(datasourceName, "deployment_version_collection.#"),
59+
),
60+
},
61+
})
62+
}

internal/service/golden_gate/golden_gate_deployment_data_source.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,18 @@ func (s *GoldenGateDeploymentDataSourceCrud) SetData() error {
137137

138138
s.D.Set("lifecycle_sub_state", s.Res.LifecycleSubState)
139139

140+
if s.Res.MaintenanceWindow != nil {
141+
s.D.Set("maintenance_window", []interface{}{MaintenanceWindowToMap(s.Res.MaintenanceWindow)})
142+
} else {
143+
s.D.Set("maintenance_window", nil)
144+
}
145+
146+
s.D.Set("next_maintenance_action_type", s.Res.NextMaintenanceActionType)
147+
148+
if s.Res.NextMaintenanceDescription != nil {
149+
s.D.Set("next_maintenance_description", *s.Res.NextMaintenanceDescription)
150+
}
151+
140152
s.D.Set("nsg_ids", s.Res.NsgIds)
141153

142154
if s.Res.OggData != nil {
@@ -171,6 +183,10 @@ func (s *GoldenGateDeploymentDataSourceCrud) SetData() error {
171183
s.D.Set("time_created", s.Res.TimeCreated.String())
172184
}
173185

186+
if s.Res.TimeOfNextMaintenance != nil {
187+
s.D.Set("time_of_next_maintenance", s.Res.TimeOfNextMaintenance.String())
188+
}
189+
174190
if s.Res.TimeUpdated != nil {
175191
s.D.Set("time_updated", s.Res.TimeUpdated.String())
176192
}

0 commit comments

Comments
 (0)