[pve-devel] [PATCH ha-manager 09/11] manager: use static resource scheduler when configured
Fiona Ebner
f.ebner at proxmox.com
Thu Nov 10 15:37:57 CET 2022
Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
src/PVE/HA/Manager.pm | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/src/PVE/HA/Manager.pm b/src/PVE/HA/Manager.pm
index 20b743c..7c85b67 100644
--- a/src/PVE/HA/Manager.pm
+++ b/src/PVE/HA/Manager.pm
@@ -8,6 +8,7 @@ use PVE::Tools;
use PVE::HA::Tools ':exit_codes';
use PVE::HA::NodeStatus;
use PVE::HA::Usage::Basic;
+use PVE::HA::Usage::Static;
## Variable Name & Abbreviations Convention
#
@@ -206,11 +207,30 @@ my $valid_service_states = {
sub recompute_online_node_usage {
my ($self) = @_;
- my $online_node_usage = PVE::HA::Usage::Basic->new($self->{haenv});
+ my $haenv = $self->{haenv};
my $online_nodes = $self->{ns}->list_online_nodes();
- $online_node_usage->add_node($_) for $online_nodes->@*;
+ my $online_node_usage;
+
+ if (my $mode = $self->{'scheduler-mode'}) {
+ if ($mode eq 'static') {
+ $online_node_usage = eval {
+ my $scheduler = PVE::HA::Usage::Static->new($haenv);
+ $scheduler->add_node($_) for $online_nodes->@*;
+ return $scheduler;
+ };
+ $haenv->log('warning', "using 'basic' scheduler mode, init for 'static' failed - $@")
+ if $@;
+ } elsif ($mode ne 'basic') {
+ $haenv->log('warning', "got unknown scheduler mode '$mode', using 'basic'");
+ }
+ }
+
+ if (!$online_node_usage) {
+ $online_node_usage = PVE::HA::Usage::Basic->new($haenv);
+ $online_node_usage->add_node($_) for $online_nodes->@*;
+ }
foreach my $sid (keys %{$self->{ss}}) {
my $sd = $self->{ss}->{$sid};
--
2.30.2
More information about the pve-devel
mailing list