]> git.proxmox.com Git - pve-ha-manager.git/blob - src/test/test_failover1.pl
clean up 'Data::Dumper' usage tree wide
[pve-ha-manager.git] / src / test / test_failover1.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use lib '..';
7 use PVE::HA::Config;
8 use PVE::HA::Manager;
9
10 my $groups = PVE::HA::Config::parse_groups_config("groups.tmp", <<EOD);
11 group: prefer_node1
12 nodes node1
13 EOD
14
15
16 my $online_node_usage = {
17 node1 => 0,
18 node2 => 0,
19 node3 => 0,
20 };
21
22 my $service_conf = {
23 node => 'node1',
24 group => 'prefer_node1',
25 };
26
27 my $current_node = $service_conf->{node};
28
29 sub test {
30 my ($expected_node, $try_next) = @_;
31
32 my $node = PVE::HA::Manager::select_service_node
33 ($groups, $online_node_usage, $service_conf, $current_node, $try_next);
34
35 my (undef, undef, $line) = caller();
36 die "unexpected result: $node != ${expected_node} at line $line\n"
37 if $node ne $expected_node;
38
39 $current_node = $node;
40 }
41
42
43 test('node1');
44 test('node1', 1);
45
46 delete $online_node_usage->{node1}; # poweroff
47
48 test('node2');
49 test('node3', 1);
50 test('node2', 1);
51
52 delete $online_node_usage->{node2}; # poweroff
53
54 test('node3');
55 test('node3', 1);
56
57 $online_node_usage->{node1} = 0; # poweron
58
59 test('node1');
60
61 $online_node_usage->{node2} = 0; # poweron
62
63 test('node1');
64 test('node1', 1);