Skip to content

Add a Redfish subcommand to read a system's clock and its offset from local time #2574

Description

@berendt

Category: feature | Scope: Small

Description

Add a Redfish subcommand that reads the current date and time from one system
and prints it next to the clock of the machine running the command, along with
the difference between the two.

Redfish carries the clock on the management controller, not on the system
resource: the manager resource exposes DateTime and DateTimeLocalOffset.
The command takes a single hostname, opens a Redfish connection to it, and
reports the time each of its managers returns.

The output shows the time read over Redfish, the local time at the moment of
the request, and the offset between them. Reporting the offset is where the
command stops. It does not compare the offset against a threshold, does not
change its exit code when the offset is large, and never writes the clock. A
human-readable table and a JSON form are both available, as with the existing
Redfish listing subcommand.

This is a separate subcommand rather than another resource type of the existing
Redfish listing subcommand: the result is one value per manager, not a
collection with per-item columns.

Motivation

OSISM needs the clocks of management controllers to be roughly right. Log
timestamps and BMC event timestamps only line up with everything else when they
are, and TLS handshakes against a controller start failing once its clock is far
enough off that a valid certificate looks expired or not yet valid. There is no
way to check the clock from OSISM today. The Redfish surface lists network
resources and nothing else, so an operator has to open the BMC web interface or
send the HTTP request by hand.

An operator troubleshooting a node gets the answer in one step, on the machine
they are already working on. Printing the controller's time beside the local
time makes drift visible right away, and leaves the judgment about how much
drift matters to the person reading it.


Drafted by planwerk-agent with Claude:claude-opus-5[1m]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions