commit | ad14354fc17811ae585f13b1d52a275cf3daff35 | [log] [tgz] |
---|---|---|
author | Lei YU <mine260309@gmail.com> | Tue Jul 25 14:27:07 2017 +0800 |
committer | Lei YU <mine260309@gmail.com> | Mon Oct 16 20:40:04 2017 +0800 |
tree | ab1d7d7cd05c7bb746c00918f24bdf63fc6d4e4a | |
parent | 86d80419c72699862ee498ec9e37fd02ccf3ebb1 [diff] |
Use time mode owner enums in dbus interface Dbus interface defines time mode owners in xyz::openbmc_project::Time. Use the enums from the interface instead of repo defined enums and use the generated code to do convertions between strings and enums. Update unit tests accordingly. Change-Id: Ic304aa3b4137375d208bb1702e0f64df512fc5a0 Signed-off-by: Lei YU <mine260309@gmail.com>
phosphor-time-manager
is the time manager service that implements dbus interface xyz/openbmc_project/Time/EpochTime.interface.yaml
. User can get or set the BMC's or HOST's time via this interface.
The service xyz.openbmc_project.Time.Manager
provides two objects on dbus:
where each object implements interface xyz.openbmc_project.Time.EpochTime
.
User can directly get or set the property Elasped
of the objects to get or set the time. For example on an authenticated session:
### With busctl on BMC busctl get-property xyz.openbmc_project.Time.Manager \ /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime Elapsed ### With REST API on remote host curl -b cjar -k https://bmc-ip/xyz/openbmc_project/time/bmc
### With busctl on BMC busctl set-property xyz.openbmc_project.Time.Manager \ /xyz/openbmc_project/time/host xyz.openbmc_project.Time.EpochTime \ Elapsed t <value-in-microseconds> ### With REST API on remote host curl -b cjar -k -H "Content-Type: application/json" -X PUT \ -d '{"data": 1487304700000000}' \ https://bmc-ip/xyz/openbmc_project/time/host/attr/Elapsed
Getting BMC or HOST time is always allowed, but setting the time may not be allowed depending on below two settings in settings manager.
A summary of which cases the time can be set on BMC or HOST: Mode | Owner | Set BMC Time | Set Host Time --------- | ----- | ------------- | ------------------- NTP | BMC | Not allowed | Not allowed NTP | HOST | Not allowed | Not allowed NTP | SPLIT | Not allowed | OK NTP | BOTH | Not allowed | Not allowed MANUAL | BMC | OK | Not allowed MANUAL | HOST | Not allowed | OK MANUAL | SPLIT | OK | OK MANUAL | BOTH | OK | OK
When host is on (pgood == 1), the changes of the above time mode/owner are not applied but deferred. The changes of the mode/owner are saved to persistent storage.
When host is off (pgood == 0), the saved mode/owner are read from persistent storage and are applied.
Note: user can set the time mode and owner in settings daemon at any time, but time manager applying them is governed by the above condition.