Skip to content

Commit c2ac403

Browse files
author
Brice Figureau
committed
Fix DataDog#105,DataDog#117,DataDog#119 allowing to import and apply screenboards
This contains the fixes from PR DataDog#194 and DataDog#195 from zorkian/go-datadog-api and the necessary changes in the provider.
1 parent 31a25eb commit c2ac403

9 files changed

+274
-56
lines changed

datadog/resource_datadog_screenboard.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ func resourceDatadogScreenboard() *schema.Resource {
547547
Description: "Name of the screenboard",
548548
},
549549
"height": &schema.Schema{
550-
Type: schema.TypeString,
550+
Type: schema.TypeInt,
551551
Optional: true,
552552
Description: "Height of the screenboard",
553553
},
@@ -603,6 +603,13 @@ func setJSONNumberFromDict(dict map[string]interface{}, key string, field **json
603603
}
604604
}
605605

606+
func setPrecisionTFromDict(dict map[string]interface{}, key string, field **datadog.PrecisionT) {
607+
if v, ok := dict[key]; ok {
608+
f := datadog.PrecisionT(v.(string))
609+
*field = &f
610+
}
611+
}
612+
606613
func setStringListFromDict(dict map[string]interface{}, key string, field *[]*string) {
607614
if v, ok := dict[key].([]interface{}); ok {
608615
*field = []*string{}
@@ -622,6 +629,8 @@ func setFromDict(dict map[string]interface{}, key string, field interface{}) {
622629
setBoolFromDict(dict, key, field.(**bool))
623630
case **json.Number:
624631
setJSONNumberFromDict(dict, key, field.(**json.Number))
632+
case **datadog.PrecisionT:
633+
setPrecisionTFromDict(dict, key, field.(**datadog.PrecisionT))
625634
case *[]*string:
626635
setStringListFromDict(dict, key, field.(*[]*string))
627636
default:
@@ -956,8 +965,8 @@ func buildScreenboard(d *schema.ResourceData) (*datadog.Screenboard, error) {
956965
return &datadog.Screenboard{
957966
Id: datadog.Int(id),
958967
Title: datadog.String(d.Get("title").(string)),
959-
Height: datadog.String(d.Get("height").(string)),
960-
Width: datadog.String(d.Get("width").(string)),
968+
Height: datadog.Int(d.Get("height").(int)),
969+
Width: datadog.JsonNumber(json.Number(d.Get("width").(string))),
961970
Shared: datadog.Bool(d.Get("shared").(bool)),
962971
ReadOnly: datadog.Bool(d.Get("read_only").(bool)),
963972
Widgets: buildWidgets(&terraformWidgets),
@@ -1010,6 +1019,12 @@ func setJSONNumberToDict(dict map[string]interface{}, key string, field *json.Nu
10101019
}
10111020
}
10121021

1022+
func setPrecisionTToDict(dict map[string]interface{}, key string, field *datadog.PrecisionT) {
1023+
if field != nil {
1024+
dict[key] = string(*field)
1025+
}
1026+
}
1027+
10131028
func setStringListToDict(dict map[string]interface{}, key string, field []*string) {
10141029
if len(field) != 0 {
10151030
s := make([]interface{}, len(field))
@@ -1030,6 +1045,8 @@ func setToDict(dict map[string]interface{}, key string, field interface{}) {
10301045
setIntToDict(dict, key, field.(*int))
10311046
case *json.Number:
10321047
setJSONNumberToDict(dict, key, field.(*json.Number))
1048+
case *datadog.PrecisionT:
1049+
setPrecisionTToDict(dict, key, field.(*datadog.PrecisionT))
10331050
case []*string:
10341051
setStringListToDict(dict, key, field.([]*string))
10351052
default:

datadog/resource_datadog_timeboard.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ func buildGraphs(terraformGraphs *[]interface{}) *[]datadog.Graph {
434434
}
435435

436436
if precision, ok := t["precision"]; ok {
437-
d.Definition.SetPrecision(json.Number(precision.(string)))
437+
d.Definition.SetPrecision(precision.(datadog.PrecisionT))
438438
}
439439

440440
if v, ok := t["custom_unit"]; ok {

vendor/github.com/zorkian/go-datadog-api/dashboards.go

Lines changed: 11 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)