Skip to content

Commit 0c10b8a

Browse files
Support for Unified agent - Added to logging
Clean up
1 parent a5ee223 commit 0c10b8a

14 files changed

+3989
-0
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 publisher maps for service connector
66
- Support to attach and detach instances to `oci_core_instance_pool`
77
- Support for GoldenGate service
8+
- Support for unified agent configuration added to `oci_logging` service
89

910
## 4.16.0 (March 03, 2021)
1011

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
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 "compartment_id" {}
5+
6+
variable "unified_agent_configuration_defined_tags_value" {
7+
default = "value"
8+
}
9+
10+
variable "unified_agent_configuration_description" {
11+
default = "description2"
12+
}
13+
14+
variable "unified_agent_configuration_display_name" {
15+
default = "displayName2"
16+
}
17+
18+
variable "unified_agent_configuration_freeform_tags" {
19+
default = { "Department" = "Finance" }
20+
}
21+
22+
variable "unified_agent_configuration_group_association_group_list" {
23+
default = [""]
24+
}
25+
26+
variable "unified_agent_configuration_is_compartment_id_in_subtree" {
27+
default = false
28+
}
29+
30+
variable "unified_agent_configuration_is_enabled" {
31+
default = true
32+
}
33+
34+
variable "unified_agent_configuration_service_configuration_configuration_type" {
35+
default = "LOGGING"
36+
}
37+
38+
variable "unified_agent_configuration_service_configuration_sources_channels" {
39+
default = ["Security"]
40+
}
41+
42+
variable "unified_agent_configuration_service_configuration_sources_name" {
43+
default = "name"
44+
}
45+
46+
variable "unified_agent_configuration_service_configuration_sources_parser_delimiter" {
47+
default = "delimiter"
48+
}
49+
50+
variable "unified_agent_configuration_service_configuration_sources_parser_expression" {
51+
default = "expression"
52+
}
53+
54+
variable "unified_agent_configuration_service_configuration_sources_parser_field_time_key" {
55+
default = "fieldTimeKey"
56+
}
57+
58+
variable "unified_agent_configuration_service_configuration_sources_parser_format" {
59+
default = []
60+
}
61+
62+
variable "unified_agent_configuration_service_configuration_sources_parser_format_firstline" {
63+
default = "formatFirstline"
64+
}
65+
66+
variable "unified_agent_configuration_service_configuration_sources_parser_grok_failure_key" {
67+
default = "grokFailureKey"
68+
}
69+
70+
variable "unified_agent_configuration_service_configuration_sources_parser_grok_name_key" {
71+
default = "grokNameKey"
72+
}
73+
74+
variable "unified_agent_configuration_service_configuration_sources_parser_is_estimate_current_event" {
75+
default = false
76+
}
77+
78+
variable "unified_agent_configuration_service_configuration_sources_parser_is_keep_time_key" {
79+
default = false
80+
}
81+
82+
variable "unified_agent_configuration_service_configuration_sources_parser_is_null_empty_string" {
83+
default = false
84+
}
85+
86+
variable "unified_agent_configuration_service_configuration_sources_parser_is_support_colonless_ident" {
87+
default = false
88+
}
89+
90+
variable "unified_agent_configuration_service_configuration_sources_parser_is_with_priority" {
91+
default = false
92+
}
93+
94+
variable "unified_agent_configuration_service_configuration_sources_parser_keys" {
95+
default = []
96+
}
97+
98+
variable "unified_agent_configuration_service_configuration_sources_parser_message_format" {
99+
default = "RFC3164"
100+
}
101+
102+
variable "unified_agent_configuration_service_configuration_sources_parser_message_key" {
103+
default = "messageKey"
104+
}
105+
106+
variable "unified_agent_configuration_service_configuration_sources_parser_multi_line_start_regexp" {
107+
default = "multiLineStartRegexp"
108+
}
109+
110+
variable "unified_agent_configuration_service_configuration_sources_parser_null_value_pattern" {
111+
default = "nullValuePattern"
112+
}
113+
114+
variable "unified_agent_configuration_service_configuration_sources_parser_parser_type" {
115+
default = "AUDITD"
116+
}
117+
118+
variable "unified_agent_configuration_service_configuration_sources_parser_patterns_field_time_format" {
119+
default = "fieldTimeFormat"
120+
}
121+
122+
variable "unified_agent_configuration_service_configuration_sources_parser_patterns_field_time_key" {
123+
default = "fieldTimeKey"
124+
}
125+
126+
variable "unified_agent_configuration_service_configuration_sources_parser_patterns_field_time_zone" {
127+
default = "fieldTimeZone"
128+
}
129+
130+
variable "unified_agent_configuration_service_configuration_sources_parser_patterns_name" {
131+
default = "name"
132+
}
133+
134+
variable "unified_agent_configuration_service_configuration_sources_parser_patterns_pattern" {
135+
default = "pattern"
136+
}
137+
138+
variable "unified_agent_configuration_service_configuration_sources_parser_rfc5424time_format" {
139+
default = "rfc5424TimeFormat"
140+
}
141+
142+
variable "unified_agent_configuration_service_configuration_sources_parser_syslog_parser_type" {
143+
default = "STRING"
144+
}
145+
146+
variable "unified_agent_configuration_service_configuration_sources_parser_time_format" {
147+
default = "timeFormat"
148+
}
149+
150+
variable "unified_agent_configuration_service_configuration_sources_parser_time_type" {
151+
default = "FLOAT"
152+
}
153+
154+
variable "unified_agent_configuration_service_configuration_sources_parser_timeout_in_milliseconds" {
155+
default = 10
156+
}
157+
158+
variable "unified_agent_configuration_service_configuration_sources_parser_types" {
159+
default = "types"
160+
}
161+
162+
variable "unified_agent_configuration_service_configuration_sources_paths" {
163+
default = []
164+
}
165+
166+
variable "unified_agent_configuration_service_configuration_sources_source_type" {
167+
default = "WINDOWS_EVENT_LOG"
168+
}
169+
170+
variable "unified_agent_configuration_state" {
171+
default = "AVAILABLE"
172+
}
173+
174+
resource "oci_logging_unified_agent_configuration" "test_unified_agent_configuration" {
175+
#Required
176+
compartment_id = var.compartment_id
177+
is_enabled = var.unified_agent_configuration_is_enabled
178+
service_configuration {
179+
#Required
180+
configuration_type = var.unified_agent_configuration_service_configuration_configuration_type
181+
182+
#Optional
183+
destination {
184+
#Required
185+
log_object_id = "${oci_logging_log.test_log.id}"
186+
}
187+
sources {
188+
#Required
189+
source_type = var.unified_agent_configuration_service_configuration_sources_source_type
190+
191+
#Optional
192+
channels = var.unified_agent_configuration_service_configuration_sources_channels
193+
name = var.unified_agent_configuration_service_configuration_sources_name
194+
}
195+
}
196+
197+
#Optional
198+
defined_tags = {
199+
"${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}" = var.log_group_defined_tags_value
200+
}
201+
description = var.unified_agent_configuration_description
202+
display_name = var.unified_agent_configuration_display_name
203+
freeform_tags = var.unified_agent_configuration_freeform_tags
204+
group_association {
205+
206+
#Optional
207+
group_list = ["${oci_logging_log_group.test_log_group.id}"]
208+
}
209+
}
210+
211+
data "oci_logging_unified_agent_configurations" "test_unified_agent_configurations" {
212+
#Required
213+
compartment_id = var.compartment_id
214+
215+
#Optional
216+
display_name = var.unified_agent_configuration_display_name
217+
group_id = "${oci_logging_log_group.test_log_group.id}"
218+
is_compartment_id_in_subtree = var.unified_agent_configuration_is_compartment_id_in_subtree
219+
log_id = "${oci_logging_log.test_log.id}"
220+
state = var.unified_agent_configuration_state
221+
}
222+

