On Mon Jan 19, 2026 at 4:00 PM CET, Fiona Ebner wrote:
> Am 15.12.25 um 4:55 PM schrieb Daniel Kral:
>> diff --git a/src/PVE/HA/Config.pm b/src/PVE/HA/Config.pm
>> index f8c5965e..fa14816c 100644
>> --- a/src/PVE/HA/Config.pm
>> +++ b/src/PVE/HA/Config.pm
>> @@ -382,22 +382,27 @@ sub service_is_configured {
>> sub get_resource_motion_info {
>> my ($sid) = @_;
>>
>> - my $resources = read_resources_config();
>> + my $conf = read_resources_config();
>
> Nit: maybe it's slightly nicer to use read_and_compile_rules_config()
> already here and avoid a second read call below?
I guess you meant read_and_check_resources_config() here ;)
The service_check_ha_state(...) helper below assumes a parsed section
config (and is used in a bunch of places), while
read_and_check_resources_config() will return a modified version of the
resource config (defaults set, etc.).
What isn't nice at all here is that read_and_compile_rules_config()
reads the manager status and resource config a second and third time and
since it's only used here at the moment I'll make it a private helper
instead of reading on its own.
For read_and_check_resources_config() I'd move out the inner logic into
a separate private helper, so that all of get_resource_motion_info(...)
does work with the same single read from the resource config.
>
>>
>> my $dependent_resources = [];
>> my $blocking_resources_by_node = {};
>>
>> - if (&$service_check_ha_state($resources, $sid)) {
>> + if (&$service_check_ha_state($conf, $sid)) {
>> my $manager_status = read_manager_status();
>> my $ss = $manager_status->{service_status};
>> my $ns = $manager_status->{node_status};
>> # get_resource_motion_info expects a hashset of all nodes with
>> status 'online'
>> my $online_nodes = { map { $ns->{$_} eq 'online' ? ($_ => 1) : () }
>> keys %$ns };
>> + # get_resource_motion_info expects a resource config with defaults
>> set
>> + my $resources = read_and_check_resources_config();
>>
>> my $compiled_rules = read_and_compile_rules_config();
>>
>> + my $cd = $resources->{$sid} // {};
>> ($dependent_resources, $blocking_resources_by_node) =
>> - PVE::HA::Helpers::get_resource_motion_info($ss, $sid,
>> $online_nodes, $compiled_rules);
>> + PVE::HA::Helpers::get_resource_motion_info(
>> + $ss, $sid, $cd, $online_nodes, $compiled_rules,
>> + );
>> }
>>
>> return ($dependent_resources, $blocking_resources_by_node);
_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel