Skip to content

Commit c099f45

Browse files
committed
Add oci_certificates_certificate_bundle and oci_certificates_certificate_authority_bundle data sources
1 parent 6e4c19e commit c099f45

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3511
-59
lines changed

Diff for: go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ require (
5151
github.com/hashicorp/go-version v1.6.0
5252
github.com/hashicorp/hcl/v2 v2.8.2 // indirect
5353
github.com/hashicorp/logutils v1.0.0 // indirect
54-
github.com/hashicorp/terraform-json v0.12.0 // indirect
54+
github.com/hashicorp/terraform-json v0.15.0 // indirect
5555
github.com/hashicorp/terraform-plugin-go v0.3.0 // indirect
5656
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d // indirect
5757
github.com/jmespath/go-jmespath v0.4.0 // indirect

Diff for: internal/client/certificates_clients.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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 client
5+
6+
import (
7+
oci_certificates "github.com/oracle/oci-go-sdk/v65/certificates"
8+
oci_common "github.com/oracle/oci-go-sdk/v65/common"
9+
)
10+
11+
func init() {
12+
RegisterOracleClient("oci_certificates.CertificatesClient", &OracleClient{InitClientFn: initCertificatesCertificatesClient})
13+
}
14+
15+
func initCertificatesCertificatesClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
16+
client, err := oci_certificates.NewCertificatesClientWithConfigurationProvider(configProvider)
17+
if err != nil {
18+
return nil, err
19+
}
20+
err = configureClient(&client.BaseClient)
21+
if err != nil {
22+
return nil, err
23+
}
24+
25+
if serviceClientOverrides.HostUrlOverride != "" {
26+
client.Host = serviceClientOverrides.HostUrlOverride
27+
}
28+
return &client, nil
29+
}
30+
31+
func (m *OracleClients) CertificatesClient() *oci_certificates.CertificatesClient {
32+
return m.GetClient("oci_certificates.CertificatesClient").(*oci_certificates.CertificatesClient)
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
CertificatesCertificateAuthorityBundleSingularDataSourceRepresentation = map[string]interface{}{
20+
"certificate_authority_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_certificates_management_certificate_authority.test_certificate_authority.id}`},
21+
"stage": acctest.Representation{RepType: acctest.Optional, Create: `CURRENT`},
22+
}
23+
24+
CertificatesCertificateAuthorityBundleResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_certificates_management_certificate_authority", "test_certificate_authority", acctest.Required, acctest.Create, certificateAuthorityRepresentation)
25+
)
26+
27+
// issue-routing-tag: certificates/default
28+
func TestCertificatesCertificateAuthorityBundleResource_basic(t *testing.T) {
29+
httpreplay.SetScenario("TestCertificatesCertificateAuthorityBundleResource_basic")
30+
defer httpreplay.SaveScenario()
31+
32+
config := acctest.ProviderTestConfig()
33+
34+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
35+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
36+
37+
singularDatasourceName := "data.oci_certificates_certificate_authority_bundle.test_certificate_authority_bundle"
38+
39+
acctest.SaveConfigContent("", "", "", t)
40+
acctest.ResourceTest(t, nil, []resource.TestStep{
41+
// verify singular datasource
42+
{
43+
Config: config +
44+
acctest.GenerateDataSourceFromRepresentationMap("oci_certificates_certificate_authority_bundle", "test_certificate_authority_bundle", acctest.Optional, acctest.Create, CertificatesCertificateAuthorityBundleSingularDataSourceRepresentation) +
45+
compartmentIdVariableStr + CertificatesCertificateAuthorityBundleResourceConfig,
46+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
47+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cert_chain_pem"),
48+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_authority_id"),
49+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_authority_name"),
50+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_pem"),
51+
resource.TestCheckResourceAttrSet(singularDatasourceName, "serial_number"),
52+
resource.TestCheckResourceAttr(singularDatasourceName, "stages.#", "2"),
53+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
54+
resource.TestCheckResourceAttr(singularDatasourceName, "validity.#", "1"),
55+
resource.TestCheckResourceAttrSet(singularDatasourceName, "validity.0.time_of_validity_not_before"),
56+
resource.TestCheckResourceAttrSet(singularDatasourceName, "validity.0.time_of_validity_not_after"),
57+
resource.TestCheckResourceAttr(singularDatasourceName, "version_number", "1"),
58+
),
59+
},
60+
})
61+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
CertificatesCertificateBundleSingularDataSourceRepresentation = map[string]interface{}{
20+
"certificate_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_certificates_management_certificate.test_certificate.id}`},
21+
"certificate_bundle_type": acctest.Representation{RepType: acctest.Optional, Create: `CERTIFICATE_CONTENT_WITH_PRIVATE_KEY`},
22+
"stage": acctest.Representation{RepType: acctest.Optional, Create: `CURRENT`},
23+
}
24+
25+
CertificatesCertificateBundleResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_certificates_management_certificate", "test_certificate", acctest.Required, acctest.Create, certificatesManagementCertificateRepresentation)
26+
)
27+
28+
// issue-routing-tag: certificates/default
29+
func TestCertificatesCertificateBundleResource_basic(t *testing.T) {
30+
httpreplay.SetScenario("TestCertificatesCertificateBundleResource_basic")
31+
defer httpreplay.SaveScenario()
32+
33+
config := acctest.ProviderTestConfig()
34+
35+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
36+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
37+
38+
singularDatasourceName := "data.oci_certificates_certificate_bundle.test_certificate_bundle"
39+
40+
acctest.SaveConfigContent("", "", "", t)
41+
acctest.ResourceTest(t, nil, []resource.TestStep{
42+
// verify singular datasource
43+
{
44+
Config: config +
45+
acctest.GenerateDataSourceFromRepresentationMap("oci_certificates_certificate_bundle", "test_certificate_bundle", acctest.Optional, acctest.Create, CertificatesCertificateBundleSingularDataSourceRepresentation) +
46+
compartmentIdVariableStr + CertificatesCertificateBundleResourceConfig,
47+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
48+
resource.TestCheckResourceAttrSet(singularDatasourceName, "cert_chain_pem"),
49+
resource.TestCheckResourceAttr(singularDatasourceName, "certificate_bundle_type", "CERTIFICATE_CONTENT_WITH_PRIVATE_KEY"),
50+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_id"),
51+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_name"),
52+
resource.TestCheckResourceAttrSet(singularDatasourceName, "certificate_pem"),
53+
resource.TestCheckResourceAttrSet(singularDatasourceName, "private_key_pem"),
54+
resource.TestCheckResourceAttrSet(singularDatasourceName, "serial_number"),
55+
resource.TestCheckResourceAttr(singularDatasourceName, "stages.#", "2"),
56+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
57+
resource.TestCheckResourceAttr(singularDatasourceName, "validity.#", "1"),
58+
resource.TestCheckResourceAttrSet(singularDatasourceName, "validity.0.time_of_validity_not_before"),
59+
resource.TestCheckResourceAttrSet(singularDatasourceName, "validity.0.time_of_validity_not_after"),
60+
resource.TestCheckResourceAttr(singularDatasourceName, "version_number", "1"),
61+
),
62+
},
63+
})
64+
}

