Skip to content

Commit 1aac1ae

Browse files
Terraform Team Automationjotruon
authored andcommitted
Added - Support for Operations Insights : Customizable configuration
1 parent 08135b0 commit 1aac1ae

15 files changed

+3004
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_ocid" {}
10+
11+
variable "opsi_configuration_config_item_custom_status" {
12+
default = ["customized"]
13+
}
14+
15+
variable "opsi_configuration_config_item_field" {
16+
default = ["metadata", "name", "value", "defaultValue"]
17+
}
18+
19+
variable "opsi_effective_configuration_config_item_field" {
20+
default = ["metadata", "name", "value", "defaultValue", "valueSourceConfig"]
21+
}
22+
23+
variable "opsi_configuration_config_items_config_item_type" {
24+
default = "BASIC"
25+
}
26+
27+
variable "opsi_configuration_config_items_name1" {
28+
default = "dbHighCpuThreshold"
29+
}
30+
31+
variable "opsi_configuration_config_items_name2" {
32+
default = "dbHighMemoryThreshold"
33+
}
34+
35+
variable "opsi_configuration_config_items_value1" {
36+
default = "83"
37+
}
38+
39+
variable "opsi_configuration_config_items_value2" {
40+
default = "72"
41+
}
42+
43+
variable "opsi_configuration_config_items_applicable_context" {
44+
default = ["DB_CAPACITY_PLANNING"]
45+
}
46+
47+
variable "opsi_configuration_defined_tags_value" {
48+
default = "value"
49+
}
50+
51+
variable "opsi_configuration_description" {
52+
default = "description"
53+
}
54+
55+
variable "opsi_configuration_display_name" {
56+
default = "displayName"
57+
}
58+
59+
variable "opsi_configuration_freeform_tags" {
60+
default = { "bar-key" = "value" }
61+
}
62+
63+
variable "opsi_configuration_opsi_config_field" {
64+
default = ["configItems"]
65+
}
66+
67+
variable "opsi_configuration_opsi_config_type_arr" {
68+
default = ["UX_CONFIGURATION"]
69+
}
70+
71+
variable "opsi_configuration_opsi_config_type" {
72+
default = "UX_CONFIGURATION"
73+
}
74+
75+
variable "opsi_configuration_state" {
76+
default = ["ACTIVE"]
77+
}
78+
79+
variable "opsi_configuration_system_tags" {
80+
default = "value"
81+
}
82+
83+
provider "oci" {
84+
tenancy_ocid = var.tenancy_ocid
85+
user_ocid = var.user_ocid
86+
fingerprint = var.fingerprint
87+
private_key_path = var.private_key_path
88+
region = var.region
89+
}
90+
91+
// Create custom Opsi configuration
92+
resource "oci_opsi_opsi_configuration" "test_opsi_configuration" {
93+
opsi_config_type = var.opsi_configuration_opsi_config_type
94+
compartment_id = var.compartment_ocid
95+
config_item_custom_status = var.opsi_configuration_config_item_custom_status
96+
config_item_field = var.opsi_configuration_config_item_field
97+
config_items {
98+
config_item_type = var.opsi_configuration_config_items_config_item_type
99+
name = var.opsi_configuration_config_items_name1
100+
value = var.opsi_configuration_config_items_value1
101+
}
102+
config_items {
103+
config_item_type = var.opsi_configuration_config_items_config_item_type
104+
name = var.opsi_configuration_config_items_name2
105+
value = var.opsi_configuration_config_items_value2
106+
}
107+
config_items_applicable_context = var.opsi_configuration_config_items_applicable_context
108+
description = var.opsi_configuration_description
109+
display_name = var.opsi_configuration_display_name
110+
opsi_config_field = var.opsi_configuration_opsi_config_field
111+
}
112+
113+
// List opsi configuration in compartment
114+
data "oci_opsi_opsi_configurations" "test_opsi_configurations" {
115+
compartment_id = var.compartment_ocid
116+
display_name = var.opsi_configuration_display_name
117+
opsi_config_type = var.opsi_configuration_opsi_config_type_arr
118+
state = var.opsi_configuration_state
119+
}
120+
121+
// Get opsi configuration by id
122+
data "oci_opsi_opsi_configuration" "test_opsi_configuration" {
123+
opsi_configuration_id = oci_opsi_opsi_configuration.test_opsi_configuration.id
124+
config_item_custom_status = var.opsi_configuration_config_item_custom_status
125+
config_item_field = var.opsi_configuration_config_item_field
126+
opsi_config_field = var.opsi_configuration_opsi_config_field
127+
config_items_applicable_context = var.opsi_configuration_config_items_applicable_context
128+
}
129+
130+
// Get effective opsi configuration for a compartment
131+
data "oci_opsi_opsi_configuration_configuration_item" "test_opsi_configuration_configuration_item" {
132+
compartment_id = var.compartment_ocid
133+
config_item_field = var.opsi_effective_configuration_config_item_field
134+
config_items_applicable_context = var.opsi_configuration_config_items_applicable_context
135+
opsi_config_type = var.opsi_configuration_opsi_config_type
136+
}
137+
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/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+
OpsiOpsiConfigurationConfigurationItemSingularDataSourceRepresentation = map[string]interface{}{
20+
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
21+
"config_item_field": acctest.Representation{RepType: acctest.Required, Create: []string{`metadata`, `name`, `value`, `defaultValue`, `valueSourceConfig`}},
22+
"config_items_applicable_context": acctest.Representation{RepType: acctest.Required, Create: []string{`DB_CAPACITY_PLANNING`}},
23+
"name": acctest.Representation{RepType: acctest.Optional, Create: `name`},
24+
"opsi_config_type": acctest.Representation{RepType: acctest.Required, Create: `UX_CONFIGURATION`},
25+
}
26+
27+
OpsiOpsiConfigurationConfigurationItemResourceConfig = ""
28+
)
29+
30+
// issue-routing-tag: opsi/default
31+
func TestOpsiOpsiConfigurationConfigurationItemResource_basic(t *testing.T) {
32+
httpreplay.SetScenario("TestOpsiOpsiConfigurationConfigurationItemResource_basic")
33+
defer httpreplay.SaveScenario()
34+
35+
config := acctest.ProviderTestConfig()
36+
37+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
38+
39+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
40+
41+
singularDatasourceName := "data.oci_opsi_opsi_configuration_configuration_item.test_opsi_configuration_configuration_item"
42+
43+
acctest.SaveConfigContent("", "", "", t)
44+
45+
acctest.ResourceTest(t, nil, []resource.TestStep{
46+
// verify singular datasource
47+
{
48+
Config: config +
49+
acctest.GenerateDataSourceFromRepresentationMap("oci_opsi_opsi_configuration_configuration_item", "test_opsi_configuration_configuration_item", acctest.Required, acctest.Create, OpsiOpsiConfigurationConfigurationItemSingularDataSourceRepresentation) +
50+
compartmentIdVariableStr + OpsiOpsiConfigurationConfigurationItemResourceConfig,
51+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
52+
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
53+
resource.TestCheckResourceAttr(singularDatasourceName, "config_item_field.#", "5"),
54+
resource.TestCheckResourceAttr(singularDatasourceName, "config_items_applicable_context.#", "1"),
55+
resource.TestCheckResourceAttrSet(singularDatasourceName, "config_items.0.name"),
56+
resource.TestCheckResourceAttrSet(singularDatasourceName, "config_items.0.value"),
57+
resource.TestCheckResourceAttrSet(singularDatasourceName, "config_items.0.default_value"),
58+
resource.TestCheckResourceAttrSet(singularDatasourceName, "config_items.0.value_source_config"),
59+
resource.TestCheckResourceAttr(singularDatasourceName, "opsi_config_type", "UX_CONFIGURATION"),
60+
),
61+
},
62+
})
63+
}

0 commit comments

Comments
 (0)