diff --git a/pkg/api/plugins.go b/pkg/api/plugins.go index ffe15c59357..2501b2c615d 100644 --- a/pkg/api/plugins.go +++ b/pkg/api/plugins.go @@ -456,6 +456,8 @@ func (hs *HTTPServer) InstallPlugin(c *contextmodel.ReqContext) response.Respons } pluginID := web.Params(c.Req)[":pluginId"] + hs.log.Info("Plugin install/update requested", "pluginId", pluginID, "user", c.Login) + compatOpts := plugins.NewCompatOpts(hs.Cfg.BuildVersion, runtime.GOOS, runtime.GOARCH) err := hs.pluginInstaller.Add(c.Req.Context(), pluginID, dto.Version, compatOpts) if err != nil { @@ -486,6 +488,9 @@ func (hs *HTTPServer) InstallPlugin(c *contextmodel.ReqContext) response.Respons func (hs *HTTPServer) UninstallPlugin(c *contextmodel.ReqContext) response.Response { pluginID := web.Params(c.Req)[":pluginId"] + + hs.log.Info("Plugin uninstall requested", "pluginId", pluginID, "user", c.Login) + plugin, exists := hs.pluginStore.Plugin(c.Req.Context(), pluginID) if !exists { return response.Error(http.StatusNotFound, "Plugin not installed", nil) diff --git a/pkg/api/plugins_test.go b/pkg/api/plugins_test.go index 1801f2b315a..2b01e7427bb 100644 --- a/pkg/api/plugins_test.go +++ b/pkg/api/plugins_test.go @@ -109,6 +109,8 @@ func Test_PluginsInstallAndUninstall(t *testing.T) { hs.authnService = &authntest.FakeService{ ExpectedIdentity: expectedIdentity, } + + hs.log = log.NewNopLogger() }) t.Run(testName("Install", tc), func(t *testing.T) { diff --git a/pkg/plugins/manager/installer.go b/pkg/plugins/manager/installer.go index b0be555af16..b1db5662c51 100644 --- a/pkg/plugins/manager/installer.go +++ b/pkg/plugins/manager/installer.go @@ -107,6 +107,8 @@ func (m *PluginInstaller) install(ctx context.Context, pluginID, version string, return nil, err } + m.log.Info("Updating plugin", "pluginId", pluginID, "from", plugin.Info.Version, "to", pluginArchiveInfo.Version) + // if existing plugin version is the same as the target update version if pluginArchiveInfo.Version == plugin.Info.Version { return nil, plugins.DuplicateError{ @@ -141,6 +143,7 @@ func (m *PluginInstaller) install(ctx context.Context, pluginID, version string, if err != nil { return nil, err } + m.log.Info("Installing plugin", "pluginId", pluginID, "version", version) } extractedArchive, err := m.pluginStorage.Extract(ctx, pluginID, m.pluginStorageDirFunc, pluginArchive.File)