summaryrefslogtreecommitdiff
path: root/src/store/plugins
diff options
context:
space:
mode:
authorYoshie Muranaka <yoshiemuranaka@gmail.com>2020-02-07 00:47:28 +0300
committerYoshie Muranaka <yoshiemuranaka@gmail.com>2020-02-17 21:48:43 +0300
commit1ace1d91e80425eeed482b33e21838acb7f7325a (patch)
tree86700b60471ae41222bdba6902b3cb308978953a /src/store/plugins
parentc031b6988d6381ae1d2ecefd04e8c2af47f0ff4a (diff)
downloadwebui-vue-1ace1d91e80425eeed482b33e21838acb7f7325a.tar.xz
Add Health status to app header
Added logging path and interface to websocket subscription data filter, to dynamically indicate Health status in the app header. - Update OverviewEvents to use highPriorityEvents data - Refactor EventLogStore Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: I35ad30b005c70625a5f6a69488d45db0fa049374
Diffstat (limited to 'src/store/plugins')
-rw-r--r--src/store/plugins/WebSocketPlugin.js31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/store/plugins/WebSocketPlugin.js b/src/store/plugins/WebSocketPlugin.js
index 3e2139dd..409b1686 100644
--- a/src/store/plugins/WebSocketPlugin.js
+++ b/src/store/plugins/WebSocketPlugin.js
@@ -2,16 +2,19 @@
* WebSocketPlugin will allow us to get new data from the server
* without having to poll for changes on the frontend.
*
- * This plugin is subscribed to host state property changes, which
- * is indicated in the app header Power status.
+ * This plugin is subscribed to host state property and logging
+ * changes, indicated in the app header Health and Power status.
*
* https://github.com/openbmc/docs/blob/b41aff0fabe137cdb0cfff584b5fe4a41c0c8e77/rest-api.md#event-subscription-protocol
*/
const WebSocketPlugin = store => {
let ws;
const data = {
- paths: ['/xyz/openbmc_project/state/host0'],
- interfaces: ['xyz.openbmc_project.State.Host']
+ paths: ['/xyz/openbmc_project/state/host0', '/xyz/openbmc_project/logging'],
+ interfaces: [
+ 'xyz.openbmc_project.State.Host',
+ 'xyz.openbmc_project.Logging.Entry'
+ ]
};
const initWebSocket = () => {
@@ -23,11 +26,21 @@ const WebSocketPlugin = store => {
console.error(event);
};
ws.onmessage = event => {
- const {
- properties: { CurrentHostState, RequestedHostTransition } = {}
- } = JSON.parse(event.data);
- const hostState = CurrentHostState || RequestedHostTransition;
- store.commit('global/setHostStatus', hostState);
+ const data = JSON.parse(event.data);
+ const eventInterface = data.interface;
+
+ if (eventInterface === 'xyz.openbmc_project.State.Host') {
+ const { properties: { CurrentHostState } = {} } = data;
+ store.commit('global/setHostStatus', CurrentHostState);
+ } else {
+ const { interfaces, event } = data;
+ if (event === 'InterfacesAdded' && interfaces) {
+ // Checking for 'InterfacesAdded' events
+ // since they have all properties needed to
+ // change health status
+ store.dispatch('eventLog/checkHealth', interfaces);
+ }
+ }
};
};