From c11d38945b8a51e4181142c2b8852ffcb30338d9 Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Wed, 19 Feb 2020 08:07:40 -0800 Subject: Add Reboot BMC page Created a ControlStore with the intention to consolidate actions across multiple subnav pages under the 'Control' tab, instead of creating a dedicated RebootBmc store with one action. - Update PageSection component to make sectionTitle prop optional - Changed PageTitle computed property to data since the value doesn't change during the component lifecycle - Change PageSection
element to
to avoid accessibility issues Signed-off-by: Yoshie Muranaka Change-Id: I2877e2a7b9bfee245c48d52c70859978b74be7f3 --- src/components/AppNavigation/AppNavigation.vue | 1 + src/components/Global/PageSection.vue | 9 ++--- src/components/Global/PageTitle.vue | 8 ++--- src/locales/en.json | 20 +++++++++-- src/router/index.js | 8 +++++ src/store/index.js | 2 ++ src/store/modules/Control/ControlStore.js | 22 ++++++++++++ src/views/Control/RebootBmc/RebootBmc.vue | 47 ++++++++++++++++++++++++++ src/views/Control/RebootBmc/index.js | 2 ++ 9 files changed, 109 insertions(+), 10 deletions(-) create mode 100644 src/store/modules/Control/ControlStore.js create mode 100644 src/views/Control/RebootBmc/RebootBmc.vue create mode 100644 src/views/Control/RebootBmc/index.js (limited to 'src') diff --git a/src/components/AppNavigation/AppNavigation.vue b/src/components/AppNavigation/AppNavigation.vue index 2847e664..4c858e81 100644 --- a/src/components/AppNavigation/AppNavigation.vue +++ b/src/components/AppNavigation/AppNavigation.vue @@ -26,6 +26,7 @@ Manage power usage + Reboot BMC Server LED Server power operations diff --git a/src/components/Global/PageSection.vue b/src/components/Global/PageSection.vue index 03040b29..dcd85e61 100644 --- a/src/components/Global/PageSection.vue +++ b/src/components/Global/PageSection.vue @@ -1,8 +1,8 @@ diff --git a/src/locales/en.json b/src/locales/en.json index db3a87bf..2b6fa07a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -4,7 +4,10 @@ "validator": "Field required" }, "on": "on", - "off": "off" + "off": "off", + "actions": { + "confirm": "Confirm" + } }, "ariaLabels": { "showPassword": "Show password as plain text. Note: this will visually expose your password on the screen." @@ -68,6 +71,19 @@ "localUserMgmt": "Local user management", "login": "Login", "overview": "Overview", - "unauthorized": "Unauthorized" + "unauthorized": "Unauthorized", + "rebootBmc": "Reboot BMC" + }, + "pageRebootBmc": { + "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.", + "rebootBmc": "Reboot BMC", + "modal": { + "confirmTitle": "Confirm BMC reboot", + "confirmMessage": "Are you sure you want to reboot the BMC?" + }, + "toastMessages": { + "successRebootStart": "Rebooting BMC.", + "errorRebootStart": "Error rebooting BMC." + } } } \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index bec7f548..9a30e976 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -31,6 +31,14 @@ const routes = [ title: 'pageTitle.localUserMgmt' } }, + { + path: '/control/reboot-bmc', + name: 'reboot-bmc', + component: () => import('@/views/Control/RebootBmc'), + meta: { + title: 'pageTitle.rebootBmc' + } + }, { path: '/unauthorized', name: 'unauthorized', diff --git a/src/store/index.js b/src/store/index.js index cb63e545..8a444a63 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -6,6 +6,7 @@ import AuthenticationStore from './modules/Authentication/AuthenticanStore'; import LocalUserManagementStore from './modules/AccessControl/LocalUserMangementStore'; import OverviewStore from './modules/Overview/OverviewStore'; import FirmwareStore from './modules/Configuration/FirmwareStore'; +import ControlStore from './modules/Control/ControlStore'; import PowerConsumptionStore from './modules/Control/PowerConsumptionStore'; import PowerCapStore from './modules/Control/PowerCapStore'; import NetworkSettingStore from './modules/Configuration/NetworkSettingsStore'; @@ -25,6 +26,7 @@ export default new Vuex.Store({ localUsers: LocalUserManagementStore, overview: OverviewStore, firmware: FirmwareStore, + controls: ControlStore, powerConsumption: PowerConsumptionStore, powerCap: PowerCapStore, networkSettings: NetworkSettingStore, diff --git a/src/store/modules/Control/ControlStore.js b/src/store/modules/Control/ControlStore.js new file mode 100644 index 00000000..f6415771 --- /dev/null +++ b/src/store/modules/Control/ControlStore.js @@ -0,0 +1,22 @@ +import api from '../../api'; +import i18n from '../../../i18n'; + +const ControlStore = { + namespaced: true, + actions: { + async rebootBmc() { + const data = { ResetType: 'GracefulRestart' }; + return await api + .post('/redfish/v1/Managers/bmc/Actions/Manager.Reset', data) + .then(() => i18n.t('pageRebootBmc.toastMessages.successRebootStart')) + .catch(error => { + console.log(error); + throw new Error( + i18n.t('pageRebootBmc.toastMessages.errorRebootStart') + ); + }); + } + } +}; + +export default ControlStore; diff --git a/src/views/Control/RebootBmc/RebootBmc.vue b/src/views/Control/RebootBmc/RebootBmc.vue new file mode 100644 index 00000000..e301f0df --- /dev/null +++ b/src/views/Control/RebootBmc/RebootBmc.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/Control/RebootBmc/index.js b/src/views/Control/RebootBmc/index.js new file mode 100644 index 00000000..ac31417e --- /dev/null +++ b/src/views/Control/RebootBmc/index.js @@ -0,0 +1,2 @@ +import RebootBmc from './RebootBmc.vue'; +export default RebootBmc; -- cgit v1.2.3