mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
K8s: Dashboards: fix in folder count (#99622)
This commit is contained in:
parent
9949a56f3b
commit
959a942b5c
@ -1401,6 +1401,18 @@ func (dr *DashboardServiceImpl) GetDashboardTags(ctx context.Context, query *das
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (dr DashboardServiceImpl) CountInFolders(ctx context.Context, orgID int64, folderUIDs []string, u identity.Requester) (int64, error) {
|
func (dr DashboardServiceImpl) CountInFolders(ctx context.Context, orgID int64, folderUIDs []string, u identity.Requester) (int64, error) {
|
||||||
|
if dr.features.IsEnabledGlobally(featuremgmt.FlagKubernetesCliDashboards) {
|
||||||
|
dashs, err := dr.searchDashboardsThroughK8s(ctx, &dashboards.FindPersistedDashboardsQuery{
|
||||||
|
OrgId: orgID,
|
||||||
|
FolderUIDs: folderUIDs,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return int64(len(dashs)), nil
|
||||||
|
}
|
||||||
|
|
||||||
return dr.dashboardStore.CountDashboardsInFolders(ctx, &dashboards.CountDashboardsInFolderRequest{FolderUIDs: folderUIDs, OrgID: orgID})
|
return dr.dashboardStore.CountDashboardsInFolders(ctx, &dashboards.CountDashboardsInFolderRequest{FolderUIDs: folderUIDs, OrgID: orgID})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1818,6 +1818,68 @@ func TestCountDashboardsInOrg(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCountInFolders(t *testing.T) {
|
||||||
|
fakeStore := dashboards.FakeDashboardStore{}
|
||||||
|
defer fakeStore.AssertExpectations(t)
|
||||||
|
service := &DashboardServiceImpl{
|
||||||
|
cfg: setting.NewCfg(),
|
||||||
|
dashboardStore: &fakeStore,
|
||||||
|
}
|
||||||
|
dashs := &resource.ResourceSearchResponse{
|
||||||
|
Results: &resource.ResourceTable{
|
||||||
|
Columns: []*resource.ResourceTableColumnDefinition{
|
||||||
|
{
|
||||||
|
Name: "title",
|
||||||
|
Type: resource.ResourceTableColumnDefinition_STRING,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "folder",
|
||||||
|
Type: resource.ResourceTableColumnDefinition_STRING,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Rows: []*resource.ResourceTableRow{
|
||||||
|
{
|
||||||
|
Key: &resource.ResourceKey{
|
||||||
|
Name: "uid",
|
||||||
|
Resource: "dashboard",
|
||||||
|
},
|
||||||
|
Cells: [][]byte{
|
||||||
|
[]byte("Dashboard 1"),
|
||||||
|
[]byte("folder 1"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Key: &resource.ResourceKey{
|
||||||
|
Name: "uid2",
|
||||||
|
Resource: "dashboard",
|
||||||
|
},
|
||||||
|
Cells: [][]byte{
|
||||||
|
[]byte("Dashboard 2"),
|
||||||
|
[]byte("folder 1"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
TotalHits: 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("Should fallback to dashboard store if Kubernetes feature flags are not enabled", func(t *testing.T) {
|
||||||
|
service.features = featuremgmt.WithFeatures()
|
||||||
|
fakeStore.On("CountDashboardsInFolders", mock.Anything, mock.Anything).Return(int64(1), nil).Once()
|
||||||
|
_, err := service.CountInFolders(context.Background(), 1, []string{"folder1"}, &user.SignedInUser{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
fakeStore.AssertExpectations(t)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Should use Kubernetes client if feature flags are enabled", func(t *testing.T) {
|
||||||
|
ctx, k8sCliMock := setupK8sDashboardTests(service)
|
||||||
|
k8sCliMock.On("Search", mock.Anything, mock.Anything, mock.Anything).Return(dashs, nil).Once()
|
||||||
|
result, err := service.CountInFolders(ctx, 1, []string{"folder1"}, &user.SignedInUser{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, result, int64(2))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestLegacySaveCommandToUnstructured(t *testing.T) {
|
func TestLegacySaveCommandToUnstructured(t *testing.T) {
|
||||||
namespace := "test-namespace"
|
namespace := "test-namespace"
|
||||||
t.Run("successfully converts save command to unstructured", func(t *testing.T) {
|
t.Run("successfully converts save command to unstructured", func(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user