Skip to content

Commit da87cb7

Browse files
afedorchalexng-canuck
authored andcommitted
Allow customer to specify Fault Domain for BM/VM
1 parent f7cfae5 commit da87cb7

12 files changed

+80
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Support for Monitoring service
66
- Adding ability to disable monitoring in instances
77
- Adding support for Metrics-based Dynamic Auto-scaling
8+
- Support for listing and specifying Fault Domains in Database resources
89

910
## 3.16.0 (February 26, 2019)
1011

oci/database_db_node_data_source.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ func DatabaseDbNodeDataSource() *schema.Resource {
2626
Type: schema.TypeString,
2727
Computed: true,
2828
},
29+
"fault_domain": {
30+
Type: schema.TypeString,
31+
Computed: true,
32+
},
2933
"hostname": {
3034
Type: schema.TypeString,
3135
Computed: true,
@@ -102,6 +106,10 @@ func (s *DatabaseDbNodeDataSourceCrud) SetData() error {
102106
s.D.Set("db_system_id", *s.Res.DbSystemId)
103107
}
104108

109+
if s.Res.FaultDomain != nil {
110+
s.D.Set("fault_domain", *s.Res.FaultDomain)
111+
}
112+
105113
if s.Res.Hostname != nil {
106114
s.D.Set("hostname", *s.Res.Hostname)
107115
}

oci/database_db_nodes_data_source.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ func (s *DatabaseDbNodesDataSourceCrud) SetData() error {
130130
dbNode["backup_vnic_id"] = *r.BackupVnicId
131131
}
132132

133+
if r.FaultDomain != nil {
134+
dbNode["fault_domain"] = *r.FaultDomain
135+
}
136+
133137
if r.Hostname != nil {
134138
dbNode["hostname"] = *r.Hostname
135139
}

oci/database_db_system_resource.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,16 @@ func DatabaseDbSystemResource() *schema.Resource {
243243
Computed: true,
244244
ForceNew: true,
245245
},
246+
"fault_domains": {
247+
Type: schema.TypeList,
248+
Optional: true,
249+
Computed: true,
250+
ForceNew: true,
251+
Elem: &schema.Schema{
252+
Type: schema.TypeString,
253+
DiffSuppressFunc: EqualIgnoreCaseSuppressDiff,
254+
},
255+
},
246256
"freeform_tags": {
247257
Type: schema.TypeMap,
248258
Optional: true,
@@ -559,6 +569,8 @@ func (s *DatabaseDbSystemResourceCrud) SetData() error {
559569
s.D.Set("domain", *s.Res.Domain)
560570
}
561571

572+
s.D.Set("fault_domains", s.Res.FaultDomains)
573+
562574
s.D.Set("freeform_tags", s.Res.FreeformTags)
563575

564576
// @codegen: Do not set hostname. Refreshing hostname causes undesirable diffs because the service may add a suffix
@@ -925,6 +937,17 @@ func (s *DatabaseDbSystemResourceCrud) populateTopLevelPolymorphicLaunchDbSystem
925937
tmp := domain.(string)
926938
details.Domain = &tmp
927939
}
940+
details.FaultDomains = []string{}
941+
if faultDomains, ok := s.D.GetOkExists("fault_domains"); ok {
942+
interfaces := faultDomains.([]interface{})
943+
tmp := make([]string, len(interfaces))
944+
for i := range interfaces {
945+
if interfaces[i] != nil {
946+
tmp[i] = interfaces[i].(string)
947+
}
948+
}
949+
details.FaultDomains = tmp
950+
}
928951
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
929952
details.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
930953
}
@@ -1024,6 +1047,17 @@ func (s *DatabaseDbSystemResourceCrud) populateTopLevelPolymorphicLaunchDbSystem
10241047
tmp := domain.(string)
10251048
details.Domain = &tmp
10261049
}
1050+
details.FaultDomains = []string{}
1051+
if faultDomains, ok := s.D.GetOkExists("fault_domains"); ok {
1052+
interfaces := faultDomains.([]interface{})
1053+
tmp := make([]string, len(interfaces))
1054+
for i := range interfaces {
1055+
if interfaces[i] != nil {
1056+
tmp[i] = interfaces[i].(string)
1057+
}
1058+
}
1059+
details.FaultDomains = tmp
1060+
}
10271061
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
10281062
details.FreeformTags = objectMapToStringMap(freeformTags.(map[string]interface{}))
10291063
}

