From 9055d9880b35b8c076f2ff12e726f1cf22f237fc Mon Sep 17 00:00:00 2001 From: Sukanya Pandey Date: Tue, 31 Mar 2020 17:37:53 +0530 Subject: Add manage power usage page -The page is used to control the power. -Maximum power can be set between 1 to 10000. -The API used to get and set the power limit:/redfish/v1/Chassis/chassis/Power Signed-off-by: Sukanya Pandey Change-Id: I1cab4876e9149d92de75014d7680ac11410ca4fe --- src/components/AppNavigation/AppNavigation.vue | 2 +- src/locales/en-US.json | 11 ++ src/router/index.js | 8 ++ src/store/modules/Control/PowerControlStore.js | 21 ++++ .../Control/ManagePowerUsage/ManagePowerUsage.vue | 139 +++++++++++++++++++++ src/views/Control/ManagePowerUsage/index.js | 2 + 6 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 src/views/Control/ManagePowerUsage/ManagePowerUsage.vue create mode 100644 src/views/Control/ManagePowerUsage/index.js (limited to 'src') diff --git a/src/components/AppNavigation/AppNavigation.vue b/src/components/AppNavigation/AppNavigation.vue index f98db35d..5196099b 100644 --- a/src/components/AppNavigation/AppNavigation.vue +++ b/src/components/AppNavigation/AppNavigation.vue @@ -34,7 +34,7 @@ - + {{ $t('appNavigation.managePowerUsage') }} diff --git a/src/locales/en-US.json b/src/locales/en-US.json index ff57c5d4..b36a18e2 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -25,6 +25,7 @@ "form": { "fieldRequired": "Field required", "invalidFormat": "Invalid format", + "invalidValue": "Invalid value", "lengthMustBeBetween": "Length must be between %{min} – %{max} characters", "mustBeAtLeast": "Must be at least %{value}", "required": "Required", @@ -245,6 +246,16 @@ "solConsole": "Serial over LAN console" } }, + "pageManagePowerUsage": { + "description": "Set a power cap to keep power consumption at or below the specified value in watts", + "powerCapLabel": "Power cap value (in watts)", + "powerCapLabelTextInfo": " Value must be between %{min} and %{max}", + "powerCapSettingData": "Apply power cap", + "powerCapSettingLabel": "Power cap setting", + "powerConsumption": "Current power consumption", + "serverPowCapSetting": "Server power cap setting" + }, + "pageRebootBmc": { "rebootBmc": "Reboot BMC", "rebootInformation": "When you reboot the BMC, your web browser loses contact with the BMC for several minutes. When the BMC is back online, you may need to log in again.", diff --git a/src/router/index.js b/src/router/index.js index 44c32467..fc361019 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -55,6 +55,14 @@ const routes = [ title: 'appPageTitle.sslCertificates' } }, + { + path: '/control/manage-power-usage', + name: 'manage-power-usage', + component: () => import('@/views/Control/ManagePowerUsage'), + meta: { + title: 'appPageTitle.managePowerUsage' + } + }, { path: '/control/reboot-bmc', name: 'reboot-bmc', diff --git a/src/store/modules/Control/PowerControlStore.js b/src/store/modules/Control/PowerControlStore.js index 78585395..85d69633 100644 --- a/src/store/modules/Control/PowerControlStore.js +++ b/src/store/modules/Control/PowerControlStore.js @@ -1,4 +1,5 @@ import api from '../../api'; +import i18n from '@/i18n'; const PowerControlStore = { namespaced: true, @@ -17,6 +18,9 @@ const PowerControlStore = { (state.powerConsumptionValue = powerConsumptionValue) }, actions: { + setPowerCapUpdatedValue({ commit }, value) { + commit('setPowerCapValue', value); + }, async getPowerControl({ commit }) { return await api .get('/redfish/v1/Chassis/chassis/Power') @@ -32,6 +36,23 @@ const PowerControlStore = { .catch(error => { console.log('Power control', error); }); + }, + async setPowerControl(_, powerCapValue) { + const data = { + PowerControl: [{ PowerLimit: { LimitInWatts: powerCapValue } }] + }; + + return await api + .patch('/redfish/v1/Chassis/chassis/Power', data) + .then(() => + i18n.t('pageServerPowerOperations.toast.successSaveSettings') + ) + .catch(error => { + console.log(error); + throw new Error( + i18n.t('pageServerPowerOperations.toast.errorSaveSettings') + ); + }); } } }; diff --git a/src/views/Control/ManagePowerUsage/ManagePowerUsage.vue b/src/views/Control/ManagePowerUsage/ManagePowerUsage.vue new file mode 100644 index 00000000..8a16b88b --- /dev/null +++ b/src/views/Control/ManagePowerUsage/ManagePowerUsage.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/views/Control/ManagePowerUsage/index.js b/src/views/Control/ManagePowerUsage/index.js new file mode 100644 index 00000000..f3e95ac1 --- /dev/null +++ b/src/views/Control/ManagePowerUsage/index.js @@ -0,0 +1,2 @@ +import ManagePowerUsage from './ManagePowerUsage.vue'; +export default ManagePowerUsage; -- cgit v1.2.3