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 <yoshiemuranaka@gmail.com>
Change-Id: I5b45c37997647f5a265c1e84eb53f0b51699ee20
diff --git a/src/store/index.js b/src/store/index.js
index ad55030..ea1e9b3 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -15,6 +15,7 @@
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 @@
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 0000000..9c4c477
--- /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;