diff --git a/pkg/registry/apis/provisioning/jobs/render.go b/pkg/registry/apis/provisioning/jobs/pullrequest/render.go similarity index 79% rename from pkg/registry/apis/provisioning/jobs/render.go rename to pkg/registry/apis/provisioning/jobs/pullrequest/render.go index f0bde08ad9a..6e62fc3fbae 100644 --- a/pkg/registry/apis/provisioning/jobs/render.go +++ b/pkg/registry/apis/provisioning/jobs/pullrequest/render.go @@ -1,4 +1,4 @@ -package jobs +package pullrequest import ( "context" @@ -14,18 +14,27 @@ import ( "github.com/grafana/grafana/pkg/storage/unified/blob" ) -type renderer struct { +type Renderer struct { cfg *provisioning.Repository render rendering.Service blobstore blob.PublicBlobStore id identity.Requester } -func (r *renderer) IsAvailable(ctx context.Context) bool { +func NewRenderer(cfg *provisioning.Repository, render rendering.Service, blobstore blob.PublicBlobStore, id identity.Requester) *Renderer { + return &Renderer{ + cfg: cfg, + render: render, + blobstore: blobstore, + id: id, + } +} + +func (r *Renderer) IsAvailable(ctx context.Context) bool { return r.render != nil && r.render.IsAvailable(ctx) && r.blobstore.IsAvailable() } -func (r *renderer) RenderDashboardPreview(ctx context.Context, path string, ref string) (string, error) { +func (r *Renderer) RenderDashboardPreview(ctx context.Context, path string, ref string) (string, error) { url := fmt.Sprintf("admin/provisioning/%s/dashboard/preview/%s?kiosk&ref=%s", r.cfg.Name, path, ref) // fmt.Printf("RENDER: http://localhost:3000/render/%s\n", url) diff --git a/pkg/registry/apis/provisioning/jobs/worker.go b/pkg/registry/apis/provisioning/jobs/worker.go index 43cfb49b4f0..e1e17c95917 100644 --- a/pkg/registry/apis/provisioning/jobs/worker.go +++ b/pkg/registry/apis/provisioning/jobs/worker.go @@ -109,13 +109,7 @@ func (g *JobWorker) Process(ctx context.Context, job provisioning.Job, progress return nil, fmt.Errorf("error parsing base url: %w", err) } - // FIXME: renderer should be in its own package - renderer := &renderer{ - cfg: repo.Config(), - render: g.render, - blobstore: g.blobstore, - id: id, - } + renderer := pullrequest.NewRenderer(repo.Config(), g.render, g.blobstore, id) options := job.Spec.PullRequest if options == nil {