oci/export_definitions.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1528,6 +1528,15 @@ var exportLoadBalancerRuleSetHints = &TerraformResourceHints{
15281528
resourceAbbreviation: "rule_set",
15291529
}
15301530

1531+
var exportLoggingUnifiedAgentConfigurationHints = &TerraformResourceHints{
1532+
resourceClass: "oci_logging_unified_agent_configuration",
1533+
datasourceClass: "oci_logging_unified_agent_configurations",
1534+
datasourceItemsAttr: "unified_agent_configuration_collection",
1535+
isDatasourceCollection: true,
1536+
resourceAbbreviation: "unified_agent_configuration",
1537+
requireResourceRefresh: true,
1538+
}
1539+
15311540
var exportManagementAgentManagementAgentHints = &TerraformResourceHints{
15321541
resourceClass: "oci_management_agent_management_agent",
15331542
datasourceClass: "oci_management_agent_management_agents",

oci/export_graphs.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,7 @@ var loadBalancerResourceGraph = TerraformResourceGraph{
674674
var loggingResourceGraph = TerraformResourceGraph{
675675
"oci_identity_compartment": {
676676
{TerraformResourceHints: exportLoggingLogGroupHints},
677+
{TerraformResourceHints: exportLoggingUnifiedAgentConfigurationHints},
677678
},
678679
"oci_logging_log_group": {
679680
{

oci/helpers.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ func objectMapToStringMap(rm map[string]interface{}) map[string]string {
158158
return result
159159
}
160160

161+
func StringMapToObjectMap(sm map[string]string) map[string]interface{} {
162+
var result = make(map[string]interface{})
163+
if len(sm) > 0 {
164+
for types, v := range sm {
165+
result[types] = v
166+
}
167+
}
168+
return result
169+
}
170+
161171
func validateInt64TypeString(v interface{}, k string) (ws []string, errors []error) {
162172
value := v.(string)
163173

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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 oci
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
10+
oci_logging "github.com/oracle/oci-go-sdk/v36/logging"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_logging_unified_agent_configuration", LoggingUnifiedAgentConfigurationDataSource())
15+
}
16+
17+
func LoggingUnifiedAgentConfigurationDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["unified_agent_configuration_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
return GetSingularDataSourceItemSchema(LoggingUnifiedAgentConfigurationResource(), fieldMap, readSingularLoggingUnifiedAgentConfiguration)
24+
}
25+
26+
func readSingularLoggingUnifiedAgentConfiguration(d *schema.ResourceData, m interface{}) error {
27+
sync := &LoggingUnifiedAgentConfigurationDataSourceCrud{}
28+
sync.D = d
29+
sync.Client = m.(*OracleClients).loggingManagementClient()
30+
31+
return ReadResource(sync)
32+
}
33+
34+
type LoggingUnifiedAgentConfigurationDataSourceCrud struct {
35+
D *schema.ResourceData
36+
Client *oci_logging.LoggingManagementClient
37+
Res *oci_logging.GetUnifiedAgentConfigurationResponse
38+
}
39+
40+
func (s *LoggingUnifiedAgentConfigurationDataSourceCrud) VoidState() {
41+
s.D.SetId("")
42+
}
43+
44+
func (s *LoggingUnifiedAgentConfigurationDataSourceCrud) Get() error {
45+
request := oci_logging.GetUnifiedAgentConfigurationRequest{}
46+
47+
if unifiedAgentConfigurationId, ok := s.D.GetOkExists("unified_agent_configuration_id"); ok {
48+
tmp := unifiedAgentConfigurationId.(string)
49+
request.UnifiedAgentConfigurationId = &tmp
50+
}
51+
52+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "logging")
53+
54+
response, err := s.Client.GetUnifiedAgentConfiguration(context.Background(), request)
55+
if err != nil {
56+
return err
57+
}
58+
59+
s.Res = &response
60+
return nil
61+
}
62+
63+
func (s *LoggingUnifiedAgentConfigurationDataSourceCrud) SetData() error {
64+
if s.Res == nil {
65+
return nil
66+
}
67+
68+
s.D.SetId(*s.Res.Id)
69+
70+
if s.Res.CompartmentId != nil {
71+
s.D.Set("compartment_id", *s.Res.CompartmentId)
72+
}
73+
74+
s.D.Set("configuration_state", s.Res.ConfigurationState)
75+
76+
if s.Res.DefinedTags != nil {
77+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
78+
}
79+
80+
if s.Res.Description != nil {
81+
s.D.Set("description", *s.Res.Description)
82+
}
83+
84+
if s.Res.DisplayName != nil {
85+
s.D.Set("display_name", *s.Res.DisplayName)
86+
}
87+
88+
s.D.Set("freeform_tags", s.Res.FreeformTags)
89+
90+
if s.Res.GroupAssociation != nil {
91+
s.D.Set("group_association", []interface{}{GroupAssociationDetailsToMap(s.Res.GroupAssociation)})
92+
} else {
93+
s.D.Set("group_association", nil)
94+
}
95+
96+
if s.Res.IsEnabled != nil {
97+
s.D.Set("is_enabled", *s.Res.IsEnabled)
98+
}
99+
100+
if s.Res.ServiceConfiguration != nil {
101+
serviceConfigurationArray := []interface{}{}
102+
if serviceConfigurationMap := UnifiedAgentServiceConfigurationDetailsToMap(&s.Res.ServiceConfiguration); serviceConfigurationMap != nil {
103+
serviceConfigurationArray = append(serviceConfigurationArray, serviceConfigurationMap)
104+
}
105+
s.D.Set("service_configuration", serviceConfigurationArray)
106+
} else {
107+
s.D.Set("service_configuration", nil)
108+
}
109+
110+
s.D.Set("state", s.Res.LifecycleState)
111+
112+
if s.Res.TimeCreated != nil {
113+
s.D.Set("time_created", s.Res.TimeCreated.String())
114+
}
115+
116+
if s.Res.TimeLastModified != nil {
117+
s.D.Set("time_last_modified", s.Res.TimeLastModified.String())
118+
}
119+
120+
return nil
121+
}

0 commit comments

Comments
 (0)