Remove /subscribe websocket handler

Having this code is causing crashes for implementations that don't have
dbus-rest enabled in bmcweb, which is deprecated.  This commit is
intended to start a discussion around this issue, and propose simply
removing it.

33a8c5369e0253a93dba2e70647bda1c7697b73b (checked in July 2020) points
this crash out, and adds a way to disable the feature.  While we could
just make VUE_APP_SUBSCRIBE_SOCKET_DISABLED the default, this seems ill
advised, given the dbus-rest options deprecated status.

Change-Id: I6244f5e2ce895199d5d47cfca9eef36584e8f524
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/.env.intel b/.env.intel
index 382e7fb..79d07f0 100644
--- a/.env.intel
+++ b/.env.intel
@@ -2,7 +2,6 @@
 VUE_APP_ENV_NAME="intel"
 VUE_APP_COMPANY_NAME="intel"
 VUE_APP_GUI_NAME="BMC System Management"
-VUE_APP_SUBSCRIBE_SOCKET_DISABLED="true"
 VUE_APP_SWITCH_TO_BACKUP_IMAGE_DISABLED="true"
 VUE_APP_MODIFY_SSH_POLICY_DISABLED="true"
 VUE_APP_VIRTUAL_MEDIA_LIST_ENABLED="true"
diff --git a/src/store/index.js b/src/store/index.js
index 8b1ed07..453e0f6 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -31,7 +31,6 @@
 import SnmpAlertsStore from './modules/Settings/SnmpAlertsStore';
 import KeyClearStore from './modules/Operations/KeyClearStore';
 
-import WebSocketPlugin from './plugins/WebSocketPlugin';
 import DateTimeStore from './modules/Settings/DateTimeStore';
 import VirtualMediaStore from './modules/Operations/VirtualMediaStore';
 
@@ -74,5 +73,4 @@
     factoryReset: FactoryResetStore,
     keyClear: KeyClearStore,
   },
-  plugins: [WebSocketPlugin],
 });
diff --git a/src/store/plugins/WebSocketPlugin.js b/src/store/plugins/WebSocketPlugin.js
deleted file mode 100644
index cbdc932..0000000
--- 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;