add the p command

This commit is contained in:
primardj 2024-04-16 20:16:48 +01:00
parent a5ceacde6e
commit e24e2dcbc9
3 changed files with 43 additions and 2 deletions

View file

@ -23,6 +23,10 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_
// case where command is run once.
return misc::run_verbose(sv.sent_signal(b"o"), true, verbose, svwait_var, sv);
},
"p" => {
// case where it's the pause command which is entered.
return misc::pause_verbose(sv.sent_signal(b"p"), true, verbose, svwait_var, sv);
}
other => {
println!("Error, command {} not implemented.", other); // TODO : Put the real error
// message.

View file

@ -24,7 +24,7 @@ pub fn print_status(mut sv: status_obj::StatusObj) -> i32 {
}
pub fn run_verbose(sent_signal: bool, state: bool, verbose: i8, svwait_var: i32, mut sv: status_obj::StatusObj) -> i32 {
pub fn run_verbose(sent_signal: bool, expected: bool, verbose: i8, svwait_var: i32, mut sv: status_obj::StatusObj) -> i32 {
// if the state is true, wait for the service to run.
// If the state is false, wait for the service to down.
if sent_signal && verbose == 1 {
@ -34,7 +34,36 @@ pub fn run_verbose(sent_signal: bool, state: bool, verbose: i8, svwait_var: i32,
if status == 1 {
return 1;
}
if sv.is_up() == state {
if sv.is_up() == expected {
println!("ok: {}", sv.get_status_string());
return 0
}
if time_wait >= svwait_var {
println!("timeout: {}", sv.get_status_string());
return 1
}
time_wait += 1;
sleep(Duration::from_secs(1));
}
} else if sent_signal && verbose == 0 {
return 0
} else {
// Case sent_signal != true.
return 1
}
}
pub fn pause_verbose(sent_signal: bool, expected: bool, verbose: i8, svwait_var: i32, mut sv: status_obj::StatusObj) -> i32 {
// if the state is true, wait for the service to pause.
// if the state is false, wait for the service to continue.
if sent_signal && verbose == 1 {
let mut time_wait = 0;
loop {
let status = sv.update_status();
if status == 1 {
return 1;
}
if sv.is_paused() == expected {
println!("ok: {}", sv.get_status_string());
return 0
}

View file

@ -241,6 +241,14 @@ impl StatusObj {
};
}
pub fn is_paused(&mut self) -> bool {
if self.pause_run == true {
return true
} else {
return false
}
}
pub fn get_name(&mut self) -> String {
return self.svname.clone();
}