Skip to content

Commit 0eaab6b

Browse files
committed
Support for Log Analytics Log Groups
1 parent 3fef99c commit 0eaab6b

8 files changed

+1174
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### Added
44
- Support for File storage file system clones
55
- Support for Log Analytics Entities
6+
- Support for Log Analytics Log Groups
67

78
## 4.15.0 (February 24, 2021)
89

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
/*
5+
* This example shows how to manage log analytics log groups
6+
*/
7+
8+
# Fetch namespace name from object store GET /n
9+
data "oci_objectstorage_namespace" "ns" {
10+
compartment_id = var.compartment_ocid
11+
}
12+
13+
# Create a log group with required parameters
14+
resource "oci_log_analytics_log_analytics_log_group" "logGroupRequired" {
15+
compartment_id = var.compartment_ocid
16+
namespace = data.oci_objectstorage_namespace.ns.namespace
17+
display_name = "tf-loggroup-example-req"
18+
}
19+
20+
# Get details of above created log group with required parameters
21+
data "oci_log_analytics_log_analytics_log_group" "logGroupRequiredDetails" {
22+
namespace = data.oci_objectstorage_namespace.ns.namespace
23+
log_analytics_log_group_id = oci_log_analytics_log_analytics_log_group.logGroupRequired.id
24+
}
25+
26+
# Create a log group with optional parameters
27+
resource "oci_log_analytics_log_analytics_log_group" "logGroupOptional" {
28+
compartment_id = var.compartment_ocid
29+
namespace = data.oci_objectstorage_namespace.ns.namespace
30+
display_name = "tf-loggroup-example-opt"
31+
description = "Log group with optional parameters"
32+
freeform_tags = tomap({"servicegroup" = "test", "Dept" = "Devops"})
33+
}
34+
35+
# Get details of above created log group with optional parameters
36+
data "oci_log_analytics_log_analytics_log_group" "logGroupOptionalDetails" {
37+
namespace = data.oci_objectstorage_namespace.ns.namespace
38+
log_analytics_log_group_id = oci_log_analytics_log_analytics_log_group.logGroupOptional.id
39+
}
40+
41+
# Get the list of log groups in a compartment
42+
data "oci_log_analytics_log_analytics_log_groups" "logGroupsList" {
43+
compartment_id = var.compartment_ocid
44+
namespace = data.oci_objectstorage_namespace.ns.namespace
45+
}
46+
47+
# Get the count of log groups in a compartment
48+
data "oci_log_analytics_log_analytics_log_groups_summary" "logGroupsSummary" {
49+
compartment_id = var.compartment_ocid
50+
namespace = data.oci_objectstorage_namespace.ns.namespace
51+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// Copyright (c) 2017, 2020, 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_log_analytics "github.com/oracle/oci-go-sdk/v35/loganalytics"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_log_analytics_log_analytics_log_group", LogAnalyticsLogAnalyticsLogGroupDataSource())
15+
}
16+
17+
func LogAnalyticsLogAnalyticsLogGroupDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["log_analytics_log_group_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
fieldMap["namespace"] = &schema.Schema{
24+
Type: schema.TypeString,
25+
Required: true,
26+
}
27+
return GetSingularDataSourceItemSchema(LogAnalyticsLogAnalyticsLogGroupResource(), fieldMap, readSingularLogAnalyticsLogAnalyticsLogGroup)
28+
}
29+
30+
func readSingularLogAnalyticsLogAnalyticsLogGroup(d *schema.ResourceData, m interface{}) error {
31+
sync := &LogAnalyticsLogAnalyticsLogGroupDataSourceCrud{}
32+
sync.D = d
33+
sync.Client = m.(*OracleClients).logAnalyticsClient()
34+
35+
return ReadResource(sync)
36+
}
37+
38+
type LogAnalyticsLogAnalyticsLogGroupDataSourceCrud struct {
39+
D *schema.ResourceData
40+
Client *oci_log_analytics.LogAnalyticsClient
41+
Res *oci_log_analytics.GetLogAnalyticsLogGroupResponse
42+
}
43+
44+
func (s *LogAnalyticsLogAnalyticsLogGroupDataSourceCrud) VoidState() {
45+
s.D.SetId("")
46+
}
47+
48+
func (s *LogAnalyticsLogAnalyticsLogGroupDataSourceCrud) Get() error {
49+
request := oci_log_analytics.GetLogAnalyticsLogGroupRequest{}
50+
51+
if logAnalyticsLogGroupId, ok := s.D.GetOkExists("log_analytics_log_group_id"); ok {
52+
tmp := logAnalyticsLogGroupId.(string)
53+
request.LogAnalyticsLogGroupId = &tmp
54+
}
55+
56+
if namespace, ok := s.D.GetOkExists("namespace"); ok {
57+
tmp := namespace.(string)
58+
request.NamespaceName = &tmp
59+
}
60+
61+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "log_analytics")
62+
63+
response, err := s.Client.GetLogAnalyticsLogGroup(context.Background(), request)
64+
if err != nil {
65+
return err
66+
}
67+
68+
s.Res = &response
69+
return nil
70+
}
71+
72+
func (s *LogAnalyticsLogAnalyticsLogGroupDataSourceCrud) SetData() error {
73+
if s.Res == nil {
74+
return nil
75+
}
76+
77+
s.D.SetId(*s.Res.Id)
78+
79+
if s.Res.CompartmentId != nil {
80+
s.D.Set("compartment_id", *s.Res.CompartmentId)
81+
}
82+
83+
if s.Res.DefinedTags != nil {
84+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
85+
}
86+
87+
if s.Res.Description != nil {
88+
s.D.Set("description", *s.Res.Description)
89+
}
90+
91+
if s.Res.DisplayName != nil {
92+
s.D.Set("display_name", *s.Res.DisplayName)
93+
}
94+
95+
s.D.Set("freeform_tags", s.Res.FreeformTags)
96+
97+
if s.Res.TimeCreated != nil {
98+
s.D.Set("time_created", s.Res.TimeCreated.String())
99+
}
100+
101+
if s.Res.TimeUpdated != nil {
102+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
103+
}
104+
105+
return nil
106+
}

0 commit comments

Comments
 (0)