Skip to content

Commit 64360f4

Browse files
skarimotherve
andauthored
Update Datadog api go client (#1064)
* Update go client to use latest release Co-authored-by: Thomas Hervé <thomas.herve@datadoghq.com>
1 parent 40aa4ac commit 64360f4

30 files changed

Lines changed: 765 additions & 693 deletions

LICENSE-3rdparty.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,4 @@ go.sum,gopkg.in/yaml.v3,MIT/Apache-2.0,2006-2010 Kirill Simonov 2011-2019 Canoni
191191
go.sum,github.com/Microsoft/go-winio,MIT,2015 Microsoft
192192
go.sum,github.com/konsorten/go-windows-terminal-sequences,MIT,2017 marvin + konsorten GmbH
193193
go.sum,github.com/sirupsen/logrus,MIT,2014 Simon Eskildsen
194+
go.sum,golang.org/x/term,BSD-3-Clause,2009 The Go Authors

datadog/resource_datadog_dashboard.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6194,8 +6194,8 @@ func buildDatadogWidgetCustomLinks(terraformWidgetCustomLinks *[]interface{}) *[
61946194
for i, customLink := range *terraformWidgetCustomLinks {
61956195
terraformCustomLink := customLink.(map[string]interface{})
61966196
datadogWidgetCustomLink := datadogV1.WidgetCustomLink{
6197-
Label: terraformCustomLink["label"].(string),
6198-
Link: terraformCustomLink["link"].(string),
6197+
Label: datadogV1.PtrString(terraformCustomLink["label"].(string)),
6198+
Link: datadogV1.PtrString(terraformCustomLink["link"].(string)),
61996199
}
62006200
datadogWidgetCustomLinks[i] = datadogWidgetCustomLink
62016201
}

datadog/resource_datadog_dashboard_json.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ func resourceDatadogDashboardJSONCreate(d *schema.ResourceData, meta interface{}
9292
datadogClientV1 := providerConf.DatadogClientV1
9393
authV1 := providerConf.AuthV1
9494

95-
dashboard := d.Get("dashboard")
95+
dashboard := d.Get("dashboard").(string)
9696

97-
respByte, _, err := utils.SendRequest(authV1, datadogClientV1, "POST", path, dashboard)
97+
respByte, _, err := utils.SendRequest(authV1, datadogClientV1, "POST", path, &dashboard)
9898
if err != nil {
9999
return utils.TranslateClientError(err, "error creating resource")
100100
}
@@ -121,7 +121,7 @@ func resourceDatadogDashboardJSONUpdate(d *schema.ResourceData, meta interface{}
121121
dashboard := d.Get("dashboard")
122122
id := d.Id()
123123

124-
respByte, _, err := utils.SendRequest(authV1, datadogClientV1, "PUT", path+"/"+id, dashboard)
124+
respByte, _, err := utils.SendRequest(authV1, datadogClientV1, "PUT", path+"/"+id, &dashboard)
125125
if err != nil {
126126
return utils.TranslateClientError(err, "error updating dashboard")
127127
}

datadog/resource_datadog_service_level_objective.go

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ func resourceDatadogServiceLevelObjectiveRead(d *schema.ResourceData, meta inter
362362
return utils.TranslateClientError(err, "error getting service level objective")
363363
}
364364

365-
return updateSLOState(d, sloResp.Data)
365+
return updateSLOStateFromRead(d, sloResp.Data)
366366
}
367367

368368
func updateSLOState(d *schema.ResourceData, slo *datadogV1.ServiceLevelObjective) error {
@@ -428,6 +428,70 @@ func updateSLOState(d *schema.ResourceData, slo *datadogV1.ServiceLevelObjective
428428
return nil
429429
}
430430

431+
// This duplicates updateSLOState for the SLOResponseData structure, which has mostly the same interface
432+
func updateSLOStateFromRead(d *schema.ResourceData, slo *datadogV1.SLOResponseData) error {
433+
thresholds := make([]map[string]interface{}, 0)
434+
for _, threshold := range slo.GetThresholds() {
435+
t := map[string]interface{}{
436+
"timeframe": threshold.GetTimeframe(),
437+
"target": threshold.GetTarget(),
438+
}
439+
if warning, ok := threshold.GetWarningOk(); ok {
440+
t["warning"] = warning
441+
}
442+
if targetDisplay, ok := threshold.GetTargetDisplayOk(); ok {
443+
t["target_display"] = targetDisplay
444+
}
445+
if warningDisplay, ok := threshold.GetWarningDisplayOk(); ok {
446+
t["warning_display"] = warningDisplay
447+
}
448+
thresholds = append(thresholds, t)
449+
}
450+
451+
tags := make([]string, 0)
452+
for _, s := range slo.GetTags() {
453+
tags = append(tags, s)
454+
}
455+
456+
if err := d.Set("name", slo.GetName()); err != nil {
457+
return err
458+
}
459+
if err := d.Set("description", slo.GetDescription()); err != nil {
460+
return err
461+
}
462+
if err := d.Set("type", slo.GetType()); err != nil {
463+
return err
464+
}
465+
if err := d.Set("tags", tags); err != nil {
466+
return err
467+
}
468+
if err := d.Set("thresholds", thresholds); err != nil {
469+
return err
470+
}
471+
switch slo.GetType() {
472+
case datadogV1.SLOTYPE_MONITOR:
473+
// monitor type
474+
if len(slo.GetMonitorIds()) > 0 {
475+
if err := d.Set("monitor_ids", slo.GetMonitorIds()); err != nil {
476+
return err
477+
}
478+
}
479+
if err := d.Set("groups", slo.GetGroups()); err != nil {
480+
return err
481+
}
482+
default:
483+
// metric type
484+
query := make(map[string]interface{})
485+
q := slo.GetQuery()
486+
query["numerator"] = q.GetNumerator()
487+
query["denominator"] = q.GetDenominator()
488+
if err := d.Set("query", []map[string]interface{}{query}); err != nil {
489+
return err
490+
}
491+
}
492+
return nil
493+
}
494+
431495
func resourceDatadogServiceLevelObjectiveUpdate(d *schema.ResourceData, meta interface{}) error {
432496
providerConf := meta.(*ProviderConfiguration)
433497
datadogClientV1 := providerConf.DatadogClientV1
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2021-05-03T11:41:54.404841+02:00
1+
2021-05-14T09:04:20.836181+02:00

datadog/tests/cassettes/TestAccDatadogDashboardEventStream.yaml

Lines changed: 41 additions & 41 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2021-05-03T11:42:12.472666+02:00
1+
2021-05-14T09:04:20.836255+02:00

datadog/tests/cassettes/TestAccDatadogDashboardEventStream_import.yaml

Lines changed: 47 additions & 47 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2021-05-03T11:44:53.042343+02:00
1+
2021-05-14T08:59:48.845828+02:00

0 commit comments

Comments
 (0)