[pve-devel] [PATCH ha-manager 3/5] scheduling: make static scheduling optional
Daniel Kral
d.kral at proxmox.com
Tue Sep 23 11:23:42 CEST 2025
On Mon Sep 22, 2025 at 2:04 PM CEST, Fabian Grünbichler wrote:
> it's not available in the simulator
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
> src/PVE/HA/Manager.pm | 21 +++++++++++++++------
> 1 file changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/src/PVE/HA/Manager.pm b/src/PVE/HA/Manager.pm
> index ba59f64..cfd509a 100644
> --- a/src/PVE/HA/Manager.pm
> +++ b/src/PVE/HA/Manager.pm
> @@ -14,7 +14,12 @@ use PVE::HA::Rules::NodeAffinity qw(get_node_affinity);
> use PVE::HA::Rules::ResourceAffinity
> qw(get_affinitive_resources get_resource_affinity apply_positive_resource_affinity apply_negative_resource_affinity);
> use PVE::HA::Usage::Basic;
> -use PVE::HA::Usage::Static;
> +
> +my $have_static_scheduling;
> +eval {
> + require PVE::HA::Usage::Static;
> + $have_static_scheduling = 1;
> +};
>
> ## Variable Name & Abbreviations Convention
> #
> @@ -244,11 +249,15 @@ sub recompute_online_node_usage {
>
> if (my $mode = $self->{crs}->{scheduler}) {
> if ($mode eq 'static') {
> - $online_node_usage = eval {
> - my $scheduler = PVE::HA::Usage::Static->new($haenv);
> - $scheduler->add_node($_) for $online_nodes->@*;
> - return $scheduler;
> - };
> + if ($have_static_scheduling) {
> + $online_node_usage = eval {
> + my $scheduler = PVE::HA::Usage::Static->new($haenv);
> + $scheduler->add_node($_) for $online_nodes->@*;
> + return $scheduler;
> + };
> + } else {
> + $@ = "static scheduling not available\n";
> + }
Since this cropped up almost 3 years after the static load scheduler was
added and the GTK-based ha-simulator might be on its way out already
[0], I think it would be nice to add a stub for
PVE::HA::Usage::Static here the same way as you did for PVE::Cluster as
otherwise it clutters the main code for the rather rarely used
standalone ha-simulator.
[0] https://bugzilla.proxmox.com/show_bug.cgi?id=6743
> $haenv->log(
> 'warning',
> "fallback to 'basic' scheduler mode, init for 'static' failed - $@",
More information about the pve-devel
mailing list