Skip to content

Commit eed4283

Browse files
Ravi Tandonkilokahn
authored andcommitted
Added Wallet support in AutonomousDataWarehouse and AutonomousDatabase
1 parent 9685d7c commit eed4283

File tree

36 files changed

+589
-31
lines changed

36 files changed

+589
-31
lines changed

docs/examples/database/adw/autonomous_data_warehouse.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,7 @@ output "autonomous_data_warehouse_admin_password" {
3333
output "autonomous_data_warehouses" {
3434
value = "${data.oci_database_autonomous_data_warehouses.autonomous_data_warehouses.autonomous_data_warehouses}"
3535
}
36+
37+
output "parallel_connection_string" {
38+
value = ["${lookup(oci_database_autonomous_data_warehouse.autonomous_data_warehouse.connection_strings.0.all_connection_strings, "PARALLEL", "Unavailable")}"]
39+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
resource "random_string" "wallet_password" {
2+
length = 16
3+
special = true
4+
}
5+
6+
data "oci_database_autonomous_data_warehouse_wallet" "autonomous_data_warehouse_wallet" {
7+
#Required
8+
autonomous_data_warehouse_id = "${oci_database_autonomous_data_warehouse.autonomous_data_warehouse.id}"
9+
password = "${random_string.wallet_password.result}"
10+
}
11+
12+
resource "local_file" "autonomous_data_warehouse_wallet_file" {
13+
content = "${data.oci_database_autonomous_data_warehouse_wallet.autonomous_data_warehouse_wallet.content}"
14+
filename = "${path.module}/autonomous_data_warehouse_wallet.zip"
15+
}
16+
17+
output "wallet_password" {
18+
value = ["${random_string.wallet_password.result}"]
19+
}

docs/examples/database/atp/autonomous_database.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ output "autonomous_database_admin_password" {
3232
output "autonomous_databases" {
3333
value = "${data.oci_database_autonomous_databases.autonomous_databases.autonomous_databases}"
3434
}
35+
36+
output "parallel_connection_string" {
37+
value = ["${lookup(oci_database_autonomous_database.autonomous_database.connection_strings.0.all_connection_strings, "PARALLEL", "Unavailable")}"]
38+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
resource "random_string" "wallet_password" {
2+
length = 16
3+
special = true
4+
}
5+
6+
data "oci_database_autonomous_database_wallet" "autonomous_database_wallet" {
7+
#Required
8+
autonomous_database_id = "${oci_database_autonomous_database.autonomous_database.id}"
9+
password = "${random_string.wallet_password.result}"
10+
}
11+
12+
resource "local_file" "autonomous_database_wallet_file" {
13+
content = "${data.oci_database_autonomous_database_wallet.autonomous_database_wallet.content}"
14+
filename = "${path.module}/autonomous_database_wallet.zip"
15+
}
16+
17+
output "wallet_password" {
18+
value = ["${random_string.wallet_password.result}"]
19+
}

oci/core_fast_connect_provider_service_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ data "oci_core_fast_connect_provider_services" "test_fast_connect_provider_servi
5252
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.id"),
5353
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.private_peering_bgp_management"),
5454
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.provider_name"),
55-
//resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.provider_service_name"),
55+
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.provider_service_name"),
5656
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.public_peering_bgp_management"),
5757
resource.TestCheckResourceAttrSet(datasourceName, "fast_connect_provider_services.0.type"),
5858
),
@@ -77,7 +77,7 @@ data "oci_core_fast_connect_provider_service" "test_fast_connect_provider_servic
7777
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
7878
resource.TestCheckResourceAttrSet(singularDatasourceName, "private_peering_bgp_management"),
7979
resource.TestCheckResourceAttrSet(singularDatasourceName, "provider_name"),
80-
//resource.TestCheckResourceAttr(singularDatasourceName, "provider_service_name", "providerServiceName"),
80+
resource.TestCheckResourceAttrSet(singularDatasourceName, "provider_service_name"),
8181
resource.TestCheckResourceAttrSet(singularDatasourceName, "public_peering_bgp_management"),
8282
resource.TestCheckResourceAttrSet(singularDatasourceName, "supported_virtual_circuit_types.#"),
8383
resource.TestCheckResourceAttrSet(singularDatasourceName, "type"),

oci/database_autonomous_data_warehouse_backup_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ func TestDatabaseAutonomousDataWarehouseBackupResource_basic(t *testing.T) {
3737
datasourceName := "data.oci_database_autonomous_data_warehouse_backups.test_autonomous_data_warehouse_backups"
3838
singularDatasourceName := "data.oci_database_autonomous_data_warehouse_backup.test_autonomous_data_warehouse_backup"
3939

40+
testResourceName := GenerateTestResourceName("adwdb1", 14)
41+
setEnvSetting("TF_VAR_autonomous_data_warehouse_db_name", testResourceName)
42+
4043
resource.Test(t, resource.TestCase{
4144
PreCheck: func() { testAccPreCheck(t) },
4245
Providers: map[string]terraform.ResourceProvider{

oci/database_autonomous_data_warehouse_data_source.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ func AutonomousDataWarehouseDataSource() *schema.Resource {
3232
// Optional
3333

3434
// Computed
35+
"all_connection_strings": {
36+
Type: schema.TypeMap,
37+
Computed: true,
38+
Elem: schema.TypeString,
39+
},
3540
"high": {
3641
Type: schema.TypeString,
3742
Computed: true,
@@ -59,6 +64,10 @@ func AutonomousDataWarehouseDataSource() *schema.Resource {
5964
Type: schema.TypeString,
6065
Computed: true,
6166
},
67+
"db_version": {
68+
Type: schema.TypeString,
69+
Computed: true,
70+
},
6271
"defined_tags": {
6372
Type: schema.TypeMap,
6473
Computed: true,
@@ -163,6 +172,10 @@ func (s *AutonomousDataWarehouseDataSourceCrud) SetData() error {
163172
s.D.Set("db_name", *s.Res.DbName)
164173
}
165174

175+
if s.Res.DbVersion != nil {
176+
s.D.Set("db_version", *s.Res.DbVersion)
177+
}
178+
166179
if s.Res.DefinedTags != nil {
167180
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
168181
}

oci/database_autonomous_data_warehouse_resource.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ func AutonomousDataWarehouseResource() *schema.Resource {
8585
// Optional
8686

8787
// Computed
88+
"all_connection_strings": {
89+
Type: schema.TypeMap,
90+
Computed: true,
91+
Elem: schema.TypeString,
92+
},
8893
"high": {
8994
Type: schema.TypeString,
9095
Computed: true,
@@ -100,6 +105,10 @@ func AutonomousDataWarehouseResource() *schema.Resource {
100105
},
101106
},
102107
},
108+
"db_version": {
109+
Type: schema.TypeString,
110+
Computed: true,
111+
},
103112
"lifecycle_details": {
104113
Type: schema.TypeString,
105114
Computed: true,
@@ -364,6 +373,10 @@ func (s *AutonomousDataWarehouseResourceCrud) SetData() error {
364373
s.D.Set("db_name", *s.Res.DbName)
365374
}
366375

376+
if s.Res.DbVersion != nil {
377+
s.D.Set("db_version", *s.Res.DbVersion)
378+
}
379+
367380
if s.Res.DefinedTags != nil {
368381
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
369382
}
@@ -396,6 +409,8 @@ func (s *AutonomousDataWarehouseResourceCrud) SetData() error {
396409
func AutonomousDataWarehouseConnectionStringsToMap(obj *oci_database.AutonomousDataWarehouseConnectionStrings) map[string]interface{} {
397410
result := map[string]interface{}{}
398411

412+
result["all_connection_strings"] = obj.AllConnectionStrings
413+
399414
if obj.High != nil {
400415
result["high"] = string(*obj.High)
401416
}

oci/database_autonomous_data_warehouse_test.go

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ func TestDatabaseAutonomousDataWarehouseResource_basic(t *testing.T) {
6868
datasourceName := "data.oci_database_autonomous_data_warehouses.test_autonomous_data_warehouses"
6969
singularDatasourceName := "data.oci_database_autonomous_data_warehouse.test_autonomous_data_warehouse"
7070

71+
testResourceName := GenerateTestResourceName("adwdb1", 14)
72+
setEnvSetting("TF_VAR_autonomous_data_warehouse_db_name", testResourceName)
73+
7174
var resId, resId2 string
7275

7376
resource.Test(t, resource.TestCase{
@@ -85,7 +88,7 @@ func TestDatabaseAutonomousDataWarehouseResource_basic(t *testing.T) {
8588
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
8689
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
8790
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
88-
resource.TestCheckResourceAttr(resourceName, "db_name", "adwdb1"),
91+
resource.TestCheckResourceAttr(resourceName, "db_name", testResourceName),
8992

9093
func(s *terraform.State) (err error) {
9194
resId, err = fromInstanceState(s, resourceName, "id")
@@ -106,7 +109,7 @@ func TestDatabaseAutonomousDataWarehouseResource_basic(t *testing.T) {
106109
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
107110
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
108111
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
109-
resource.TestCheckResourceAttr(resourceName, "db_name", "adwdb1"),
112+
resource.TestCheckResourceAttr(resourceName, "db_name", testResourceName),
110113
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
111114
resource.TestCheckResourceAttr(resourceName, "display_name", "example_autonomous_data_warehouse"),
112115
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
@@ -140,7 +143,7 @@ variable "autonomous_data_warehouse_state" { default = "AVAILABLE" }
140143
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
141144
resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"),
142145
resource.TestCheckResourceAttr(resourceName, "data_storage_size_in_tbs", "1"),
143-
resource.TestCheckResourceAttr(resourceName, "db_name", "adwdb1"),
146+
resource.TestCheckResourceAttr(resourceName, "db_name", testResourceName),
144147
resource.TestCheckResourceAttr(resourceName, "defined_tags.%", "1"),
145148
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
146149
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
@@ -193,7 +196,7 @@ data "oci_database_autonomous_data_warehouses" "test_autonomous_data_warehouses"
193196
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.compartment_id", compartmentId),
194197
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.cpu_core_count", "1"),
195198
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.data_storage_size_in_tbs", "1"),
196-
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.db_name", "adwdb1"),
199+
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.db_name", testResourceName),
197200
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.defined_tags.%", "1"),
198201
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.display_name", "displayName2"),
199202
resource.TestCheckResourceAttr(datasourceName, "autonomous_data_warehouses.0.freeform_tags.%", "1"),
@@ -224,15 +227,23 @@ data "oci_database_autonomous_data_warehouse" "test_autonomous_data_warehouse" {
224227
resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_data_warehouse_id"),
225228

226229
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
230+
resource.TestCheckResourceAttr(singularDatasourceName, "connection_strings.#", "1"),
231+
resource.TestCheckResourceAttr(singularDatasourceName, "connection_strings.0.all_connection_strings.%", "4"),
232+
resource.TestCheckResourceAttrSet(singularDatasourceName, "connection_strings.0.high"),
233+
resource.TestCheckResourceAttrSet(singularDatasourceName, "connection_strings.0.low"),
234+
resource.TestCheckResourceAttrSet(singularDatasourceName, "connection_strings.0.medium"),
227235
resource.TestCheckResourceAttr(singularDatasourceName, "cpu_core_count", "1"),
228236
resource.TestCheckResourceAttr(singularDatasourceName, "data_storage_size_in_tbs", "1"),
229-
resource.TestCheckResourceAttr(singularDatasourceName, "db_name", "adwdb1"),
237+
resource.TestCheckResourceAttr(singularDatasourceName, "db_name", testResourceName),
238+
resource.TestCheckResourceAttrSet(singularDatasourceName, "db_version"),
230239
resource.TestCheckResourceAttr(singularDatasourceName, "defined_tags.%", "1"),
231240
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"),
232241
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
233242
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
234243
resource.TestCheckResourceAttr(singularDatasourceName, "license_model", "LICENSE_INCLUDED"),
235-
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
244+
resource.TestCheckResourceAttrSet(singularDatasourceName, "lifecycle_details"),
245+
resource.TestCheckResourceAttr(singularDatasourceName, "state", "AVAILABLE"),
246+
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
236247
),
237248
},
238249
// remove singular datasource from previous step so that it doesn't conflict with import tests
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
2+
3+
package provider
4+
5+
import (
6+
"context"
7+
"io/ioutil"
8+
9+
"github.com/hashicorp/terraform/helper/schema"
10+
oci_database "github.com/oracle/oci-go-sdk/database"
11+
)
12+
13+
func AutonomousDataWarehouseWalletDataSource() *schema.Resource {
14+
return &schema.Resource{
15+
Read: readSingularAutonomousDataWarehouseWallet,
16+
Schema: map[string]*schema.Schema{
17+
// Required
18+
"autonomous_data_warehouse_id": {
19+
Type: schema.TypeString,
20+
Required: true,
21+
},
22+
"password": {
23+
Type: schema.TypeString,
24+
Required: true,
25+
Sensitive: true,
26+
},
27+
28+
// Computed
29+
"content": {
30+
Type: schema.TypeString,
31+
Computed: true,
32+
},
33+
},
34+
}
35+
}
36+
37+
func readSingularAutonomousDataWarehouseWallet(d *schema.ResourceData, m interface{}) error {
38+
sync := &AutonomousDataWarehouseWalletDataSourceCrud{}
39+
sync.D = d
40+
sync.Client = m.(*OracleClients).databaseClient
41+
42+
return ReadResource(sync)
43+
}
44+
45+
type AutonomousDataWarehouseWalletDataSourceCrud struct {
46+
D *schema.ResourceData
47+
Client *oci_database.DatabaseClient
48+
Res *[]byte
49+
}
50+
51+
func (s *AutonomousDataWarehouseWalletDataSourceCrud) VoidState() {
52+
s.D.SetId("")
53+
}
54+
55+
func (s *AutonomousDataWarehouseWalletDataSourceCrud) Get() error {
56+
request := oci_database.GenerateAutonomousDataWarehouseWalletRequest{}
57+
58+
if autonomousDataWarehouseId, ok := s.D.GetOkExists("autonomous_data_warehouse_id"); ok {
59+
tmp := autonomousDataWarehouseId.(string)
60+
request.AutonomousDataWarehouseId = &tmp
61+
}
62+
63+
if password, ok := s.D.GetOkExists("password"); ok {
64+
tmp := password.(string)
65+
request.Password = &tmp
66+
}
67+
68+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "database")
69+
70+
response, err := s.Client.GenerateAutonomousDataWarehouseWallet(context.Background(), request)
71+
if err != nil {
72+
return err
73+
}
74+
75+
if response.Content != nil {
76+
defer response.Content.Close()
77+
if contentBytes, err := ioutil.ReadAll(response.Content); err == nil {
78+
s.Res = &contentBytes
79+
} else {
80+
return err
81+
}
82+
}
83+
84+
return nil
85+
}
86+
87+
func (s *AutonomousDataWarehouseWalletDataSourceCrud) SetData() error {
88+
if s.Res == nil {
89+
return nil
90+
}
91+
92+
s.D.SetId(GenerateDataSourceID())
93+
94+
s.D.Set("content", string(*s.Res))
95+
96+
return nil
97+
}

0 commit comments

Comments
 (0)