summaryrefslogtreecommitdiff
path: root/src/store/modules/Control
diff options
context:
space:
mode:
Diffstat (limited to 'src/store/modules/Control')
-rw-r--r--src/store/modules/Control/ControlStore.js2
-rw-r--r--src/store/modules/Control/VirtualMediaStore.js80
2 files changed, 81 insertions, 1 deletions
diff --git a/src/store/modules/Control/ControlStore.js b/src/store/modules/Control/ControlStore.js
index 82dbdcc1..c06ff4fc 100644
--- a/src/store/modules/Control/ControlStore.js
+++ b/src/store/modules/Control/ControlStore.js
@@ -1,4 +1,4 @@
-import api from '../../api';
+import api from '@/store/api';
import i18n from '../../../i18n';
/**
diff --git a/src/store/modules/Control/VirtualMediaStore.js b/src/store/modules/Control/VirtualMediaStore.js
new file mode 100644
index 00000000..e01cfce1
--- /dev/null
+++ b/src/store/modules/Control/VirtualMediaStore.js
@@ -0,0 +1,80 @@
+import api from '../../api';
+import i18n from '@/i18n';
+
+const VirtualMediaStore = {
+ namespaced: true,
+ state: {
+ proxyDevices: [],
+ legacyDevices: [],
+ connections: []
+ },
+ getters: {
+ proxyDevices: state => state.proxyDevices,
+ legacyDevices: state => state.legacyDevices
+ },
+ mutations: {
+ setProxyDevicesData: (state, deviceData) =>
+ (state.proxyDevices = deviceData),
+ setLegacyDevicesData: (state, deviceData) =>
+ (state.legacyDevices = deviceData)
+ },
+ actions: {
+ async getData({ commit }) {
+ const virtualMediaListEnabled =
+ process.env.VUE_APP_VIRTUAL_MEDIA_LIST_ENABLED === 'true'
+ ? true
+ : false;
+ if (!virtualMediaListEnabled) {
+ const device = {
+ id: i18n.t('pageVirtualMedia.defaultDeviceName'),
+ websocket: '/vm/0/0',
+ file: null,
+ transferProtocolType: 'OEM',
+ isActive: false
+ };
+ commit('setProxyDevicesData', [device]);
+ return;
+ }
+
+ return await api
+ .get('/redfish/v1/Managers/bmc/VirtualMedia')
+ .then(response =>
+ response.data.Members.map(virtualMedia => virtualMedia['@odata.id'])
+ )
+ .then(devices => api.all(devices.map(device => api.get(device))))
+ .then(devices => {
+ const deviceData = devices.map(device => {
+ return {
+ id: device.data?.Id,
+ transferProtocolType: device.data?.TransferProtocolType,
+ websocket: device.data?.Oem?.OpenBMC?.WebSocketEndpoint
+ };
+ });
+ const proxyDevices = deviceData
+ .filter(d => d.transferProtocolType === 'OEM')
+ .map(device => {
+ return {
+ ...device,
+ file: null,
+ isActive: false
+ };
+ });
+ const legacyDevices = deviceData
+ .filter(d => !d.transferProtocolType)
+ .map(device => {
+ return {
+ ...device,
+ address: ''
+ };
+ });
+ commit('setProxyDevicesData', proxyDevices);
+ commit('setLegacyDevicesData', legacyDevices);
+ })
+ .catch(error => {
+ console.log('Virtual Media:', error);
+ });
+ }
+ }
+};
+
+export default VirtualMediaStore;