plugins: further logging tweaks, fixes (#24229)
Fix a logging issue for prepackaged plugins error handling trying to reference a `nil` pointer. Relates-to: https://mattermost.atlassian.net/browse/MM-53355
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
122dbaf373
Коммит
7818d5a348
@@ -334,6 +334,11 @@ func (ch *Channels) syncPlugins() *model.AppError {
|
|||||||
return appErr
|
return appErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(pluginSignaturePathMap) == 0 {
|
||||||
|
ch.srv.Log().Info("No plugins to sync from the file store")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
for _, plugin := range pluginSignaturePathMap {
|
for _, plugin := range pluginSignaturePathMap {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(plugin *pluginSignaturePath) {
|
go func(plugin *pluginSignaturePath) {
|
||||||
@@ -896,7 +901,7 @@ func (ch *Channels) getPluginsFromFilePaths(fileStorePaths []string) map[string]
|
|||||||
if strings.HasSuffix(path, ".tar.gz.sig") {
|
if strings.HasSuffix(path, ".tar.gz.sig") {
|
||||||
id := strings.TrimSuffix(filepath.Base(path), ".tar.gz.sig")
|
id := strings.TrimSuffix(filepath.Base(path), ".tar.gz.sig")
|
||||||
if val, ok := pluginSignaturePathMap[id]; !ok {
|
if val, ok := pluginSignaturePathMap[id]; !ok {
|
||||||
mlog.Warn("Unknown signature", mlog.String("path", path))
|
ch.srv.Log().Warn("Unknown signature", mlog.String("path", path))
|
||||||
} else {
|
} else {
|
||||||
val.signaturePath = path
|
val.signaturePath = path
|
||||||
}
|
}
|
||||||
@@ -909,6 +914,7 @@ func (ch *Channels) getPluginsFromFilePaths(fileStorePaths []string) map[string]
|
|||||||
func (ch *Channels) processPrepackagedPlugins(pluginsDir string) []*plugin.PrepackagedPlugin {
|
func (ch *Channels) processPrepackagedPlugins(pluginsDir string) []*plugin.PrepackagedPlugin {
|
||||||
prepackagedPluginsDir, found := fileutils.FindDir(pluginsDir)
|
prepackagedPluginsDir, found := fileutils.FindDir(pluginsDir)
|
||||||
if !found {
|
if !found {
|
||||||
|
ch.srv.Log().Debug("No prepackaged plugins directory found")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -937,7 +943,7 @@ func (ch *Channels) processPrepackagedPlugins(pluginsDir string) []*plugin.Prepa
|
|||||||
if errors.As(err, &appErr) && appErr.Id == "app.plugin.skip_installation.app_error" {
|
if errors.As(err, &appErr) && appErr.Id == "app.plugin.skip_installation.app_error" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ch.srv.Log().Error("Failed to install prepackaged plugin", mlog.String("plugin_id", p.Manifest.Id), mlog.String("bundle_path", psPath.bundlePath), mlog.Err(err))
|
ch.srv.Log().Error("Failed to install prepackaged plugin", mlog.String("bundle_path", psPath.bundlePath), mlog.Err(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
prepackagedPlugins <- p
|
prepackagedPlugins <- p
|
||||||
@@ -957,7 +963,7 @@ func (ch *Channels) processPrepackagedPlugins(pluginsDir string) []*plugin.Prepa
|
|||||||
// processPrepackagedPlugin will return the prepackaged plugin metadata and will also
|
// processPrepackagedPlugin will return the prepackaged plugin metadata and will also
|
||||||
// install the prepackaged plugin if it had been previously enabled and AutomaticPrepackagedPlugins is true.
|
// install the prepackaged plugin if it had been previously enabled and AutomaticPrepackagedPlugins is true.
|
||||||
func (ch *Channels) processPrepackagedPlugin(pluginPath *pluginSignaturePath) (*plugin.PrepackagedPlugin, error) {
|
func (ch *Channels) processPrepackagedPlugin(pluginPath *pluginSignaturePath) (*plugin.PrepackagedPlugin, error) {
|
||||||
logger := ch.srv.Log().With(mlog.String("plugin_id", pluginPath.pluginID), mlog.String("bundle_path", pluginPath.bundlePath))
|
logger := ch.srv.Log().With(mlog.String("bundle_path", pluginPath.bundlePath))
|
||||||
|
|
||||||
logger.Info("Processing prepackaged plugin")
|
logger.Info("Processing prepackaged plugin")
|
||||||
|
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ func (ch *Channels) installExtractedPlugin(manifest *model.Manifest, fromPluginD
|
|||||||
}
|
}
|
||||||
|
|
||||||
if version.LTE(existingVersion) {
|
if version.LTE(existingVersion) {
|
||||||
logger.Warn("Skipping local installation of plugin since existing version is newer", mlog.String("version", version.String()), mlog.String("existing_version", existingVersion.String()))
|
logger.Warn("Skipping local installation of plugin since not a newer version", mlog.String("version", version.String()), mlog.String("existing_version", existingVersion.String()))
|
||||||
return nil, model.NewAppError("installExtractedPlugin", "app.plugin.skip_installation.app_error", map[string]any{"Id": manifest.Id}, "", http.StatusInternalServerError)
|
return nil, model.NewAppError("installExtractedPlugin", "app.plugin.skip_installation.app_error", map[string]any{"Id": manifest.Id}, "", http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user