Restart Policy

add RestartPolicy message and integrate into ChildProcess configuration on both proto and rust structs
This commit is contained in:
Noor 2024-12-16 11:42:05 +05:30
parent dd4b0f7f9f
commit 101577a784
2 changed files with 29 additions and 0 deletions

@ -30,10 +30,20 @@ message EnvironmentEntry {
string value = 2;
}
message RestartPolicy {
uint32 max_retries = 1;
uint32 delay_seconds = 2;
oneof policy {
bool ALWAYS = 3;
bool ON_NON_ZERO_EXIT = 4;
}
}
// Represents a child process configuration
message ChildProcess {
string path = 1;
repeated string arguments = 2;
RestartPolicy restart_policy = 3;
}
service ConfigManager {

@ -33,6 +33,23 @@ pub mod config {
#[prost(string, tag = "2")]
pub value: String,
}
#[derive(Clone, Serialize, Deserialize, prost::Message)]
pub struct RestartPolicy {
#[prost(uint32, tag = "1")]
max_retries: u32,
#[prost(uint32, tag = "2")]
delay_seconds: u32,
#[prost(oneof = "RestartPolicyType", tags = "3, 4")]
policy: Option<RestartPolicyType>,
}
#[derive(Clone, Serialize, Deserialize, prost::Oneof)]
pub enum RestartPolicyType {
#[prost(bool, tag = "3")]
Always(bool),
#[prost(bool, tag = "4")]
OnNonZeroExit(bool),
}
#[derive(Clone, Serialize, Deserialize, prost::Message)]
pub struct ChildProcess {
@ -40,6 +57,8 @@ pub mod config {
pub path: String,
#[prost(string, repeated, tag = "2")]
pub arguments: Vec<String>,
#[prost(message, optional, tag = "3")]
restart_policy: Option<RestartPolicy>,
}
#[derive(Clone, Serialize, Deserialize, prost::Message)]