[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:
1 parent
66015a75d3
commit
3943b8a2c3
3 files changed
+18
-14
No files matched your search
+7
-3
@@ -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,
|
||||
+7
-7
@@ -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
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user