[pve-devel] [RFC v2 pve-ha-manager 5/9] TestHardware: add a more deterministic delay possibility
Thomas Lamprecht
t.lamprecht at proxmox.com
Mon Dec 14 15:29:57 CET 2015
With this patch we can add a command to be executed after the
current command and some specified delay, e.g. the following
cmdlist line:
[ "power nodeX shutdown", "delay 5", "power nodeX on"]
This works more deterministic as it gets added to the helper
command list, which gets executed on every loop cycle from the
node processing loop and thus with a higher frequency,
whereas time between two comandlist commands can be undefined
and is mostly bigger. We need this for example to simulate a short
shutdown - power on cycle.
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
src/PVE/HA/Sim/TestHardware.pm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/PVE/HA/Sim/TestHardware.pm b/src/PVE/HA/Sim/TestHardware.pm
index 5c8a0cd..9bf2936 100644
--- a/src/PVE/HA/Sim/TestHardware.pm
+++ b/src/PVE/HA/Sim/TestHardware.pm
@@ -290,12 +290,19 @@ sub run {
# end sumulation (500 seconds after last command)
return if (($self->{cur_time} - $last_command_time) > 500);
}
-
+ my $delay_next_commands;
foreach my $cmd (@$list) {
$last_command_time = $self->{cur_time};
if ($cmd =~ m/^delay\s+(\d+)\s*$/) {
$next_cmd_at = $self->{cur_time} + $1;
+ $delay_next_commands = 1;
+ } elsif ($delay_next_commands) {
+ # after an delay add all following commands, if any, to
+ # the helper cmd list, as they need to be executed more
+ # deterministic and faster than with the cmdlist possible
+ &$add_helper_cmd($self, $next_cmd_at, $cmd);
+ $next_cmd_at = $self->{cur_time};
} else {
$self->sim_hardware_cmd($cmd, 'cmdlist');
}
--
2.1.4
More information about the pve-devel
mailing list