blob: 1deeeebd464cce6305b08f8d17f6b87ded2c3072 [file] [log] [blame]
edition = "2023";
package safepower_agent_config;
import "safepower_agent.proto";
option features.field_presence = IMPLICIT;
// shared configs
message SafePowerAgentConfig {
GpowerdConfig gpowerd_config = 1;
repeated ActionConfig action_configs = 2;
PersistentStorageConfig persistent_storage_config = 3;
}
// gpowerd specific configs will go here
message GpowerdConfig {
repeated StateMonitorConfig state_monitor_config = 1;
PersistentStorageConfig persistent_storage_config = 2 [deprecated = true];
}
message PersistentStorageConfig {
string dir_path = 1;
int64 max_file_size = 2;
int64 proto_keep_number = 3;
}
message StateMonitorConfig {
string state_name = 1;
StateGatheringInfo state_gathering_info = 2;
safepower_agent_proto.SystemComponent system_component = 3;
}
message StateGatheringInfo {
oneof info {
RedfishInfo redfish = 1;
DbusInfo dbus = 2;
}
uint32 collection_interval_ms = 3;
safepower_agent_proto.NodeState prototype = 4;
}
message RedfishInfo {
string uri = 1;
string json_key = 2;
}
message DbusInfo {
string dbus_path = 1;
string dbus_method = 2;
string dbus_interface = 3;
string dbus_value = 4;
}
message ActionConfig {
string action_name = 1;
safepower_agent_proto.Action action = 2;
int32 disruption_timeout_seconds = 3;
oneof info {
RedfishAction redfish = 4;
DbusAction dbus = 5;
}
}
message RedfishAction {
string uri = 1;
string json_body = 2;
string ip = 3;
uint32 port = 4;
int32 call_timeout_seconds = 5;
}
message DbusAction {}