diff options
author | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2020-06-15 23:25:46 +0300 |
---|---|---|
committer | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2020-06-18 00:06:33 +0300 |
commit | b89a53c8d4a740c959b12938445917c3df5d3d4b (patch) | |
tree | 4d7c5b01a25d1d06d314b0e6e461be4f1adb6479 /src/store | |
parent | e24b17d2f599a34895acb9eccff3144af55484c5 (diff) | |
download | webui-vue-b89a53c8d4a740c959b12938445917c3df5d3d4b.tar.xz |
Add Fans table to hardware status page
Add Fan items at /redfish/v1/Chassis/chassis/Thermal endpoint
to table with expansion row to view details.
Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: I1f69e30748f8dec62647468c4fd2e5b3947716d9
Diffstat (limited to 'src/store')
-rw-r--r-- | src/store/index.js | 4 | ||||
-rw-r--r-- | src/store/modules/Health/FanStore.js | 35 |
2 files changed, 38 insertions, 1 deletions
diff --git a/src/store/index.js b/src/store/index.js index b4e030ba..c4c0948f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -17,6 +17,7 @@ import ServerLedStore from './modules/Control/ServerLedStore'; import SystemStore from './modules/Health/SystemStore'; import PowerSupplyStore from './modules/Health/PowerSupplyStore'; import MemoryStore from './modules/Health/MemoryStore'; +import FanStore from './modules/Health/FanStore'; import WebSocketPlugin from './plugins/WebSocketPlugin'; @@ -42,7 +43,8 @@ export default new Vuex.Store({ sslCertificates: SslCertificatesStore, serverLed: ServerLedStore, system: SystemStore, - memory: MemoryStore + memory: MemoryStore, + fan: FanStore }, plugins: [WebSocketPlugin] }); diff --git a/src/store/modules/Health/FanStore.js b/src/store/modules/Health/FanStore.js new file mode 100644 index 00000000..2de388bf --- /dev/null +++ b/src/store/modules/Health/FanStore.js @@ -0,0 +1,35 @@ +import api from '@/store/api'; + +const FanStore = { + namespaced: true, + state: { + fans: [] + }, + getters: { + fans: state => state.fans + }, + mutations: { + setFanInfo: (state, data) => { + state.fans = data.map(fan => { + const { MemberId, Status = {}, PartNumber, SerialNumber } = fan; + return { + id: MemberId, + health: Status.Health, + partNumber: PartNumber, + serialNumber: SerialNumber, + statusState: Status.State + }; + }); + } + }, + actions: { + async getFanInfo({ commit }) { + return await api + .get('/redfish/v1/Chassis/chassis/Thermal') + .then(({ data: { Fans = [] } }) => commit('setFanInfo', Fans)) + .catch(error => console.log(error)); + } + } +}; + +export default FanStore; |