From ebdbb0c96d876caa5e065ab602ffc84cf882d10a Mon Sep 17 00:00:00 2001 From: Leonard Gram Date: Thu, 23 Apr 2020 14:44:52 +0200 Subject: [PATCH] Rendering: makes sure IsAvailable can be used during init of other services (#23817) * Rendering: makes sure service knows if it is configured after Init() * Rendering: refactor --- pkg/services/rendering/rendering.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/pkg/services/rendering/rendering.go b/pkg/services/rendering/rendering.go index c45fd2978ed..b00d431228e 100644 --- a/pkg/services/rendering/rendering.go +++ b/pkg/services/rendering/rendering.go @@ -22,7 +22,11 @@ import ( func init() { remotecache.Register(&RenderUser{}) - registry.RegisterService(&RenderingService{}) + registry.Register(®istry.Descriptor{ + Name: "RenderingService", + Instance: &RenderingService{}, + InitPriority: registry.High, + }) } const renderKeyPrefix = "render-%s" @@ -68,7 +72,7 @@ func (rs *RenderingService) Init() error { } func (rs *RenderingService) Run(ctx context.Context) error { - if rs.Cfg.RendererUrl != "" { + if rs.remoteAvailable() { rs.log = rs.log.New("renderer", "http") rs.log.Info("Backend rendering via external http server") rs.renderAction = rs.renderViaHttp @@ -76,7 +80,7 @@ func (rs *RenderingService) Run(ctx context.Context) error { return nil } - if plugins.Renderer != nil { + if rs.pluginAvailable() { rs.log = rs.log.New("renderer", "plugin") rs.pluginInfo = plugins.Renderer @@ -97,8 +101,16 @@ func (rs *RenderingService) Run(ctx context.Context) error { return nil } +func (rs *RenderingService) pluginAvailable() bool { + return plugins.Renderer != nil +} + +func (rs *RenderingService) remoteAvailable() bool { + return rs.Cfg.RendererUrl != "" +} + func (rs *RenderingService) IsAvailable() bool { - return rs.renderAction != nil + return rs.remoteAvailable() || rs.pluginAvailable() } func (rs *RenderingService) RenderErrorImage(err error) (*RenderResult, error) {