From bb20d128f0e888977901b7386d1657ab4442e08d Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Tue, 17 Dec 2024 16:27:40 +0300 Subject: [PATCH] POC/Provisioning: Minor cleanups (#98089) --- .../provisioning/repository_controller.go | 2 +- .../apis/provisioning/resources/fileformat.go | 4 +-- .../apis/provisioning/resources/idmapper.go | 4 +-- .../apis/provisioning/provisioning_test.go | 3 ++- .../provisioning/RepositoryListPage.tsx | 27 ++++++++++++++----- .../provisioning/RepositoryStatusPage.tsx | 2 +- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/pkg/registry/apis/provisioning/repository_controller.go b/pkg/registry/apis/provisioning/repository_controller.go index 006f99ab067..c8cade1e62d 100644 --- a/pkg/registry/apis/provisioning/repository_controller.go +++ b/pkg/registry/apis/provisioning/repository_controller.go @@ -177,7 +177,7 @@ func (rc *RepositoryController) sync(key string) error { // The repository is deleted if cachedRepo.DeletionTimestamp != nil { - return rc.processDeletedItem(context.Background(), cachedRepo) + return nil //rc.processDeletedItem(context.Background(), cachedRepo) } // Did the spec change diff --git a/pkg/registry/apis/provisioning/resources/fileformat.go b/pkg/registry/apis/provisioning/resources/fileformat.go index c5f5d64dbff..faa172d99d0 100644 --- a/pkg/registry/apis/provisioning/resources/fileformat.go +++ b/pkg/registry/apis/provisioning/resources/fileformat.go @@ -14,7 +14,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer/yaml" yamlutil "k8s.io/apimachinery/pkg/util/yaml" - "github.com/grafana/grafana/pkg/apis/dashboard" + dashboard "github.com/grafana/grafana/pkg/apis/dashboard/v1alpha1" provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1" "github.com/grafana/grafana/pkg/registry/apis/provisioning/repository" ) @@ -63,7 +63,7 @@ func ReadClassicResource(ctx context.Context, logger *slog.Logger, info *reposit value["tags"] != nil { gvk := &schema.GroupVersionKind{ Group: dashboard.GROUP, - Version: "v0alpha1", + Version: dashboard.VERSION, // v1 Kind: "Dashboard"} return &unstructured.Unstructured{ Object: map[string]interface{}{ diff --git a/pkg/registry/apis/provisioning/resources/idmapper.go b/pkg/registry/apis/provisioning/resources/idmapper.go index a339afa004f..1b31d8d813c 100644 --- a/pkg/registry/apis/provisioning/resources/idmapper.go +++ b/pkg/registry/apis/provisioning/resources/idmapper.go @@ -55,8 +55,8 @@ func NamesFromHashedRepoPath(repo string, fpath string, _ metav1.Object) (object hasher := func(fpath string) string { name := path.Base(fpath) - if len(name) > 12 { - name = name[0:12] + if len(name) > 16 { + name = name[0:16] } hash := sha256.New() _, _ = hash.Write([]byte(repo)) diff --git a/pkg/tests/apis/provisioning/provisioning_test.go b/pkg/tests/apis/provisioning/provisioning_test.go index fe3aa864305..1c90f254b49 100644 --- a/pkg/tests/apis/provisioning/provisioning_test.go +++ b/pkg/tests/apis/provisioning/provisioning_test.go @@ -17,6 +17,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" + dashboard "github.com/grafana/grafana/pkg/apis/dashboard/v1alpha1" provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1" "github.com/grafana/grafana/pkg/registry/apis/provisioning/repository/github" "github.com/grafana/grafana/pkg/services/featuremgmt" @@ -87,7 +88,7 @@ func TestIntegrationProvisioning(t *testing.T) { User: helper.Org1.Admin, Namespace: "default", // actually org1 GVR: schema.GroupVersionResource{ - Group: "dashboard.grafana.app", Version: "v2alpha1", Resource: "dashboards", + Group: dashboard.GROUP, Version: dashboard.VERSION, Resource: "dashboards", }, }) diff --git a/public/app/features/provisioning/RepositoryListPage.tsx b/public/app/features/provisioning/RepositoryListPage.tsx index dce97bda775..b9b697a1187 100644 --- a/public/app/features/provisioning/RepositoryListPage.tsx +++ b/public/app/features/provisioning/RepositoryListPage.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/css'; import { useState } from 'react'; -import { Card, EmptySearchResult, EmptyState, FilterInput, LinkButton, Stack, TextLink } from '@grafana/ui'; +import { Alert, Card, EmptySearchResult, EmptyState, FilterInput, LinkButton, Stack, TextLink } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import { DeleteRepositoryButton } from './DeleteRepositoryButton'; @@ -51,6 +51,7 @@ function RepositoryListPageContent({ items }: { items?: Repository[] }) { {!!filteredItems.length ? ( filteredItems.map((item) => { const name = item.metadata?.name ?? ''; + const healthy = Boolean(item.status?.health.healthy) return ( @@ -60,11 +61,25 @@ function RepositoryListPageContent({ items }: { items?: Repository[] }) { {item.spec?.type} - - Edit - - - + {healthy ? <> + + Edit + + + + : <> + + <> + {item.status?.health.message && item.status.health.message.map(v =>
{v}

)} +
+ + Edit + + +
+ +
+ }
); diff --git a/public/app/features/provisioning/RepositoryStatusPage.tsx b/public/app/features/provisioning/RepositoryStatusPage.tsx index 6a446bd803e..70ae62722db 100644 --- a/public/app/features/provisioning/RepositoryStatusPage.tsx +++ b/public/app/features/provisioning/RepositoryStatusPage.tsx @@ -255,7 +255,7 @@ function FolderView({ repo }: RepoProps) {

TODO, show folder: {repo.metadata?.name}


- {repo.spec?.folder} + {repo.spec?.folder}
); }