Extracting html templates into a library (#16946)
* Extracting html templates into a library * Moving tests to the right place * Fixing tests * Addressing PR review comments * Addressing PR review comments * Replacing attomic with RWMutex * Returning errors as channel for Templates watcher * Address PR review comments * Other small fixes * Simplifying NewWithWatcher * Addressing PR review comments * Making error handling on rendering templates more robust * Fixing tests * Changing how we return errors * Fixing shadow variables * Addressing PR review comments * Logging errors from the outside of sendNotificationEmail * Fixing lock in shutdown * Fixing the resource copy for commands tests temporary directories * Removing unused import * A couple of tiny fixes
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
58dce5930e
Коммит
95b0809850
@@ -58,6 +58,7 @@ import (
|
||||
"github.com/mattermost/mattermost-server/v5/shared/filestore"
|
||||
"github.com/mattermost/mattermost-server/v5/shared/i18n"
|
||||
"github.com/mattermost/mattermost-server/v5/shared/mlog"
|
||||
"github.com/mattermost/mattermost-server/v5/shared/templates"
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
"github.com/mattermost/mattermost-server/v5/store/localcachelayer"
|
||||
"github.com/mattermost/mattermost-server/v5/store/retrylayer"
|
||||
@@ -65,6 +66,7 @@ import (
|
||||
"github.com/mattermost/mattermost-server/v5/store/sqlstore"
|
||||
"github.com/mattermost/mattermost-server/v5/store/timerlayer"
|
||||
"github.com/mattermost/mattermost-server/v5/utils"
|
||||
"github.com/mattermost/mattermost-server/v5/utils/fileutils"
|
||||
)
|
||||
|
||||
var MaxNotificationsPerChannelDefault int64 = 1000000
|
||||
@@ -133,7 +135,7 @@ type Server struct {
|
||||
|
||||
newStore func() (store.Store, error)
|
||||
|
||||
htmlTemplateWatcher *utils.HTMLTemplateWatcher
|
||||
htmlTemplateWatcher *templates.Container
|
||||
sessionCache cache.Cache
|
||||
seenPendingPostIdsCache cache.Cache
|
||||
statusCache cache.Cache
|
||||
@@ -391,9 +393,19 @@ func NewServer(options ...Option) (*Server, error) {
|
||||
}
|
||||
}
|
||||
|
||||
if htmlTemplateWatcher, err2 := utils.NewHTMLTemplateWatcher("templates"); err2 != nil {
|
||||
mlog.Error("Failed to parse server templates", mlog.Err(err2))
|
||||
templatesDir, ok := fileutils.FindDir("templates")
|
||||
if !ok {
|
||||
mlog.Error("Failed find server templates", mlog.String("directory", "templates"))
|
||||
} else {
|
||||
htmlTemplateWatcher, errorsChan, err2 := templates.NewWithWatcher(templatesDir)
|
||||
if err2 != nil {
|
||||
return nil, errors.Wrap(err2, "cannot initialize server templates")
|
||||
}
|
||||
s.Go(func() {
|
||||
for err2 := range errorsChan {
|
||||
mlog.Warn("Server templates error", mlog.Err(err2))
|
||||
}
|
||||
})
|
||||
s.htmlTemplateWatcher = htmlTemplateWatcher
|
||||
}
|
||||
|
||||
@@ -865,13 +877,10 @@ func (s *Server) Shutdown() {
|
||||
// Push notification hub needs to be shutdown after HTTP server
|
||||
// to prevent stray requests from generating a push notification after it's shut down.
|
||||
s.StopPushNotificationsHubWorkers()
|
||||
s.htmlTemplateWatcher.Close()
|
||||
|
||||
s.WaitForGoroutines()
|
||||
|
||||
if s.htmlTemplateWatcher != nil {
|
||||
s.htmlTemplateWatcher.Close()
|
||||
}
|
||||
|
||||
if s.advancedLogListenerCleanup != nil {
|
||||
s.advancedLogListenerCleanup()
|
||||
s.advancedLogListenerCleanup = nil
|
||||
|
||||
Ссылка в новой задаче
Block a user