From 56ee769fd5a3df93eb275859a712700a7ba54944 Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Thu, 28 May 2020 13:28:29 -0700 Subject: Add Hardware status page and system table Adds ability to see system information in table format with a row expansion details view. Modified tables styles to add table borders. Created global mixin for table data formatting: - Show '--' for undefined or empty string values - Map Redfish health status options to status-icon values Signed-off-by: Yoshie Muranaka Change-Id: I5b45c37997647f5a265c1e84eb53f0b51699ee20 --- src/store/index.js | 4 +++- src/store/modules/Health/SystemStore.js | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/store/modules/Health/SystemStore.js (limited to 'src/store') diff --git a/src/store/index.js b/src/store/index.js index ad55030a..ea1e9b3b 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -15,6 +15,7 @@ import NetworkSettingStore from './modules/Configuration/NetworkSettingsStore'; import EventLogStore from './modules/Health/EventLogStore'; import SensorsStore from './modules/Health/SensorsStore'; import ServerLedStore from './modules/Control/ServerLedStore'; +import SystemStore from './modules/Health/SystemStore'; import WebSocketPlugin from './plugins/WebSocketPlugin'; @@ -38,7 +39,8 @@ export default new Vuex.Store({ eventLog: EventLogStore, sensors: SensorsStore, sslCertificates: SslCertificatesStore, - serverLed: ServerLedStore + serverLed: ServerLedStore, + system: SystemStore }, plugins: [WebSocketPlugin] }); diff --git a/src/store/modules/Health/SystemStore.js b/src/store/modules/Health/SystemStore.js new file mode 100644 index 00000000..9c4c477d --- /dev/null +++ b/src/store/modules/Health/SystemStore.js @@ -0,0 +1,39 @@ +import api from '@/store/api'; + +const SystemStore = { + namespaced: true, + state: { + systems: [] + }, + getters: { + systems: state => state.systems + }, + mutations: { + setSystemInfo: (state, data) => { + const system = {}; + system.assetTag = data.AssetTag; + system.description = data.Description; + system.health = data.Status.Health; + system.id = data.Id; + system.indicatorLed = data.IndicatorLED; + system.model = data.Model; + system.partNumber = data.PartNumber; + system.powerState = data.PowerState; + system.serialNumber = data.SerialNumber; + system.healthRollup = data.Status.HealthRollup; + system.statusState = data.Status.State; + system.systemType = data.SystemType; + state.systems = [system]; + } + }, + actions: { + async getSystem({ commit }) { + return await api + .get('/redfish/v1/Systems/system') + .then(({ data }) => commit('setSystemInfo', data)) + .catch(error => console.log(error)); + } + } +}; + +export default SystemStore; -- cgit v1.2.3