History log of /openbmc/bmcweb/redfish-core/src/utils/time_utils.cpp (Results 1 – 9 of 9)
Revision Date Author Comments
# 504af5a0 03-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2f0b9d0fb6e01ed36a2f34c750ba52de3b6d15d1
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2f0b9d0fb6e01ed36a2f34c750ba52de3b6d15d1
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# a93e9c77 18-Nov-2024 Ed Tanous <etanous@nvidia.com>

Move time_utils to compile unit

There's no reason for these functions to be in a header, and pulling
them into a compile unit can reduce compile times overall.

Tested: Unit tests pass (Good coverag

Move time_utils to compile unit

There's no reason for these functions to be in a header, and pulling
them into a compile unit can reduce compile times overall.

Tested: Unit tests pass (Good coverage)

Change-Id: Ia6dc50d16bf2967e647a3c7437ba13bd7ab7ca3c
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...


# 40e9b92e 10-Sep-2024 Ed Tanous <etanous@nvidia.com>

Use SPDX identifiers

SPDX identifiers are simpler, and reduce the amount of cruft we have in
code files. They are recommended by linux foundation, and therefore we
should do as they allow.

This pa

Use SPDX identifiers

SPDX identifiers are simpler, and reduce the amount of cruft we have in
code files. They are recommended by linux foundation, and therefore we
should do as they allow.

This patchset does not intend to modify any intent on any existing
copyrights or licenses, only to standardize their inclusion.

[1] https://www.linuxfoundation.org/blog/blog/copyright-notices-in-open-source-software-projects

Change-Id: I935c7c0156caa78fc368c929cebd0f068031e830
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...


# 67b2e53b 11-Dec-2024 Ed Tanous <etanous@nvidia.com>

Fix clang-tidy for gcc-14

We use these pragmas, that we must've been getting transitively through
chrono in the past. Now we need to include them explicitly.

Change-Id: Iee4c0a8866981b91adaa17bee0

Fix clang-tidy for gcc-14

We use these pragmas, that we must've been getting transitively through
chrono in the past. Now we need to include them explicitly.

Change-Id: Iee4c0a8866981b91adaa17bee0678b2c10e65ea9
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...


# a8770740 17-Nov-2024 Ed Tanous <etanous@nvidia.com>

Enable gcc-14 builds

gcc-14 enables the std::chrono features we need for doing lots of time
conversions. For whatever reason, std::chrono accepts a an hour of 60,
whereas date.h didn't. This test

Enable gcc-14 builds

gcc-14 enables the std::chrono features we need for doing lots of time
conversions. For whatever reason, std::chrono accepts a an hour of 60,
whereas date.h didn't. This test case is really just a corner case, so
accept either answer.

Tested: Unit tests pass. Good coverage.

Change-Id: I2fb7fcbebb2a4126b36f99d27b216b835d1e2994
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...


# 352e3b78 04-Oct-2024 Hieu Huynh <hieuh@os.amperecomputing.com>

dateStringToEpoch: add the additional format

This adds the additional format for ISO 8601, such as YYYYMMDD or
YYYYMMDDThhmmssZ.

Tested:

Test case 1:
The input ISO 8601 timestamp: 20230531T000000Z

dateStringToEpoch: add the additional format

This adds the additional format for ISO 8601, such as YYYYMMDD or
YYYYMMDDThhmmssZ.

Tested:

Test case 1:
The input ISO 8601 timestamp: 20230531T000000Z
The output Epoch timestamp: 1685491200000000

Test case 2:
The input ISO 8601 timestamp: 20230531
The output Epoch timestamp: 1685491200000000

Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com>
Change-Id: I23080a466b2edeecb5d8a4fb7ec0b00739454056

show more ...


# f0b59af4 20-Mar-2024 Ed Tanous <ed@tanous.net>

Add misc-include-cleaner

And fix the includes that are wrong.

Note, there is a very large ignore list included in the .clang-tidy
configcfile. These are things that clang-tidy doesn't yet handle
w

Add misc-include-cleaner

And fix the includes that are wrong.

Note, there is a very large ignore list included in the .clang-tidy
configcfile. These are things that clang-tidy doesn't yet handle
well, like knowing about a details include.

Change-Id: Ie3744f2c8cba68a8700b406449d6c2018a736952
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# c51afd54 07-Mar-2024 Ed Tanous <ed@tanous.net>

Call systemd SetTime directly

Internally inside phosphor-time-manager, the elapsed(uint64) dbus call
just forwards the request directly to systemd after static casting to
int64_t (signed).

bmcweb s

Call systemd SetTime directly

Internally inside phosphor-time-manager, the elapsed(uint64) dbus call
just forwards the request directly to systemd after static casting to
int64_t (signed).

bmcweb should just call systemd directly, for several reasons.

phosphor-timesyncd might block on other calls, given it's a single
threaded blocking design, due to bugs like #264. Calling systemd
directly means that calls that don't require phosphor networkd won't be
blocked.

Calling systemd directly allows bmcweb to drop some code that parses a
date as int64_t, then converts it to uint64_t to fulfill the phosphor
datetime interface. We can now keep int64_t all the way through.

Calling systemd directly allows bmcweb to give a more specific error
code in the case there NTP is enabled, registering a
PropertyValueConflict error, instead of a 500 InternalError.

Tested:
Patching DateTime property with NTP enabled returns 400,
PropertyValueConflict
```
curl -vvvv -k --user "root:0penBmc" -H "Content-Type: application/json" -X PATCH -d '{"DateTime":"2020-12-15T15:40:52+00:00"}' https://192.168.7.2/redfish/v1/Managers/bmc
```

Disabling NTP using the following command:
```
curl -vvvv -k --user "root:0penBmc" -H "Content-Type: application/json" -X PATCH -d '{"NTP":{"ProtocolEnabled":false}}' https://192.168.7.2/redfish/v1/Managers/bmc/NetworkProtocol
```

Allows the prior command to succeed.

[1] https://github.com/openbmc/phosphor-time-manager/blob/5ce9ac0e56440312997b25771507585905e8b360/bmc_epoch.cpp#L126

Change-Id: I6fbb6f63e17de8ab847ca5ed4eadc2bd313586d2
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 1b8b02a4 08-Jan-2023 Ed Tanous <edtanous@google.com>

Simplify datetime parsing

This code as it stands pulls in the full datetime library from boost,
including io, and a bunch of timezone code. The bmc doesn't make use of
any of this, so we can rely o

Simplify datetime parsing

This code as it stands pulls in the full datetime library from boost,
including io, and a bunch of timezone code. The bmc doesn't make use of
any of this, so we can rely on a much simplified version.

Unfortunately for us, gcc still doesn't implement the c++20
std::chrono::parse[1]. There is a reference library available from [2]
that backports the parse function to compilers that don't yet support
it, and is the basis for the libc++ version. This commit opts to copy
in the header as-written, under the assumption that we will never need
to pull in new versions of this library, and will move to the std
ersion as soon as it's available in the next gcc version.

This commit simplifies things down to improve compile times and binary
size. It saves ~22KB of compressed binary size, or about 3%.

Tested: Unit tests pass. Pretty good coverage.

[1] https://en.cppreference.com/w/cpp/chrono/parse
[2] https://github.com/HowardHinnant/date/blob/master/include/date/date.h

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I706b91cc3d9df3f32068125bc47ff0c374eb8d87

show more ...