diff options
author | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-17 09:37:28 +0300 |
---|---|---|
committer | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-17 09:37:28 +0300 |
commit | abfcb75c06375d3159a718334bca563feafcc466 (patch) | |
tree | be33a4fcf1fedca28bf9dfbfa788a98fcea8f1cd | |
parent | eabebb2402a1282b447c4aa64a1ed158a05bcf45 (diff) | |
download | webui-vue-abfcb75c06375d3159a718334bca563feafcc466.tar.xz |
SILABMC-256: add fields for processors
-rw-r--r-- | src/locales/en-US.json | 3 | ||||
-rw-r--r-- | src/locales/ru-RU.json | 3 | ||||
-rw-r--r-- | src/store/modules/HardwareStatus/ProcessorStore.js | 34 | ||||
-rw-r--r-- | src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue | 4 | ||||
-rw-r--r-- | src/views/_sila/Processors/Dynamic/CpuTemp.vue | 84 |
5 files changed, 103 insertions, 25 deletions
diff --git a/src/locales/en-US.json b/src/locales/en-US.json index 2907982b..87892373 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -895,6 +895,9 @@ "warning": "Warning", "shutdown": "Shutdown" }, + "toast": { + "errorLimitUpdate": "Limit update error" + }, "table": { "temperature": { "name": "Name", diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json index 46d75e83..ce293d8f 100644 --- a/src/locales/ru-RU.json +++ b/src/locales/ru-RU.json @@ -895,6 +895,9 @@ "warning": "Значение предупреждения", "shutdown": "Значение отказа" }, + "toast": { + "errorLimitUpdate": "Ошибка обновления предела" + }, "table": { "temperature": { "name": "Имя модуля", diff --git a/src/store/modules/HardwareStatus/ProcessorStore.js b/src/store/modules/HardwareStatus/ProcessorStore.js index 68b29ab6..9a09dff4 100644 --- a/src/store/modules/HardwareStatus/ProcessorStore.js +++ b/src/store/modules/HardwareStatus/ProcessorStore.js @@ -8,12 +8,14 @@ const ProcessorStore = { cpuPower: [], cpuTempLastHour: [], cpuPowerLastHour: [], + limitsTemp: [], }, getters: { cpuTemp: (state) => state.cpuTemp, cpuPower: (state) => state.cpuPower, cpuTempLastHour: (state) => state.cpuTempLastHour, cpuPowerLastHour: (state) => state.cpuPowerLastHour, + limitsTemp: (state) => state.limitsTemp, }, mutations: { setProcessorsInfo: (state, data) => { @@ -78,8 +80,40 @@ const ProcessorStore = { setCpuPowerDynamicLastHour: (state, data) => { state.cpuPowerLastHour = data; }, + + setLimitsTemp: (state, data) => { + state.limitsTemp = data; + }, }, actions: { + async patchLimitsTemp({ dispatch }, { warning, groups }) { + return Promise.all( + groups.map( + async (group) => + await api.patch('/redfish/v1/Chassis/SILA_Baseboard/Thermal', { + Temperatures: [ + { + MemberId: group, + UpperThresholdNonCritical: warning, + }, + ], + }) + ) + ) + .catch((error) => { + console.log(error); + throw new Error(i18n.t('pageProcessor.toast.errorLimitUpdate')); + }) + .finally(() => dispatch('getLimitsTemp')); + }, + async getLimitsTemp({ commit }) { + return await api + .get('/redfish/v1/Chassis/SILA_Baseboard/Thermal') + .then(({ data: { Temperatures = [] } }) => { + commit('setLimitsTemp', Temperatures); + }) + .catch((error) => console.log(error)); + }, async getCpuPowerDynamic({ commit }, { lastHour }) { let url = null; if (lastHour) { diff --git a/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue b/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue index 7a3a392d..018e19a1 100644 --- a/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue +++ b/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue @@ -8,7 +8,7 @@ <img src="@/assets/images/_sila/collapsed/fan.svg" /> </template> <page-section> - <b-row class="align-items-end limit-container"> + <!-- <b-row class="align-items-end limit-container"> <b-col xs="12" md="6" xl="3" class="pt-4"> <b-form-group :label="$t('pageFans.labels.warning')"> <b-form-input @@ -35,7 +35,7 @@ {{ $t('global.action.save') }} </b-button> </b-col> - </b-row> + </b-row>--> <chart type="fans" :colors="colors" diff --git a/src/views/_sila/Processors/Dynamic/CpuTemp.vue b/src/views/_sila/Processors/Dynamic/CpuTemp.vue index 60813f9b..e3185aaa 100644 --- a/src/views/_sila/Processors/Dynamic/CpuTemp.vue +++ b/src/views/_sila/Processors/Dynamic/CpuTemp.vue @@ -8,43 +8,42 @@ <img src="@/assets/images/_sila/collapsed/temperature.svg" /> </template> <page-section> - <!-- <b-row class="align-items-end limit-container"> + <b-row class="align-items-end limit-container"> <b-col xs="12" sm="6" xl="3" class="pt-4"> - <b-form-group :label="$t('pageProcessors.labels.notNormal')"> + <b-form-group :label="$t('pageProcessors.labels.warning')"> <b-form-input - v-model="notNormal" + v-model.number="warning" type="number" :min="0" :max="100" - ></b-form-input> - </b-form-group> - </b-col> - <b-col xs="12" sm="6" xl="3" class="pt-4"> - <b-form-group :label="$t('pageProcessors.labels.critical')"> - <b-form-input v-model="critical" type="number" :min="0" :max="100"> + > </b-form-input> </b-form-group> </b-col> <b-col xs="12" sm="6" xl="3" class="pt-4"> - <b-form-group :label="$t('pageProcessors.labels.warning')"> - <b-form-input v-model="warning" type="number" :min="0" :max="100"> + <b-form-group :label="$t('pageProcessors.labels.critical')"> + <b-form-input + v-model.number="critical" + type="number" + :min="0" + :max="100" + > </b-form-input> </b-form-group> </b-col> <b-col xs="12" sm="6" xl="3" class="pt-4"> - <b-button variant="primary" style="height: 35px"> + <b-button variant="primary" style="height: 35px" @click="saveLimit"> {{ $t('global.action.save') }} </b-button> </b-col> - </b-row> --> + </b-row> <chart type="processors" :time-scale="timeScale" :data="filteredSensors" :colors="colors" - :warning="+warning" - :not-normal="+notNormal" - :critical="+critical" + :warning="warningLimit" + :critical="criticalLimit" ></chart> <b-table responsive="md" @@ -90,13 +89,14 @@ import PageSection from '@/components/Global/PageSection'; import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin'; import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin'; import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin'; +import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin'; import Collapse from '@/components/_sila/Global/Collapse'; -import { getItems } from '@/utilities/_sila/metricProperties'; +import { getGroups, getItems } from '@/utilities/_sila/metricProperties'; export default { components: { PageSection, Chart, Collapse }, - mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin], + mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin, BVToastMixin], props: { timeScale: { type: String, @@ -105,9 +105,8 @@ export default { }, data() { return { - warning: 72, - notNormal: 44, - critical: 55, + warning: null, + critical: null, isBusy: true, fields: [ { @@ -144,10 +143,35 @@ export default { }, computed: { + groups() { + return getGroups(this.filteredSensors); + }, + items() { return getItems(this.filteredSensors); }, + limits() { + return this.$store.getters['processors/limitsTemp']; + }, + + warningLimit() { + return this.limits.find((limit) => { + return ( + limit?.UpperThresholdNonCritical && + this.groups.includes(limit.MemberId) + ); + })?.UpperThresholdNonCritical; + }, + + criticalLimit() { + return this.limits.find((limit) => { + return ( + limit?.UpperThresholdCritical && this.groups.includes(limit.MemberId) + ); + })?.UpperThresholdCritical; + }, + allSensors() { return this.timeScale === 'hour' ? this.$store.getters['processors/cpuTempLastHour'] @@ -176,6 +200,16 @@ export default { this.loadData(); }, methods: { + saveLimit() { + this.startLoader(); + this.$store + .dispatch('processors/patchLimitsTemp', { + warning: this.warning, + groups: this.groups, + }) + .catch(({ message }) => this.errorToast(message)) + .finally(() => this.endLoader()); + }, onOpened(state) { if (state) { this.loadData(); @@ -192,8 +226,12 @@ export default { this.$store .dispatch('processors/getCpuTempDynamic', payload) .finally(() => { - this.endLoader(); - this.isBusy = false; + this.$store.dispatch('processors/getLimitsTemp').finally(() => { + this.warning = this.warningLimit; + this.critical = this.criticalLimit; + this.endLoader(); + this.isBusy = false; + }); }); }, }, |