blob: df09bed4e3e090bd6b43b06fb0192f78437daece [file] [log] [blame]
syntax = "proto3";
package platforms_vbmc;
option optimize_for = CODE_SIZE;
// Message sent from the vBMC to the Collector as a part of the response to the
// Get call in voyager_telemetry.proto.
message MachineInfo {
// The MAC address of the RMC to be sent to the Collector to allow the
// password to be fetched and sent back to the vBMC.
string target_mac_addr = 1;
}
// Message (typically sent in voyager_telemetry.proto), from vBMC to the
// Collector Borg job. The Collector subscribes.
message OtsUpdate {
oneof update {
// A (typically Redfish) event that needs to be saved off-machine, typically
// into raw/processed_events file.
OtsEvent event = 1;
// A log file (free format ASCII) that accompanies a !OK severity event.
// This is sent separately from the event itself. The Collector typically
// persists this into a file (on cns or equiv).
OtsLog log = 2;
// Sent when the health of the monitored machine (OTS Arena) is OK. The
// Collector typically moves the processed_events file to archived_events
// file.
bool ots_health_ok = 3;
CperEvent cper_event = 4;
}
}
message CperEvent {
string event_json = 1;
}
message OtsEvent {
// The producer (vBMC) extracts the Severity from event_json for the benefit
// of the Collector - the Collector writes OK events to a raw_events file,
// but writes !OK events to both a raw_events and processed_events file.
enum Severity {
SEVERITY_UNSPECIFIED = 0;
SEVERITY_OK = 1;
SEVERITY_LOG = 4; // OK, but capture logs
SEVERITY_WARNING = 2;
SEVERITY_CRITICAL = 3;
}
Severity severity = 1;
// The (typically Redfish) event. This is normally received via an SSE
// connection by the producer (vBMC) and sent as-is.
string event_json = 2;
}
message OtsLog {
// CAE logs content received from RMC after machine state change.
string log_message = 1;
// ID of the last processed !OK event after which logs are fetched from RMC
// which changed the state of machine from OK->WARNING/CRITICAL or
// WARNING->CRITICAL.
// This is appened to the filename while saving.
string event_id = 2;
}
// Message sent from Collector to vBMC before Subscribe call using Put call in
// voyager_telemetry.proto (SetRequest.req_data.native)
message RequestData {
// This will be intercepted by the events_plugin and saved to a local file
// in encrypted format, and will be read by redfish plugin for connection to
// RMC
string rmc_redfish_password = 1 [deprecated = true];
// Path where collector will save all the events and logs for this machine
string cns_dir_path = 2;
// List of comma separated events which are required by vBMC to bootstrap the
// state since the last archival
string replay_events_json = 3;
// EventId for the last event processed and persisted by the collector, this
// is used to re-establish connection with the RMC
string last_event_id = 4;
}
// Message sent from collector to update required data on the machine using Put
// call in voyager_telemetry.proto (SetRequest.req_data.native)
message UpdateMachineData {
// Username, password and MAC address sent from the collector to connect to
// target BMC
string rmc_redfish_password = 1;
string rmc_redfish_username = 2;
string rmc_mac_addr = 3;
}