From e37e7530d334bd18777d774192303680d9585857 Mon Sep 17 00:00:00 2001 From: Vitalii Lysak Date: Tue, 26 Jul 2022 16:09:08 +0300 Subject: add power for processor --- src/assets/images/_sila/collapsed/power.svg | 3 + src/components/_sila/Global/Collapse.vue | 8 + src/locales/en-US.json | 1 + src/locales/ru-RU.json | 24 ++- src/store/modules/HardwareStatus/ProcessorStore.js | 32 +++- src/views/_sila/Processors/Dynamic/Power.vue | 163 +++++++++++++++++++++ .../Processors/Dynamic/ProcessorsDynamicPage.vue | 16 +- 7 files changed, 229 insertions(+), 18 deletions(-) create mode 100644 src/assets/images/_sila/collapsed/power.svg create mode 100644 src/views/_sila/Processors/Dynamic/Power.vue diff --git a/src/assets/images/_sila/collapsed/power.svg b/src/assets/images/_sila/collapsed/power.svg new file mode 100644 index 00000000..84acf641 --- /dev/null +++ b/src/assets/images/_sila/collapsed/power.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/_sila/Global/Collapse.vue b/src/components/_sila/Global/Collapse.vue index 4a3694bd..d5076d77 100644 --- a/src/components/_sila/Global/Collapse.vue +++ b/src/components/_sila/Global/Collapse.vue @@ -4,6 +4,7 @@ v-b-toggle="id" variant="collapse" class="d-flex flex-nowrap justify-content-start" + @click="onClick" > {{ title }} @@ -31,8 +32,15 @@ export default { }, data() { return { + opened: false, iconChevronUp: iconChevronUp, }; }, + methods: { + onClick() { + this.opened = !this.opened; + this.$emit('opened', this.opened); + }, + }, }; diff --git a/src/locales/en-US.json b/src/locales/en-US.json index 7494318f..c19c756f 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -836,6 +836,7 @@ }, "pageProcessors": { "temperature": "Temperature Display", + "power": "Power consumption indicators", "labels": { "notNormal": "Not regular", "critical": "Critical", diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json index 6c5bff0b..88d4cc88 100644 --- a/src/locales/ru-RU.json +++ b/src/locales/ru-RU.json @@ -854,19 +854,27 @@ }, "pageProcessors": { "temperature": "Показатели температуры", + "power": "Показатели потребляемой мощности", "labels": { "notNormal": "Не штатный режим", "critical": "Критический режим", - "warning": "Значение предупреждения" + "warning": "Значение предупреждения", + "shutdown": "Значение отказа" }, "table": { - "name": "Имя модуля", - "currentTemperature": "Текущее, С°", - "middleTemperature": "Среднее, С°", - "minTemperature": "Минимальное, С°", - "minDate": "Дата минимального", - "maxTemperature": "Максимальное, С°", - "maxDate": "Дата максимального" + "temperature": { + "name": "Имя модуля", + "currentTemperature": "Текущее, С°", + "middleTemperature": "Среднее, С°", + "minTemperature": "Минимальное, С°", + "minDate": "Дата минимального", + "maxTemperature": "Максимальное, С°", + "maxDate": "Дата максимального" + }, + "power": { + "name": "Имя модуля", + "current": "Текущее, Вт" + } } }, "pageMemory": { diff --git a/src/store/modules/HardwareStatus/ProcessorStore.js b/src/store/modules/HardwareStatus/ProcessorStore.js index a28cd00c..5d014ab9 100644 --- a/src/store/modules/HardwareStatus/ProcessorStore.js +++ b/src/store/modules/HardwareStatus/ProcessorStore.js @@ -5,9 +5,11 @@ const ProcessorStore = { namespaced: true, state: { processors: [], + cpuPower: [], }, getters: { processors: (state) => state.processors, + cpuPower: (state) => state.cpuPower, }, mutations: { setProcessorsInfo: (state, data) => { @@ -63,21 +65,37 @@ const ProcessorStore = { setProcessorsDynamic: (state, data) => { state.processors = data; }, + setCpuPowerDynamic: (state, data) => { + state.cpuPower = data; + }, }, actions: { - async getProcessorsDynamicHour({ commit }) { + async getCpuPowerDynamic({ commit }, { lastHour }) { + let url = null; + if (lastHour) { + url = + '/redfish/v1/TelemetryService/MetricReports/hour_data&id=power&period=last_hour'; + } else { + url = '/redfish/v1/TelemetryService/MetricReports/hour_data&id=power'; + } return await api - .get( - '/redfish/v1/TelemetryService/MetricReports/hour_data&id=cpu_temp&period=last_hour' - ) + .get(url) .then(({ data: { MetricValues = [] } }) => - commit('setProcessorsDynamic', MetricValues) + commit('setCpuPowerDynamic', MetricValues) ) .catch((error) => console.log(error)); }, - async getProcessorsDynamic({ commit }) { + async getCpuTempDynamic({ commit }, { lastHour }) { + let url = null; + if (lastHour) { + url = + '/redfish/v1/TelemetryService/MetricReports/hour_data&id=cpu_temp&period=last_hour'; + } else { + url = + '/redfish/v1/TelemetryService/MetricReports/hour_data&id=cpu_temp'; + } return await api - .get('/redfish/v1/TelemetryService/MetricReports/hour_data&cpu_temp') + .get(url) .then(({ data: { MetricValues = [] } }) => commit('setProcessorsDynamic', MetricValues) ) diff --git a/src/views/_sila/Processors/Dynamic/Power.vue b/src/views/_sila/Processors/Dynamic/Power.vue new file mode 100644 index 00000000..4f486f6b --- /dev/null +++ b/src/views/_sila/Processors/Dynamic/Power.vue @@ -0,0 +1,163 @@ + + diff --git a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue index 45ef53f6..24163bcc 100644 --- a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue +++ b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue @@ -103,6 +103,8 @@ + +