oci/database_db_system_resource_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_basi
289289
data_storage_size_in_gb = "256"
290290
license_model = "LICENSE_INCLUDED"
291291
node_count = "1"
292+
fault_domains = ["FAULT-DOMAIN-1"]
292293
db_home {
293294
db_version = "12.1.0.2"
294295
database {
@@ -316,6 +317,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_basi
316317
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_size_in_gb", "256"),
317318
resource.TestCheckResourceAttr(s.ResourceName, "license_model", "LICENSE_INCLUDED"),
318319
resource.TestCheckResourceAttr(s.ResourceName, "node_count", "1"),
320+
resource.TestCheckResourceAttr(s.ResourceName, "fault_domains.#", "1"),
319321
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.db_version", "12.1.0.2"),
320322
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.display_name", ""),
321323
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.database.0.admin_password", "BEstrO0ng_#11"),
@@ -359,6 +361,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allB
359361
data_storage_size_in_gb = "256"
360362
license_model = "LICENSE_INCLUDED"
361363
node_count = "1"
364+
fault_domains = ["FAULT-DOMAIN-1"]
362365
db_home {
363366
db_version = "12.1.0.2"
364367
display_name = "-tf-db-home"
@@ -434,6 +437,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allB
434437
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_size_in_gb", "256"),
435438
resource.TestCheckResourceAttr(s.ResourceName, "license_model", "LICENSE_INCLUDED"),
436439
resource.TestCheckResourceAttr(s.ResourceName, "node_count", "1"),
440+
resource.TestCheckResourceAttr(s.ResourceName, "fault_domains.#", "1"),
437441
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.db_version", "12.1.0.2"),
438442
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.display_name", "-tf-db-home"),
439443
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.database.0.admin_password", "BEstrO0ng_#11"),
@@ -479,6 +483,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allB
479483

480484
resource.TestCheckResourceAttrSet("data.oci_database_db_systems.t", "db_systems.0.data_storage_size_in_gb"),
481485
resource.TestCheckResourceAttrSet("data.oci_database_db_systems.t", "db_systems.0.node_count"),
486+
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.fault_domains.#", "1"),
482487
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.state", string(database.DbSystemLifecycleStateAvailable)),
483488

484489
// DB Systems nested DB Home fields are not supported on the data source, so tests like below wont work if/until fetching the sub resource is implemented
@@ -556,6 +561,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allB
556561
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.id"),
557562
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.state"),
558563
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.time_created"),
564+
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.fault_domain"),
559565
//resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.vnic_id"),
560566
//resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.backup_vnic_id"),
561567
//resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.software_storage_size_in_gb"),
@@ -567,6 +573,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allB
567573
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "id"),
568574
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "state"),
569575
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "time_created"),
576+
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "fault_domain"),
570577
//resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "vnic_id"),
571578
//resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "backup_vnic_id"),
572579
//resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "software_storage_size_in_gb"),
@@ -604,6 +611,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
604611
data_storage_size_in_gb = "256"
605612
license_model = "LICENSE_INCLUDED"
606613
node_count = "1"
614+
fault_domains = ["FAULT-DOMAIN-1"]
607615
db_home {
608616
db_version = "12.1.0.2"
609617
display_name = "-tf-db-home"
@@ -682,6 +690,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
682690
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_size_in_gb", "256"),
683691
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_percentage", "80"),
684692
resource.TestCheckResourceAttr(s.ResourceName, "node_count", "1"),
693+
resource.TestCheckResourceAttr(s.ResourceName, "fault_domains.#", "1"),
685694
resource.TestCheckResourceAttr(s.ResourceName, "reco_storage_size_in_gb", "256"),
686695
resource.TestCheckResourceAttr(s.ResourceName, "listener_port", "1521"),
687696
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.db_version", "12.1.0.2"),
@@ -718,6 +727,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
718727
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.data_storage_size_in_gb", "256"),
719728
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.data_storage_percentage", "80"),
720729
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.node_count", "1"),
730+
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.fault_domains.#", "1"),
721731
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.reco_storage_size_in_gb", "256"),
722732
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.listener_port", "1521"),
723733
resource.TestCheckResourceAttr("data.oci_database_db_systems.t", "db_systems.0.defined_tags.example-tag-namespace-all.example-tag", "originalValue"),
@@ -812,6 +822,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
812822
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.id"),
813823
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.state"),
814824
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.time_created"),
825+
resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.fault_domain"),
815826
//resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.vnic_id"), // believe this is null when using FAKEHOSTSERIAL header
816827
//resource.TestCheckResourceAttrSet("data.oci_database_db_nodes.t", "db_nodes.0.backup_vnic_id"),
817828
resource.TestCheckResourceAttr("data.oci_database_db_nodes.t", "db_nodes.0.software_storage_size_in_gb", "200"),
@@ -823,6 +834,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
823834
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "id"),
824835
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "state"),
825836
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "time_created"),
837+
resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "fault_domain"),
826838
//resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "vnic_id"), // believe this is null when using FAKEHOSTSERIAL header
827839
//resource.TestCheckResourceAttrSet("data.oci_database_db_node.t", "backup_vnic_id"),
828840
resource.TestCheckResourceAttr("data.oci_database_db_node.t", "software_storage_size_in_gb", "200"),
@@ -851,6 +863,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
851863
data_storage_size_in_gb = "512"
852864
license_model = "LICENSE_INCLUDED"
853865
node_count = "1"
866+
fault_domains = ["FAULT-DOMAIN-1"]
854867
db_home {
855868
db_version = "12.1.0.2"
856869
display_name = "-tf-db-home"
@@ -929,6 +942,7 @@ func (s *ResourceDatabaseDBSystemTestSuite) TestAccResourceDatabaseDBSystem_allV
929942
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_size_in_gb", "512"),
930943
resource.TestCheckResourceAttr(s.ResourceName, "data_storage_percentage", "80"),
931944
resource.TestCheckResourceAttr(s.ResourceName, "node_count", "1"),
945+
resource.TestCheckResourceAttr(s.ResourceName, "fault_domains.#", "1"),
932946
resource.TestCheckResourceAttr(s.ResourceName, "reco_storage_size_in_gb", "256"),
933947
resource.TestCheckResourceAttr(s.ResourceName, "listener_port", "1521"),
934948
resource.TestCheckResourceAttr(s.ResourceName, "db_home.0.db_version", "12.1.0.2"),

oci/database_db_systems_data_source.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ func (s *DatabaseDbSystemsDataSourceCrud) SetData() error {
184184
dbSystem["domain"] = *r.Domain
185185
}
186186

187+
dbSystem["fault_domains"] = r.FaultDomains
188+
187189
dbSystem["freeform_tags"] = r.FreeformTags
188190

189191
if r.Hostname != nil {

website/docs/d/database_db_homes.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: |-
99
# Data Source: oci_database_db_homes
1010
This data source provides the list of Db Homes in Oracle Cloud Infrastructure Database service.
1111

12-
Gets a list of database homes in the specified DB system and compartment. A database home is a directory where Oracle database software is installed.
12+
Gets a list of database homes in the specified DB system and compartment. A database home is a directory where Oracle Database software is installed.
1313

1414

1515
## Example Usage

website/docs/d/database_db_node.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ The following attributes are exported:
3333

3434
* `backup_vnic_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the backup VNIC.
3535
* `db_system_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.
36+
* `fault_domain` - The name of the fault domain the instance is contained in.
3637
* `hostname` - The host name for the database node.
3738
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database node.
3839
* `software_storage_size_in_gb` - The size (in GB) of the block storage volume allocation for the DB system. This attribute applies only for virtual machine DB systems.

website/docs/d/database_db_nodes.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ The following attributes are exported:
4646

4747
* `backup_vnic_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the backup VNIC.
4848
* `db_system_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.
49+
* `fault_domain` - The name of the fault domain the instance is contained in.
4950
* `hostname` - The host name for the database node.
5051
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database node.
5152
* `software_storage_size_in_gb` - The size (in GB) of the block storage volume allocation for the DB system. This attribute applies only for virtual machine DB systems.

website/docs/d/database_db_systems.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ The following attributes are exported:
6363
* `disk_redundancy` - The type of redundancy configured for the DB system. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.
6464
* `display_name` - The user-friendly name for the DB system. The name does not have to be unique.
6565
* `domain` - The domain name for the DB system.
66+
* `fault_domains` - List of the fault domains in which this DB system is provisioned.
6667
* `freeform_tags` - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
6768
* `hostname` - The hostname for the DB system.
6869
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.

0 commit comments

Comments
 (0)