summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/store/modules/Configuration/DateTimeSettingsStore.js25
-rw-r--r--src/views/Configuration/DateTimeSettings/DateTimeSettings.vue3
2 files changed, 24 insertions, 4 deletions
diff --git a/src/store/modules/Configuration/DateTimeSettingsStore.js b/src/store/modules/Configuration/DateTimeSettingsStore.js
index 9da0cb41..06aeefe6 100644
--- a/src/store/modules/Configuration/DateTimeSettingsStore.js
+++ b/src/store/modules/Configuration/DateTimeSettingsStore.js
@@ -30,24 +30,41 @@ const DateTimeStore = {
console.log(error);
});
},
- async updateDateTimeSettings(_, dateTimeForm) {
+ async updateDateTimeSettings({ state }, dateTimeForm) {
const ntpData = {
NTP: {
ProtocolEnabled: dateTimeForm.ntpProtocolEnabled
}
};
-
if (dateTimeForm.ntpProtocolEnabled) {
ntpData.NTP.NTPServers = dateTimeForm.ntpServersArray;
}
return await api
.patch(`/redfish/v1/Managers/bmc/NetworkProtocol`, ntpData)
- .then(() => {
+ .then(async () => {
if (!dateTimeForm.ntpProtocolEnabled) {
const dateTimeData = {
DateTime: dateTimeForm.updatedDateTime
};
- api.patch(`/redfish/v1/Managers/bmc`, dateTimeData);
+ /**
+ * https://github.com/openbmc/phosphor-time-manager/blob/master/README.md#special-note-on-changing-ntp-setting
+ * When time mode is initially set to Manual from NTP,
+ * NTP service is disabled and the NTP service is
+ * stopping but not stopped, setting time will return an error.
+ * There are no responses from backend to notify when NTP is stopped.
+ * To work around, a timeout is set to allow NTP to fully stop
+ * TODO: remove timeout if backend solves
+ * https://github.com/openbmc/openbmc/issues/3459
+ */
+ const timeoutVal = state.isNtpProtocolEnabled ? 20000 : 0;
+ return await new Promise((resolve, reject) => {
+ setTimeout(() => {
+ return api
+ .patch(`/redfish/v1/Managers/bmc`, dateTimeData)
+ .then(() => resolve())
+ .catch(() => reject());
+ }, timeoutVal);
+ });
}
})
.then(() => {
diff --git a/src/views/Configuration/DateTimeSettings/DateTimeSettings.vue b/src/views/Configuration/DateTimeSettings/DateTimeSettings.vue
index d7b97d1a..7ce9cb3e 100644
--- a/src/views/Configuration/DateTimeSettings/DateTimeSettings.vue
+++ b/src/views/Configuration/DateTimeSettings/DateTimeSettings.vue
@@ -330,6 +330,9 @@ export default {
this.form.ntp.thirdAddress = '';
}
})
+ .then(() => {
+ this.$store.dispatch('global/getBmcTime');
+ })
.catch(({ message }) => this.errorToast(message))
.finally(() => {
this.$v.form.$reset();