* Get the count of the all system users at endpoint /users/stats
* Added GetTotalUsersStats test in api4
* Changed pluralization and added the test back.
Some years ago, we explicitly disallowed keep-alive on connections
initiated by the golang driver to the mattermost-server, possibly due to
memory leak issues. While this path isn't used directly via a typical
werver/webapp setup, it makes sense to allow keep-alive for any
third-party programmatic use of the API.
This commit will allow us to test `master` with the behaviour over some
time to identify any potential new troubles.
* MM-6839: search relative to executable (#8853)
* MM-6839: searching for paths relative to executable
In addition to searching relative to the current working directory, also
search relative to the location of the binary. This helps locate config
and i18n files when invoking an absolute path to the mattermost binary.
* MM-6839: find mattermost/ binary using utils.FindFile
* add unit tests for utils.FindFile to exclude directories
* fix filtering out directories in FindFile
* fix platform invoking ./bin/mattermost
* disable Supervisor_PluginRepeatedlyCrash
This test is failing sporadically, largely due to the use of a timeout
to verify results. A more robust solution is required.
* disable Supervisor_PluginCrash
This test is failing sporadically, largely due to the use of a timeout
to verify results. A more robust solution is required.
* MM-6839: searching for paths relative to executable
In addition to searching relative to the current working directory, also
search relative to the location of the binary. This helps locate config
and i18n files when invoking an absolute path to the mattermost binary.
* MM-6839: find mattermost/ binary using utils.FindFile
* send websocket event whenever the channel has changed it's type (public|private)
* updated per comment
Signed-off-by: Saturnino Abril <saturnino.abril@gmail.com>
* add channel_converted websocket event
Signed-off-by: Saturnino Abril <saturnino.abril@gmail.com>
* only send channel_id via websocket message for "channel_converted" event
Signed-off-by: Saturnino Abril <saturnino.abril@gmail.com>
* 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