[Provisioning] Extract export into separate package (#100268)

* Move export files into separate package

* Use worker terminoligy

* Rename dummy export worker
This commit is contained in:
Roberto Jiménez Sánchez authored and GitHub committed 2025-02-07 13:33:03 +01:00
1 parent 66015a75d3
commit 3943b8a2c3
3 files changed
+18 -14

No files matched your search

@@ -1,4 +1,4 @@
package jobs
package export
import (
"context"
@@ -12,9 +12,13 @@ import (
"github.com/grafana/grafana/pkg/util"
)
type dummyExporter struct{}
type dummyExportWorker struct{}
func (s *dummyExporter) Export(ctx context.Context,
func NewDummyExportWorker() ExportWorker {
return &dummyExportWorker{}
}
func (s *dummyExportWorker) Export(ctx context.Context,
repo repository.Repository,
options provisioning.ExportJobOptions,
progress func(provisioning.JobStatus) error,
@@ -1,4 +1,4 @@
package jobs
package export
import (
"context"
@@ -23,7 +23,7 @@ import (
)
// Export reads from grafana and writes to a a repository
type Exporter interface {
type ExportWorker interface {
Export(ctx context.Context,
repo repository.Repository,
options provisioning.ExportJobOptions,
@@ -31,17 +31,17 @@ type Exporter interface {
) (*provisioning.JobStatus, error)
}
type exporter struct {
type exportWorker struct {
client *resources.DynamicClient // namespaced!
dashboards dynamic.ResourceInterface
folders dynamic.ResourceInterface
repository repository.Repository
}
func NewExporter(
func NewExportWorker(
repo repository.Repository,
dynamicClient *resources.DynamicClient,
) (Exporter, error) {
) (ExportWorker, error) {
if dynamicClient.GetNamespace() != repo.Config().Namespace {
return nil, fmt.Errorf("bad setup, exporter needs a namespaced client matching the repository")
}
@@ -57,7 +57,7 @@ func NewExporter(
Resource: "dashboards",
})
return &exporter{
return &exportWorker{
client: dynamicClient,
folders: folders,
dashboards: dashboards,
@@ -66,7 +66,7 @@ func NewExporter(
}
//nolint:gocyclo
func (r *exporter) Export(ctx context.Context,
func (r *exportWorker) Export(ctx context.Context,
repo repository.Repository,
options provisioning.ExportJobOptions,
progress func(provisioning.JobStatus) error,
@@ -12,6 +12,7 @@ import (
"github.com/grafana/grafana/pkg/apimachinery/identity"
provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1"
"github.com/grafana/grafana/pkg/registry/apis/provisioning/auth"
"github.com/grafana/grafana/pkg/registry/apis/provisioning/jobs/export"
"github.com/grafana/grafana/pkg/registry/apis/provisioning/repository"
"github.com/grafana/grafana/pkg/registry/apis/provisioning/resources"
"github.com/grafana/grafana/pkg/services/rendering"
@@ -141,13 +142,12 @@ func (g *JobWorker) Process(ctx context.Context, job provisioning.Job, progress
}, nil
}
var exporter Exporter
var exporter export.ExportWorker
// Test for now... so we have something with long spinners for UI testing!!!
if job.Spec.Export.Branch == "*dummy*" {
exporter = &dummyExporter{}
exporter = export.NewDummyExportWorker()
} else {
exporter, err = NewExporter(repo, parser.Client())
exporter, err = export.NewExportWorker(repo, parser.Client())
if err != nil {
return nil, err
}