Skip to content

Commit 028ba4c

Browse files
Shravan ThatikondaKhalid-Chaudhry
authored andcommitted
Added - Support for TLS & ORDS BYO Certificates (Phase 2) | ADB-C@C
1 parent 4d495c0 commit 028ba4c

18 files changed

+691
-15
lines changed

examples/database/exadata_cc/adbd/adb.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ resource "oci_database_autonomous_database" "test_autonomous_database" {
1010
#Required
1111
admin_password = random_string.autonomous_database_admin_password.result
1212
compartment_id = var.compartment_ocid
13-
compute_count = "2"
13+
ocpu_count = "2"
1414
data_storage_size_in_tbs = "1"
1515
db_name = "atpdb1"
1616

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
resource "oci_database_autonomous_vm_cluster_ords_certificate_management" "test_avm_ords_mgmt_res"{
2+
autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
3+
certificate_generation_type = "BYOC"
4+
certificate_id = var.avm_certificate_id
5+
}
6+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resource "oci_database_autonomous_vm_cluster_ssl_certificate_management" "test_avm_db_mgmt_res"{
2+
autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
3+
certificate_generation_type = "SYSTEM"
4+
}
5+

examples/database/exadata_cc/adbd/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ variable "compartment_ocid" {
1717
}
1818

1919
variable "ssh_public_key" {
20+
}
21+
22+
variable "avm_certificate_id"{
23+
2024
}
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// Copyright (c) 2017, 2023, 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+
"fmt"
8+
"strconv"
9+
"testing"
10+
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
12+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
13+
14+
"github.com/oracle/terraform-provider-oci/httpreplay"
15+
"github.com/oracle/terraform-provider-oci/internal/acctest"
16+
"github.com/oracle/terraform-provider-oci/internal/resourcediscovery"
17+
18+
"github.com/oracle/terraform-provider-oci/internal/utils"
19+
)
20+
21+
var (
22+
certificateId = utils.GetEnvSettingWithBlankDefault("avm_certificate_id")
23+
certificateVariableStr = fmt.Sprintf("variable \"avm_certificate_id\" { default = \"%s\" }\n", certificateId)
24+
DatabaseAutonomousVmClusterOrdsCertificateManagementRepresentation = map[string]interface{}{
25+
"autonomous_vm_cluster_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id}`},
26+
"certificate_generation_type": acctest.Representation{RepType: acctest.Required, Create: `BYOC`},
27+
"certificate_id": acctest.Representation{RepType: acctest.Required, Create: `${var.avm_certificate_id}`},
28+
}
29+
30+
//DatabaseAutonomousVmClusterOrdsSystemCertificateManagementRepresentation = map[string]interface{}{
31+
// "autonomous_vm_cluster_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id}`},
32+
// "certificate_generation_type": acctest.Representation{RepType: acctest.Required, Create: `SYSTEM`},
33+
//}
34+
35+
DatabaseAutonomousVmClusterOrdsManagementResourceDependencies = certificateVariableStr + DatabaseAutonomousVmClusterResourceDependencies +
36+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster", "test_autonomous_vm_cluster", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterRepresentation)
37+
)
38+
39+
// issue-routing-tag: database/ExaCC
40+
func TestDatabaseAutonomousVmClusterOrdsCertificateManagementResource_basic(t *testing.T) {
41+
httpreplay.SetScenario("TestDatabaseAutonomousVmClusterOrdsCertificateManagementResource_basic")
42+
defer httpreplay.SaveScenario()
43+
44+
config := acctest.ProviderTestConfig()
45+
46+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
47+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
48+
49+
resourceName := "oci_database_autonomous_vm_cluster_ords_certificate_management.test_autonomous_vm_cluster_ords_certificate_management"
50+
singularDatasourceName := "data.oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster"
51+
52+
var resId string
53+
// Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test.
54+
acctest.SaveConfigContent(config+compartmentIdVariableStr+DatabaseAutonomousVmClusterOrdsManagementResourceDependencies+
55+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ords_certificate_management", "test_autonomous_vm_cluster_ords_certificate_management", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterOrdsCertificateManagementRepresentation), "database", "autonomousVmClusterOrdsCertificateManagement", t)
56+
57+
acctest.ResourceTest(t, nil, []resource.TestStep{
58+
// verify Create
59+
{
60+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterOrdsManagementResourceDependencies +
61+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ords_certificate_management", "test_autonomous_vm_cluster_ords_certificate_management", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterOrdsCertificateManagementRepresentation),
62+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
63+
resource.TestCheckResourceAttrSet(resourceName, "autonomous_vm_cluster_id"),
64+
resource.TestCheckResourceAttr(resourceName, "certificate_generation_type", "BYOC"),
65+
resource.TestCheckResourceAttrSet(resourceName, "certificate_id"),
66+
),
67+
},
68+
69+
// delete before next Create
70+
{
71+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterOrdsManagementResourceDependencies,
72+
},
73+
// verify Create with optionals
74+
{
75+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterOrdsManagementResourceDependencies +
76+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ords_certificate_management", "test_autonomous_vm_cluster_ords_certificate_management", acctest.Optional, acctest.Create, DatabaseAutonomousVmClusterOrdsCertificateManagementRepresentation),
77+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
78+
resource.TestCheckResourceAttrSet(resourceName, "autonomous_vm_cluster_id"),
79+
resource.TestCheckResourceAttr(resourceName, "certificate_generation_type", "BYOC"),
80+
resource.TestCheckResourceAttrSet(resourceName, "certificate_id"),
81+
82+
func(s *terraform.State) (err error) {
83+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
84+
if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
85+
if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
86+
return errExport
87+
}
88+
}
89+
return err
90+
},
91+
),
92+
},
93+
{
94+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterOrdsManagementResourceDependencies +
95+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_autonomous_vm_cluster", "test_autonomous_vm_cluster", acctest.Required, acctest.Create, DatabaseDatabaseAutonomousVmClusterSingularDataSourceRepresentation),
96+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
97+
resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_vm_cluster_id"),
98+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_ords_certificate_expires"),
99+
),
100+
},
101+
})
102+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// Copyright (c) 2017, 2023, 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+
"fmt"
8+
"strconv"
9+
"testing"
10+
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
12+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
13+
14+
"github.com/oracle/terraform-provider-oci/httpreplay"
15+
"github.com/oracle/terraform-provider-oci/internal/acctest"
16+
"github.com/oracle/terraform-provider-oci/internal/resourcediscovery"
17+
18+
"github.com/oracle/terraform-provider-oci/internal/utils"
19+
)
20+
21+
var (
22+
DatabaseAutonomousVmClusterSslCertificateManagementRepresentation = map[string]interface{}{
23+
"autonomous_vm_cluster_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id}`},
24+
"certificate_generation_type": acctest.Representation{RepType: acctest.Required, Create: `BYOC`},
25+
"certificate_id": acctest.Representation{RepType: acctest.Required, Create: `${var.avm_certificate_id}`},
26+
}
27+
28+
DatabaseAutonomousVmClusterSslManagementResourceDependencies = DatabaseAutonomousVmClusterResourceDependencies + certificateVariableStr +
29+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster", "test_autonomous_vm_cluster", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterRepresentation)
30+
31+
//DatabaseAutonomousVmClusterSslCertificateManagementResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_apigateway_certificate", "test_certificate", acctest.Required, acctest.Create, certificateRepresentation) +
32+
// GenerateResourceFromRepresentationMap("oci_apigateway_certificate", "test_certificate", Required, Create, apiGatewaycertificateRepresentation) +
33+
// acctest.GenerateResourceFromRepresentationMap("oci_certificates_management_ca_bundle", "test_ca_bundle", acctest.Required, acctest.Create, caBundleRepresentation) +
34+
// acctest.GenerateResourceFromRepresentationMap("oci_certificates_management_certificate_authority", "test_certificate_authority", acctest.Required, acctest.Create, certificateAuthorityRepresentation) +
35+
// acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster", "test_autonomous_vm_cluster", acctest.Required, acctest.Create, autonomousVmClusterRepresentation) +
36+
// acctest.GenerateResourceFromRepresentationMap("oci_database_exadata_infrastructure", "test_exadata_infrastructure", acctest.Required, acctest.Create, exadataInfrastructureRepresentation) +
37+
// acctest.GenerateResourceFromRepresentationMap("oci_database_vm_cluster_network", "test_vm_cluster_network", acctest.Required, acctest.Create, vmClusterNetworkRepresentation) +
38+
// KeyResourceDependencyConfig +
39+
// acctest.GenerateResourceFromRepresentationMap("oci_objectstorage_bucket", "test_bucket", acctest.Required, acctest.Create, bucketRepresentation) +
40+
// GenerateDataSourceFromRepresentationMap("oci_objectstorage_namespace", "test_namespace", Required, Create, namespaceSingularDataSourceRepresentation)
41+
)
42+
43+
// issue-routing-tag: database/ExaCC
44+
func TestDatabaseAutonomousVmClusterSslCertificateManagementResource_basic(t *testing.T) {
45+
httpreplay.SetScenario("TestDatabaseAutonomousVmClusterSslCertificateManagementResource_basic")
46+
defer httpreplay.SaveScenario()
47+
48+
config := acctest.ProviderTestConfig()
49+
50+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
51+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
52+
53+
resourceName := "oci_database_autonomous_vm_cluster_ssl_certificate_management.test_autonomous_vm_cluster_ssl_certificate_management"
54+
singularDatasourceName := "data.oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster"
55+
56+
var resId string
57+
// Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test.
58+
acctest.SaveConfigContent(config+compartmentIdVariableStr+DatabaseAutonomousVmClusterSslManagementResourceDependencies+
59+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ssl_certificate_management", "test_autonomous_vm_cluster_ssl_certificate_management", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterSslCertificateManagementRepresentation), "database", "autonomousVmClusterSslCertificateManagement", t)
60+
61+
acctest.ResourceTest(t, nil, []resource.TestStep{
62+
// verify Create
63+
{
64+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterSslManagementResourceDependencies +
65+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ssl_certificate_management", "test_autonomous_vm_cluster_ssl_certificate_management", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterSslCertificateManagementRepresentation),
66+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
67+
resource.TestCheckResourceAttrSet(resourceName, "autonomous_vm_cluster_id"),
68+
resource.TestCheckResourceAttr(resourceName, "certificate_generation_type", "BYOC"),
69+
resource.TestCheckResourceAttrSet(resourceName, "certificate_id"),
70+
),
71+
},
72+
73+
// delete before next Create
74+
{
75+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterSslManagementResourceDependencies,
76+
},
77+
// verify Create with optionals
78+
{
79+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterSslManagementResourceDependencies +
80+
acctest.GenerateResourceFromRepresentationMap("oci_database_autonomous_vm_cluster_ssl_certificate_management", "test_autonomous_vm_cluster_ssl_certificate_management", acctest.Optional, acctest.Create, DatabaseAutonomousVmClusterSslCertificateManagementRepresentation),
81+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
82+
resource.TestCheckResourceAttrSet(resourceName, "autonomous_vm_cluster_id"),
83+
resource.TestCheckResourceAttr(resourceName, "certificate_generation_type", "BYOC"),
84+
resource.TestCheckResourceAttrSet(resourceName, "certificate_id"),
85+
86+
func(s *terraform.State) (err error) {
87+
resId, err = acctest.FromInstanceState(s, resourceName, "id")
88+
if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
89+
if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
90+
return errExport
91+
}
92+
}
93+
return err
94+
},
95+
),
96+
},
97+
{
98+
Config: config + compartmentIdVariableStr + DatabaseAutonomousVmClusterOrdsManagementResourceDependencies +
99+
acctest.GenerateDataSourceFromRepresentationMap("oci_database_autonomous_vm_cluster", "test_autonomous_vm_cluster", acctest.Required, acctest.Create, DatabaseDatabaseAutonomousVmClusterSingularDataSourceRepresentation),
100+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
101+
resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_vm_cluster_id"),
102+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_database_ssl_certificate_expires"),
103+
),
104+
},
105+
})
106+
}

0 commit comments

Comments
 (0)