From da95ee22ccd649d5daa134995e1747763b2cfc84 Mon Sep 17 00:00:00 2001 From: Stephanie Hingtgen Date: Thu, 20 Mar 2025 23:47:09 -0600 Subject: [PATCH] K8s: Fix dashboard creation timestamp (#102578) --- pkg/registry/apis/dashboard/legacy/sql_dashboards.go | 1 + pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go index 8f07f37658b..bc9b5a2c4e0 100644 --- a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go +++ b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go @@ -404,6 +404,7 @@ func (a *dashboardSqlAccess) buildSaveDashboardCommand(ctx context.Context, orgI }) if old != nil { dash.Spec.Set("id", old.ID) + dash.Spec.Set("version", float64(old.Version)) } else { dash.Spec.Remove("id") // existing of "id" makes it an update created = true diff --git a/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go b/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go index 2e8d5485e9e..efa4ffde96f 100644 --- a/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go +++ b/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go @@ -169,6 +169,7 @@ func TestBuildSaveDashboardCommand(t *testing.T) { mockStore.On("GetDashboard", mock.Anything, mock.Anything).Return( &dashboards.Dashboard{ ID: 1234, + Version: 2, APIVersion: "dashboard.grafana.app/v0alpha1", }, nil).Once() cmd, created, err = access.buildSaveDashboardCommand(ctx, 1, dash) @@ -176,8 +177,9 @@ func TestBuildSaveDashboardCommand(t *testing.T) { require.Equal(t, false, created) require.NotNil(t, cmd) require.Equal(t, "test-dash", cmd.Dashboard.Get("uid").MustString()) - require.Equal(t, cmd.Dashboard.Get("id").MustInt64(), int64(1234)) // should set to existing ID - require.Equal(t, cmd.APIVersion, "v0alpha1") // should trim prefix + require.Equal(t, cmd.Dashboard.Get("id").MustInt64(), int64(1234)) // should set to existing ID + require.Equal(t, cmd.Dashboard.Get("version").MustFloat64(), float64(2)) // version must be set - otherwise seen as a new dashboard in NewDashboardFromJson + require.Equal(t, cmd.APIVersion, "v0alpha1") // should trim prefix require.Equal(t, cmd.OrgID, int64(1)) require.True(t, cmd.Overwrite) }