Skip to content

Commit bac1f82

Browse files
jotruonsahilg11
authored andcommitted
Added - Support get secret content
1 parent 400d535 commit bac1f82

File tree

10 files changed

+684
-8
lines changed

10 files changed

+684
-8
lines changed

examples/vault_secret/main.tf

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ variable "region" {
1818
variable "compartment_ocid" {
1919
}
2020

21-
variable "secret_id" {
21+
variable "kms_vault_ocid" {
2222
}
2323

24-
variable "vault_id" {
25-
}
24+
variable "kms_key_ocid" {}
2625

2726
provider "oci" {
2827
tenancy_ocid = var.tenancy_ocid
@@ -32,13 +31,42 @@ provider "oci" {
3231
region = var.region
3332
}
3433

35-
data "oci_vault_secret" "test_secret" {
36-
secret_id = var.secret_id
34+
data "oci_vault_secrets" "test_secrets" {
35+
compartment_id = var.compartment_ocid
36+
state = "ACTIVE"
37+
vault_id = var.kms_vault_ocid
3738
}
3839

39-
data "oci_vault_secrets" "test_secrets" {
40+
resource "oci_vault_secret" "test_secret" {
41+
#Required
4042
compartment_id = var.compartment_ocid
41-
state = "Active"
42-
vault_id = var.vault_id
43+
secret_content {
44+
#Required
45+
content_type = "BASE64"
46+
47+
#Optional
48+
content = "PHZhcj4mbHQ7YmFzZTY0X2VuY29kZWRfc2VjcmV0X2NvbnRlbnRzJmd0OzwvdmFyPg=="
49+
name = "name"
50+
stage = "CURRENT"
51+
}
52+
key_id = var.kms_key_ocid
53+
secret_name = "TFsample1"
54+
vault_id = var.kms_vault_ocid
55+
}
56+
57+
58+
data "oci_vault_secret" "test_secret" {
59+
secret_id = oci_vault_secret.test_secret.id
60+
}
61+
62+
data "oci_secrets_secretbundle_versions" "test_secretbundle_versions" {
63+
#Required
64+
secret_id = oci_vault_secret.test_secret.id
4365
}
4466

67+
// Get Secret content
68+
data "oci_secrets_secretbundle" "test_secretbundles" {
69+
#Required
70+
secret_id = oci_vault_secret.test_secret.id
71+
stage = "CURRENT"
72+
}

internal/client/secrets_clients.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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 client
5+
6+
import (
7+
oci_secrets "github.com/oracle/oci-go-sdk/v58/secrets"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/v58/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_secrets.SecretsClient", &OracleClient{InitClientFn: initSecretsSecretsClient})
14+
}
15+
16+
func initSecretsSecretsClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
17+
client, err := oci_secrets.NewSecretsClientWithConfigurationProvider(configProvider)
18+
if err != nil {
19+
return nil, err
20+
}
21+
err = configureClient(&client.BaseClient)
22+
if err != nil {
23+
return nil, err
24+
}
25+
26+
if serviceClientOverrides.HostUrlOverride != "" {
27+
client.Host = serviceClientOverrides.HostUrlOverride
28+
}
29+
return &client, nil
30+
}
31+
32+
func (m *OracleClients) SecretsClient() *oci_secrets.SecretsClient {
33+
return m.GetClient("oci_secrets.SecretsClient").(*oci_secrets.SecretsClient)
34+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
11+
12+
"github.com/terraform-providers/terraform-provider-oci/httpreplay"
13+
"github.com/terraform-providers/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/terraform-providers/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
secretbundleSingularDataSourceRepresentation = map[string]interface{}{
20+
"secret_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_vault_secret.test_secret.id}`},
21+
"secret_version_name": acctest.Representation{RepType: acctest.Optional, Create: `name`},
22+
"stage": acctest.Representation{RepType: acctest.Optional, Create: `CURRENT`},
23+
"version_number": acctest.Representation{RepType: acctest.Optional, Create: `1`},
24+
}
25+
26+
SecretbundleResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_vault_secret", "test_secret", acctest.Required, acctest.Create, secretRepresentation)
27+
)
28+
29+
// issue-routing-tag: secrets/default
30+
func TestSecretsSecretbundleResource_basic(t *testing.T) {
31+
httpreplay.SetScenario("TestSecretsSecretbundleResource_basic")
32+
defer httpreplay.SaveScenario()
33+
34+
config := acctest.ProviderTestConfig()
35+
36+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
37+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
38+
39+
vaultId := utils.GetEnvSettingWithBlankDefault("kms_vault_ocid")
40+
vaultIdVariableStr := fmt.Sprintf("variable \"vault_id\" { default = \"%s\" }\n", vaultId)
41+
42+
keyId := utils.GetEnvSettingWithBlankDefault("kms_key_ocid")
43+
keyIdVariableStr := fmt.Sprintf("variable \"key_id\" { default = \"%s\" }\n", keyId)
44+
45+
singularDatasourceName := "data.oci_secrets_secretbundle.test_secretbundle"
46+
47+
acctest.SaveConfigContent("", "", "", t)
48+
49+
acctest.ResourceTest(t, nil, []resource.TestStep{
50+
// verify singular datasource
51+
{
52+
Config: config + vaultIdVariableStr + keyIdVariableStr +
53+
acctest.GenerateDataSourceFromRepresentationMap("oci_secrets_secretbundle", "test_secretbundle", acctest.Required, acctest.Create, secretbundleSingularDataSourceRepresentation) +
54+
compartmentIdVariableStr + SecretbundleResourceConfig,
55+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
56+
resource.TestCheckResourceAttrSet(singularDatasourceName, "secret_id"),
57+
58+
resource.TestCheckResourceAttr(singularDatasourceName, "secret_bundle_content.#", "1"),
59+
resource.TestCheckResourceAttr(singularDatasourceName, "stages.#", "2"),
60+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
61+
),
62+
},
63+
})
64+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
11+
12+
"github.com/terraform-providers/terraform-provider-oci/httpreplay"
13+
"github.com/terraform-providers/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/terraform-providers/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
secretbundleVersionDataSourceRepresentation = map[string]interface{}{
20+
"secret_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_vault_secret.test_secret.id}`},
21+
}
22+
23+
SecretbundleVersionResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_vault_secret", "test_secret", acctest.Required, acctest.Create, secretRepresentation)
24+
)
25+
26+
// issue-routing-tag: secrets/default
27+
func TestSecretsSecretbundleVersionResource_basic(t *testing.T) {
28+
httpreplay.SetScenario("TestSecretsSecretbundleVersionResource_basic")
29+
defer httpreplay.SaveScenario()
30+
31+
config := acctest.ProviderTestConfig()
32+
33+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
34+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
35+
36+
vaultId := utils.GetEnvSettingWithBlankDefault("kms_vault_ocid")
37+
vaultIdVariableStr := fmt.Sprintf("variable \"vault_id\" { default = \"%s\" }\n", vaultId)
38+
39+
keyId := utils.GetEnvSettingWithBlankDefault("kms_key_ocid")
40+
keyIdVariableStr := fmt.Sprintf("variable \"key_id\" { default = \"%s\" }\n", keyId)
41+
42+
datasourceName := "data.oci_secrets_secretbundle_versions.test_secretbundle_versions"
43+
44+
acctest.SaveConfigContent("", "", "", t)
45+
46+
acctest.ResourceTest(t, nil, []resource.TestStep{
47+
// verify datasource
48+
{
49+
Config: config + vaultIdVariableStr + keyIdVariableStr +
50+
acctest.GenerateDataSourceFromRepresentationMap("oci_secrets_secretbundle_versions", "test_secretbundle_versions", acctest.Required, acctest.Create, secretbundleVersionDataSourceRepresentation) +
51+
compartmentIdVariableStr + SecretbundleVersionResourceConfig,
52+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
53+
resource.TestCheckResourceAttrSet(datasourceName, "secret_id"),
54+
55+
resource.TestCheckResourceAttrSet(datasourceName, "secret_bundle_versions.#"),
56+
resource.TestCheckResourceAttrSet(datasourceName, "secret_bundle_versions.0.secret_id"),
57+
resource.TestCheckResourceAttr(datasourceName, "secret_bundle_versions.0.stages.#", "2"),
58+
resource.TestCheckResourceAttrSet(datasourceName, "secret_bundle_versions.0.time_created"),
59+
resource.TestCheckResourceAttrSet(datasourceName, "secret_bundle_versions.0.version_number"),
60+
),
61+
},
62+
})
63+
}

internal/provider/register_datasource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ import (
7171
tf_osp_gateway "github.com/terraform-providers/terraform-provider-oci/internal/service/osp_gateway"
7272
tf_resourcemanager "github.com/terraform-providers/terraform-provider-oci/internal/service/resourcemanager"
7373
tf_sch "github.com/terraform-providers/terraform-provider-oci/internal/service/sch"
74+
tf_secrets "github.com/terraform-providers/terraform-provider-oci/internal/service/secrets"
7475
tf_service_catalog "github.com/terraform-providers/terraform-provider-oci/internal/service/service_catalog"
7576
tf_service_manager_proxy "github.com/terraform-providers/terraform-provider-oci/internal/service/service_manager_proxy"
7677
tf_streaming "github.com/terraform-providers/terraform-provider-oci/internal/service/streaming"
@@ -954,6 +955,9 @@ func init() {
954955
// sch service
955956
RegisterDatasource("oci_sch_service_connector", tf_sch.SchServiceConnectorDataSource())
956957
RegisterDatasource("oci_sch_service_connectors", tf_sch.SchServiceConnectorsDataSource())
958+
// secrets service
959+
RegisterDatasource("oci_secrets_secretbundle", tf_secrets.SecretsSecretbundleDataSource())
960+
RegisterDatasource("oci_secrets_secretbundle_versions", tf_secrets.SecretsSecretbundleVersionsDataSource())
957961
// service_catalog service
958962
RegisterDatasource("oci_service_catalog_private_application", tf_service_catalog.ServiceCatalogPrivateApplicationDataSource())
959963
RegisterDatasource("oci_service_catalog_private_application_package", tf_service_catalog.ServiceCatalogPrivateApplicationPackageDataSource())

internal/provider/register_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,7 @@ func init() {
501501
// resourcemanager service
502502
// sch service
503503
RegisterResource("oci_sch_service_connector", tf_sch.SchServiceConnectorResource())
504+
// secrets service
504505
// service_catalog service
505506
RegisterResource("oci_service_catalog_private_application", tf_service_catalog.ServiceCatalogPrivateApplicationResource())
506507
RegisterResource("oci_service_catalog_service_catalog", tf_service_catalog.ServiceCatalogServiceCatalogResource())

0 commit comments

Comments
 (0)