summaryrefslogtreecommitdiff
path: root/src/store/plugins/WebSocketPlugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/store/plugins/WebSocketPlugin.js')
-rw-r--r--src/store/plugins/WebSocketPlugin.js60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/store/plugins/WebSocketPlugin.js b/src/store/plugins/WebSocketPlugin.js
deleted file mode 100644
index cbdc9329..00000000
--- a/src/store/plugins/WebSocketPlugin.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 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 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', '/xyz/openbmc_project/logging'],
- interfaces: [
- 'xyz.openbmc_project.State.Host',
- 'xyz.openbmc_project.Logging.Entry',
- ],
- };
-
- const initWebSocket = () => {
- const socketDisabled =
- process.env.VUE_APP_SUBSCRIBE_SOCKET_DISABLED === 'true' ? true : false;
- if (socketDisabled) return;
- const token = store.getters['authentication/token'];
- ws = new WebSocket(`wss://${window.location.host}/subscribe`, [token]);
- ws.onopen = () => {
- ws.send(JSON.stringify(data));
- };
- ws.onerror = (event) => {
- console.error(event);
- };
- ws.onmessage = (event) => {
- const data = JSON.parse(event.data);
- const eventInterface = data.interface;
- const path = data.path;
-
- if (eventInterface === 'xyz.openbmc_project.State.Host') {
- const { properties: { CurrentHostState } = {} } = data;
- if (CurrentHostState) {
- store.commit('global/setServerStatus', CurrentHostState);
- }
- } else if (path === '/xyz/openbmc_project/logging') {
- store.dispatch('eventLog/getEventLogData');
- }
- };
- };
-
- store.subscribe(({ type }) => {
- if (type === 'authentication/authSuccess') {
- initWebSocket();
- }
- if (type === 'authentication/logout') {
- if (ws) ws.close();
- }
- });
-
- if (store.getters['authentication/isLoggedIn']) initWebSocket();
-};
-
-export default WebSocketPlugin;