Skip to content

Commit 1d6f67f

Browse files
Bharath Govindappasagarp337
authored andcommitted
Added - Support for Stack Monitoring: Support for Monitoring Templates
1 parent 7f19c91 commit 1d6f67f

File tree

35 files changed

+4197
-9
lines changed

35 files changed

+4197
-9
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
resource "oci_stack_monitoring_monitoring_template_alarm_condition" "test_monitoring_template_alarm_condition_example" {
5+
# Required
6+
condition_type = "FIXED"
7+
conditions {
8+
body = "Garbage collection throughput exceeds the warning threshold value"
9+
query = "GarbageCollectionThroughput[10m].mean() > 0.3"
10+
severity = "WARNING"
11+
}
12+
metric_name = "GarbageCollectionThroughput"
13+
monitoring_template_id = oci_stack_monitoring_monitoring_template.test_monitoring_template_example.id
14+
namespace = "oracle_appmgmt"
15+
resource_type = "ocid1.stackmonitoringresourcetype.apache_tomcat"
16+
}
17+
18+
data "oci_stack_monitoring_monitoring_template_alarm_condition" "test_monitoring_template_alarm_condition_example" {
19+
# Required
20+
alarm_condition_id = oci_stack_monitoring_monitoring_template_alarm_condition.test_monitoring_template_alarm_condition_example.id
21+
monitoring_template_id = oci_stack_monitoring_monitoring_template_alarm_condition.test_monitoring_template_alarm_condition_example.monitoring_template_id
22+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Copyright (c) 2017, 2024, 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+
provider "oci" {
12+
tenancy_ocid = var.tenancy_ocid
13+
user_ocid = var.user_ocid
14+
fingerprint = var.fingerprint
15+
private_key_path = var.private_key_path
16+
region = var.region
17+
}
18+
19+
resource "random_string" "topicname" {
20+
length = 10
21+
special = false
22+
}
23+
24+
resource "oci_ons_notification_topic" "test_notification_topic" {
25+
#Required
26+
compartment_id = var.compartment_ocid
27+
name = random_string.topicname.result
28+
}
29+
30+
resource "oci_stack_monitoring_monitoring_template" "test_monitoring_template_example" {
31+
# Required
32+
compartment_id = var.compartment_ocid
33+
display_name = "MT_MonitoringTemplateTerraformExample"
34+
destinations = [oci_ons_notification_topic.test_notification_topic.id]
35+
message_format = "ONS_OPTIMIZED"
36+
members {
37+
id = "ocid1.stackmonitoringresourcetype.apache_tomcat"
38+
type = "RESOURCE_TYPE"
39+
}
40+
41+
# Optional
42+
description = "Example MT for resource type Apache Tomcat"
43+
}
44+
45+
data "oci_stack_monitoring_monitoring_template" "test_monitoring_template_example" {
46+
# Required
47+
monitoring_template_id = oci_stack_monitoring_monitoring_template.test_monitoring_template_example.id
48+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// Copyright (c) 2017, 2024, 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+
StackMonitoringDefinedMonitoringTemplateDataSourceRepresentation = map[string]interface{}{
20+
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
21+
}
22+
23+
StackMonitoringDefinedMonitoringTemplateResourceConfig = ""
24+
)
25+
26+
// issue-routing-tag: stack_monitoring/default
27+
func TestStackMonitoringDefinedMonitoringTemplateResource_basic(t *testing.T) {
28+
httpreplay.SetScenario("TestStackMonitoringDefinedMonitoringTemplateResource_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+
datasourceName := "data.oci_stack_monitoring_defined_monitoring_templates.test_defined_monitoring_templates"
37+
38+
definedMonitoringTemplatesCount := utils.GetEnvSettingWithBlankDefault("defined_monitoring_templates_count")
39+
40+
acctest.SaveConfigContent("", "", "", t)
41+
42+
acctest.ResourceTest(t, nil, []resource.TestStep{
43+
// Verify datasource
44+
{
45+
Config: config +
46+
acctest.GenerateDataSourceFromRepresentationMap("oci_stack_monitoring_defined_monitoring_templates", "test_defined_monitoring_templates", acctest.Required, acctest.Create, StackMonitoringDefinedMonitoringTemplateDataSourceRepresentation) +
47+
compartmentIdVariableStr + StackMonitoringDefinedMonitoringTemplateResourceConfig,
48+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
49+
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
50+
resource.TestCheckResourceAttrSet(datasourceName, "defined_monitoring_template_collection.#"),
51+
resource.TestCheckResourceAttr(datasourceName, "defined_monitoring_template_collection.0.items.#", definedMonitoringTemplatesCount),
52+
),
53+
},
54+
})
55+
}

internal/integrationtest/stack_monitoring_monitored_resource_type_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ var (
3838

3939
StackMonitoringMonitoredResourceTypeDataSourceRepresentation = map[string]interface{}{
4040
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
41-
"exclude_fields": acctest.Representation{RepType: acctest.Optional, Create: []string{`metricNamespace`}},
42-
"fields": acctest.Representation{RepType: acctest.Optional, Create: []string{`displayName`}},
41+
"exclude_fields": acctest.Representation{RepType: acctest.Optional, Create: []string{`displayName`}},
42+
"fields": acctest.Representation{RepType: acctest.Optional, Create: []string{`metricNamespace`}},
4343
"is_exclude_system_types": acctest.Representation{RepType: acctest.Optional, Create: `false`},
4444
"metric_namespace": acctest.Representation{RepType: acctest.Optional, Create: `terraform_namespace`},
4545
"name": acctest.Representation{RepType: acctest.Optional, Create: `terraform_test_restype`},
@@ -54,7 +54,7 @@ var (
5454
ignoreResourceTypeSensitiveDataRepresentation = map[string]interface{}{
5555
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{
5656
`freeform_tags`, `defined_tags`, `system_tags`,
57-
`compartment_id`,
57+
`compartment_id`, `display_name`, `metadata[0].valid_sub_resource_types`,
5858
`metadata[0].unique_property_sets`, `metadata[0].unique_property_sets[0].properties`}},
5959
}
6060

@@ -79,6 +79,7 @@ var (
7979
"unique_property_sets": acctest.RepresentationGroup{RepType: acctest.Optional, Group: StackMonitoringMonitoredResourceTypeMetadataUniquePropertySetsRepresentation},
8080
"valid_properties_for_create": acctest.Representation{RepType: acctest.Optional, Create: []string{`validPropertiesForCreate`}, Update: []string{`validPropertiesForCreate2`}},
8181
"valid_properties_for_update": acctest.Representation{RepType: acctest.Optional, Create: []string{`validPropertiesForUpdate`}, Update: []string{`validPropertiesForUpdate2`}},
82+
"valid_sub_resource_types": acctest.Representation{RepType: acctest.Optional, Create: []string{`validSubResourceTypes`}, Update: []string{`validSubResourceTypes2`}},
8283
"valid_property_values": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"osType": "Linux,Windows,Solaris", "osVersion": "v6.0,v7.0"}, Update: map[string]string{"prop1": "Linux,Windows,Solaris", "osVersion": "v6.0,v7.0,v8.0"}},
8384
}
8485
StackMonitoringMonitoredResourceTypeMetadataUniquePropertySetsRepresentation = map[string]interface{}{
@@ -149,10 +150,10 @@ func TestStackMonitoringMonitoredResourceTypeResource_basic(t *testing.T) {
149150
resource.TestCheckResourceAttr(resourceName, "metadata.0.unique_property_sets.0.properties.#", "1"),
150151
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_properties_for_create.#", "1"),
151152
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_properties_for_update.#", "1"),
153+
resource.TestCheckResourceAttr(resourceName, "metric_namespace", "terraform_namespace"),
152154
resource.TestCheckResourceAttr(resourceName, "resource_category", "APPLICATION"),
153155
resource.TestCheckResourceAttr(resourceName, "source_type", "SM_MGMT_AGENT_MONITORED"),
154156
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_property_values.%", "2"),
155-
resource.TestCheckResourceAttr(resourceName, "metric_namespace", "terraform_namespace"),
156157

157158
func(s *terraform.State) (err error) {
158159
resId, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -174,7 +175,6 @@ func TestStackMonitoringMonitoredResourceTypeResource_basic(t *testing.T) {
174175
resource.TestCheckResourceAttr(resourceName, "compartment_id", tenantId),
175176
resource.TestCheckResourceAttr(resourceName, "name", "terraform_test_restype"),
176177
resource.TestCheckResourceAttr(resourceName, "description", "description2"),
177-
resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
178178
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
179179
resource.TestCheckResourceAttrSet(resourceName, "id"),
180180
resource.TestCheckResourceAttr(resourceName, "metadata.#", "1"),
@@ -185,6 +185,7 @@ func TestStackMonitoringMonitoredResourceTypeResource_basic(t *testing.T) {
185185
resource.TestCheckResourceAttr(resourceName, "metadata.0.unique_property_sets.0.properties.#", "1"),
186186
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_properties_for_create.#", "1"),
187187
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_properties_for_update.#", "1"),
188+
resource.TestCheckResourceAttr(resourceName, "metric_namespace", "terraform_namespace"),
188189
resource.TestCheckResourceAttr(resourceName, "resource_category", "APPLICATION"),
189190
resource.TestCheckResourceAttr(resourceName, "source_type", "SM_MGMT_AGENT_MONITORED"),
190191
resource.TestCheckResourceAttr(resourceName, "metadata.0.valid_property_values.%", "2"),
@@ -228,7 +229,6 @@ func TestStackMonitoringMonitoredResourceTypeResource_basic(t *testing.T) {
228229

229230
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", tenantId),
230231
resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"),
231-
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"),
232232
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
233233
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
234234
resource.TestCheckResourceAttr(singularDatasourceName, "metadata.#", "1"),

0 commit comments

Comments
 (0)