Diff for: internal/provider/register_datasource.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
tf_bds "github.com/oracle/terraform-provider-oci/internal/service/bds"
2626
tf_blockchain "github.com/oracle/terraform-provider-oci/internal/service/blockchain"
2727
tf_budget "github.com/oracle/terraform-provider-oci/internal/service/budget"
28+
tf_certificates "github.com/oracle/terraform-provider-oci/internal/service/certificates"
2829
tf_certificates_management "github.com/oracle/terraform-provider-oci/internal/service/certificates_management"
2930
tf_cloud_bridge "github.com/oracle/terraform-provider-oci/internal/service/cloud_bridge"
3031
tf_cloud_guard "github.com/oracle/terraform-provider-oci/internal/service/cloud_guard"
@@ -121,7 +122,6 @@ import (
121122
)
122123

123124
func init() {
124-
125125
if common.CheckForEnabledServices("adm") {
126126
tf_adm.RegisterDatasource()
127127
}
@@ -182,6 +182,9 @@ func init() {
182182
if common.CheckForEnabledServices("budget") {
183183
tf_budget.RegisterDatasource()
184184
}
185+
if common.CheckForEnabledServices("certificates") {
186+
tf_certificates.RegisterDatasource()
187+
}
185188
if common.CheckForEnabledServices("certificatesmanagement") {
186189
tf_certificates_management.RegisterDatasource()
187190
}
@@ -461,5 +464,4 @@ func init() {
461464
if common.CheckForEnabledServices("waf") {
462465
tf_waf.RegisterDatasource()
463466
}
464-
465467
}

0 commit comments

Comments
 (0)