Skip to content

Commit aedb981

Browse files
committed
fix(ddgr): catch json errors
Signed-off-by: Wassim DHIF <wassim.dhif@datadoghq.com>
1 parent a283df4 commit aedb981

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

internal/controller/datadoggenericresource/dashboards.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ func getDashboard(auth context.Context, client *datadogV1.DashboardsApi, dashboa
6565

6666
func createDashboard(auth context.Context, client *datadogV1.DashboardsApi, instance *v1alpha1.DatadogGenericResource) (datadogV1.Dashboard, error) {
6767
dashboardCreateData := &datadogV1.Dashboard{}
68-
json.Unmarshal([]byte(instance.Spec.JsonSpec), dashboardCreateData)
68+
if err := json.Unmarshal([]byte(instance.Spec.JsonSpec), dashboardCreateData); err != nil {
69+
return datadogV1.Dashboard{}, translateClientError(err, "error unmarshalling dashboard spec")
70+
}
6971
dashboard, _, err := client.CreateDashboard(auth, *dashboardCreateData)
7072
if err != nil {
7173
return datadogV1.Dashboard{}, translateClientError(err, "error creating dashboard")
@@ -75,7 +77,9 @@ func createDashboard(auth context.Context, client *datadogV1.DashboardsApi, inst
7577

7678
func updateDashboard(auth context.Context, client *datadogV1.DashboardsApi, instance *v1alpha1.DatadogGenericResource) (datadogV1.Dashboard, error) {
7779
dashboardUpdateData := &datadogV1.Dashboard{}
78-
json.Unmarshal([]byte(instance.Spec.JsonSpec), dashboardUpdateData)
80+
if err := json.Unmarshal([]byte(instance.Spec.JsonSpec), dashboardUpdateData); err != nil {
81+
return datadogV1.Dashboard{}, translateClientError(err, "error unmarshalling dashboard spec")
82+
}
7983
dashboardUpdated, _, err := client.UpdateDashboard(auth, instance.Status.Id, *dashboardUpdateData)
8084
if err != nil {
8185
return datadogV1.Dashboard{}, translateClientError(err, "error updating dashboard")

0 commit comments

Comments
 (0)