Files
mattermost/app
Jesse Hallam 847c181ec9 MM-8622: Improved plugin error reporting (#8737)
* allow `Wait()`ing on the supervisor

In the event the plugin supervisor shuts down a plugin for crashing too
many times, the new `Wait()` interface allows the `ActivatePlugin` to
accept a callback function to trigger when `supervisor.Wait()` returns.
If the supervisor shuts down normally, this callback is invoked with
a nil error, otherwise any error reported by the supervisor is passed
along.

* improve plugin activation/deactivation logic

Avoid triggering activation of previously failed-to-start plugins just
becase something in the configuration changed. Now, intelligently
compare the global enable bit as well as the each individual plugin's
enabled bit.

* expose store to manipulate PluginStatuses

* expose API to fetch plugin statuses

* keep track of whether or not plugin sandboxing is supported

* transition plugin statuses

* restore error on plugin activation if already active

* don't initialize test plugins until successfully loaded

* emit websocket events when plugin statuses change

* skip pruning if already initialized

* MM-8622: maintain plugin statuses in memory

Switch away from persisting plugin statuses to the database, and
maintain in memory instead. This will be followed by a cluster interface
to query the in-memory status of plugin statuses from all cluster nodes.

At the same time, rename `cluster_discovery_id` on the `PluginStatus`
model object to `cluster_id`.

* MM-8622: aggregate plugin statuses across cluster

* fetch cluster plugin statuses when emitting websocket notification

* address unit test fixes after rebasing

* relax (poor) racey unit test re: supervisor.Wait()

* make store-mocks
2018-05-23 14:26:35 -04:00
..
2018-04-27 12:49:45 -07:00
2017-09-06 23:11:59 -07:00
2018-04-27 12:49:45 -07:00
2018-03-07 12:36:40 -06:00
2018-04-27 12:49:45 -07:00
2017-10-18 15:36:43 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2017-10-30 11:57:24 -05:00
2018-04-27 12:49:45 -07:00
2018-05-16 13:43:22 -04:00
2018-03-29 10:04:54 -04:00
2018-04-27 12:49:45 -07:00
2018-02-12 16:01:02 -05:00
2018-04-27 12:49:45 -07:00
2018-05-18 13:07:52 -07:00
2018-01-17 13:38:37 -05:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-04-27 12:49:45 -07:00
2018-02-12 16:01:02 -05:00
2018-04-27 12:49:45 -07:00
2017-09-06 23:11:59 -07:00
2018-04-27 12:49:45 -07:00
2018-03-22 09:53:43 -04:00
2018-04-27 12:49:45 -07:00
2018-05-11 11:56:02 -04:00
2017-11-22 10:15:03 -05:00
2018-04-27 12:49:45 -07:00