summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitalii Lysak <v.lysak@dunice.net>2022-07-21 20:56:53 +0300
committerVitalii Lysak <v.lysak@dunice.net>2022-07-21 20:56:53 +0300
commit7cba13534cda94a1efdbad2ff8dbe68de1fbeaa3 (patch)
tree6e8b1d480896b695907701648a621c80f98ee2dc
parent74f116101b3e4b925264b08611c42c054c0565e8 (diff)
downloadwebui-vue-7cba13534cda94a1efdbad2ff8dbe68de1fbeaa3.tar.xz
add charts for fans and processors
-rw-r--r--src/env/components/AppNavigation/sila.js16
-rw-r--r--src/env/router/sila.js18
-rw-r--r--src/locales/en-US.json5
-rw-r--r--src/locales/ru-RU.json6
-rw-r--r--src/store/modules/HardwareStatus/MemoryStore.js12
-rw-r--r--src/store/modules/_sila/HardwareStatus/FanStore.js12
-rw-r--r--src/views/_sila/Fans/Dynamic/FansDynamicPage.vue44
-rw-r--r--src/views/_sila/Fans/Dynamic/index.js2
-rw-r--r--src/views/_sila/Memory/Dynamic/MemoryDynamicPage.vue44
-rw-r--r--src/views/_sila/Memory/Dynamic/index.js2
-rw-r--r--src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue16
11 files changed, 171 insertions, 6 deletions
diff --git a/src/env/components/AppNavigation/sila.js b/src/env/components/AppNavigation/sila.js
index e3a8a380..4f47342e 100644
--- a/src/env/components/AppNavigation/sila.js
+++ b/src/env/components/AppNavigation/sila.js
@@ -69,6 +69,11 @@ const AppNavigationMixin = {
label: this.$t('appNavigation.staticInfo'),
route: '/fans/static',
},
+ {
+ id: 'fans/dynamic',
+ label: this.$t('appNavigation.dynamicInformation'),
+ route: '/fans/dynamic',
+ },
],
},
{
@@ -118,6 +123,17 @@ const AppNavigationMixin = {
],
},
{
+ id: 'memory',
+ label: this.$t('appNavigation.memory'),
+ children: [
+ {
+ id: 'memory/dynamic',
+ label: this.$t('appNavigation.dynamicInformation'),
+ route: '/memory/dynamic',
+ },
+ ],
+ },
+ {
id: 'processors',
label: this.$t('appNavigation.processors'),
children: [
diff --git a/src/env/router/sila.js b/src/env/router/sila.js
index f297b369..4a5d5b71 100644
--- a/src/env/router/sila.js
+++ b/src/env/router/sila.js
@@ -31,6 +31,8 @@ import VirtualMedia from '@/views/_sila/Operations/VirtualMedia';
import Power from '@/views/_sila/ResourceManagement/Power';
import FansStatic from '@/views/_sila/Fans/Static';
import ProcessorsDynamic from '@/views/_sila/Processors/Dynamic';
+import MemoryDynamic from '@/views/_sila/Memory/Dynamic';
+import FansDynamic from '@/views/_sila/Fans/Dynamic';
import i18n from '@/i18n';
const routes = [
@@ -162,6 +164,14 @@ const routes = [
},
},
{
+ path: 'memory/dynamic',
+ name: 'memory-dynamic',
+ component: MemoryDynamic,
+ meta: {
+ title: i18n.t('appPageTitle.memory'),
+ },
+ },
+ {
path: 'processors/dynamic',
name: 'processors-dynamic',
component: ProcessorsDynamic,
@@ -170,6 +180,14 @@ const routes = [
},
},
{
+ path: 'fans/dynamic',
+ name: 'fans-dynamic',
+ component: FansDynamic,
+ meta: {
+ title: i18n.t('appPageTitle.fans'),
+ },
+ },
+ {
path: '/security-and-access/sessions',
name: 'sessions',
component: Sessions,
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index ecdf71ad..1ec41e9e 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -131,7 +131,9 @@
"keyClear": "@:appPageTitle.keyClear",
"staticInfo": "Static Information",
"fans": "@:appPageTitle.fans",
- "processors": "@:appPageTitle.processors"
+ "processors": "@:appPageTitle.processors",
+ "memory": "@:appPageTitle.memory",
+ "fans": "@:appPageTitle.fans"
},
"appPageTitle": {
"changePassword": "Change password",
@@ -143,6 +145,7 @@
"factoryReset": "Factory reset",
"fans": "Fans",
"processors": "Processors",
+ "memory": "Memory modules",
"firmware": "Firmware",
"inventory": "Inventory and LEDs",
"kvm": "KVM",
diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json
index 5c237cdf..9bc62183 100644
--- a/src/locales/ru-RU.json
+++ b/src/locales/ru-RU.json
@@ -108,6 +108,8 @@
"settings": "Настройки",
"operations": "Управление",
"processors": "Процессоры",
+ "memory": "Модули памяти",
+ "fans": "Ветиляторы",
"dateTime": "@:appPageTitle.dateTime",
"dumps": "@:appPageTitle.dumps",
"eventLogs": "@:appPageTitle.eventLogs",
@@ -136,7 +138,8 @@
"keyClear": "@:appPageTitle.keyClear",
"staticInfo": "Статическая информация",
"fans": "@:appPageTitle.fans",
- "processors": "@:appPageTitle.processors"
+ "processors": "@:appPageTitle.processors",
+ "memory": "@:appPageTitle.memory"
},
"appPageTitle": {
"changePassword": "Изменить пароль",
@@ -148,6 +151,7 @@
"factoryReset": "Сброс до заводских настроек",
"fans": "Вентиляторы",
"processors": "Процессоры",
+ "memory": "Модули памяти",
"firmware": "Встроенное ПО",
"inventory": "Перечень оборудования и LED",
"kvm": "KVM",
diff --git a/src/store/modules/HardwareStatus/MemoryStore.js b/src/store/modules/HardwareStatus/MemoryStore.js
index fd8f0a91..9d79ad10 100644
--- a/src/store/modules/HardwareStatus/MemoryStore.js
+++ b/src/store/modules/HardwareStatus/MemoryStore.js
@@ -52,8 +52,20 @@ const MemoryStore = {
};
});
},
+
+ setMemoryDynamic: (state, data) => {
+ state.dimms = data;
+ },
},
actions: {
+ async getMemoryDynamic({ commit }) {
+ return await api
+ .get('/redfish/v1/TelemetryService/MetricReports/hour_data&dimm_temp')
+ .then(({ data: { MetricValues = [] } }) =>
+ commit('setMemoryDynamic', MetricValues)
+ )
+ .catch((error) => console.log(error));
+ },
async getDimms({ commit }) {
return await api
.get('/redfish/v1/Systems/system/Memory')
diff --git a/src/store/modules/_sila/HardwareStatus/FanStore.js b/src/store/modules/_sila/HardwareStatus/FanStore.js
index 1399710b..a7647f3d 100644
--- a/src/store/modules/_sila/HardwareStatus/FanStore.js
+++ b/src/store/modules/_sila/HardwareStatus/FanStore.js
@@ -39,8 +39,20 @@ const FanStore = {
};
});
},
+
+ setFansDynamic: (state, data) => {
+ state.fans = data;
+ },
},
actions: {
+ async getFansDynamic({ commit }) {
+ return await api
+ .get('/redfish/v1/TelemetryService/MetricReports/hour_data&fans')
+ .then(({ data: { MetricValues = [] } }) =>
+ commit('setFansDynamic', MetricValues)
+ )
+ .catch((error) => console.log(error));
+ },
async getFanInfo({ commit }) {
return await api
.get('/redfish/v1/Chassis/chassis/Thermal')
diff --git a/src/views/_sila/Fans/Dynamic/FansDynamicPage.vue b/src/views/_sila/Fans/Dynamic/FansDynamicPage.vue
new file mode 100644
index 00000000..543eea33
--- /dev/null
+++ b/src/views/_sila/Fans/Dynamic/FansDynamicPage.vue
@@ -0,0 +1,44 @@
+<template>
+ <b-container fluid="xl">
+ <page-title :description="$t('appPageTitle.dynamicInformation')" />
+
+ <chart :data="filteredSensors"></chart>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/_sila/Global/PageTitle';
+import Chart from '@/components/_sila/Global/Chart';
+
+import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
+import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin';
+
+export default {
+ components: { PageTitle, Chart },
+ mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin],
+ data() {
+ return {
+ activeFilters: [],
+ };
+ },
+
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['fan/fans'];
+ return sensors;
+ },
+
+ filteredSensors() {
+ return this.getFilteredTableData(this.allSensors, this.activeFilters);
+ },
+ },
+
+ created() {
+ this.startLoader();
+ this.$store.dispatch('fan/getFansDynamic').finally(() => {
+ this.endLoader();
+ });
+ },
+};
+</script>
diff --git a/src/views/_sila/Fans/Dynamic/index.js b/src/views/_sila/Fans/Dynamic/index.js
new file mode 100644
index 00000000..a3dadd5a
--- /dev/null
+++ b/src/views/_sila/Fans/Dynamic/index.js
@@ -0,0 +1,2 @@
+import FansDynamicPage from './FansDynamicPage.vue';
+export default FansDynamicPage;
diff --git a/src/views/_sila/Memory/Dynamic/MemoryDynamicPage.vue b/src/views/_sila/Memory/Dynamic/MemoryDynamicPage.vue
new file mode 100644
index 00000000..59f7cbc5
--- /dev/null
+++ b/src/views/_sila/Memory/Dynamic/MemoryDynamicPage.vue
@@ -0,0 +1,44 @@
+<template>
+ <b-container fluid="xl">
+ <page-title :description="$t('appPageTitle.dynamicInformation')" />
+
+ <chart :data="filteredSensors"></chart>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/_sila/Global/PageTitle';
+import Chart from '@/components/_sila/Global/Chart';
+
+import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin';
+import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin';
+import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin';
+
+export default {
+ components: { PageTitle, Chart },
+ mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin],
+ data() {
+ return {
+ activeFilters: [],
+ };
+ },
+
+ computed: {
+ allSensors() {
+ let sensors = this.$store.getters['memory/dimms'];
+ return sensors;
+ },
+
+ filteredSensors() {
+ return this.getFilteredTableData(this.allSensors, this.activeFilters);
+ },
+ },
+
+ created() {
+ this.startLoader();
+ this.$store.dispatch('memory/getMemoryDynamic').finally(() => {
+ this.endLoader();
+ });
+ },
+};
+</script>
diff --git a/src/views/_sila/Memory/Dynamic/index.js b/src/views/_sila/Memory/Dynamic/index.js
new file mode 100644
index 00000000..b840772c
--- /dev/null
+++ b/src/views/_sila/Memory/Dynamic/index.js
@@ -0,0 +1,2 @@
+import MemoryDynamicPage from './MemoryDynamicPage.vue';
+export default MemoryDynamicPage;
diff --git a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue
index 29ec1997..8525b174 100644
--- a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue
+++ b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue
@@ -1,4 +1,4 @@
-<template>
+<!--<template>
<b-container fluid="xl">
<page-title :description="$t('appPageTitle.dynamicInformation')" />
<collapse id="collapse_1">
@@ -24,20 +24,28 @@
</page-section>
</collapse>
</b-container>
+</template>-->
+
+<template>
+ <b-container fluid="xl">
+ <page-title :description="$t('appPageTitle.dynamicInformation')" />
+
+ <chart :data="filteredSensors"></chart>
+ </b-container>
</template>
<script>
import PageTitle from '@/components/_sila/Global/PageTitle';
import Chart from '@/components/_sila/Global/Chart';
-import PageSection from '@/components/Global/PageSection';
+// 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 Collapse from '@/components/_sila/Global/Collapse';
+// import Collapse from '@/components/_sila/Global/Collapse';
export default {
- components: { PageTitle, Collapse, PageSection, Chart },
+ components: { PageTitle, /*Collapse, PageSection,*/ Chart },
mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin],
data() {
return {