]> git.proxmox.com Git - pve-ha-manager.git/blob - src/PVE/HA/Usage.pm
env: switch to matcher-based notification system
[pve-ha-manager.git] / src / PVE / HA / Usage.pm
1 package PVE::HA::Usage;
2
3 use strict;
4 use warnings;
5
6 sub new {
7 my ($class, $haenv) = @_;
8
9 die "implement in subclass";
10 }
11
12 sub add_node {
13 my ($self, $nodename) = @_;
14
15 die "implement in subclass";
16 }
17
18 sub remove_node {
19 my ($self, $nodename) = @_;
20
21 die "implement in subclass";
22 }
23
24 sub list_nodes {
25 my ($self) = @_;
26
27 die "implement in subclass";
28 }
29
30 sub contains_node {
31 my ($self, $nodename) = @_;
32
33 die "implement in subclass";
34 }
35
36 # Logs a warning to $haenv upon failure, but does not die.
37 sub add_service_usage_to_node {
38 my ($self, $nodename, $sid, $service_node, $migration_target) = @_;
39
40 die "implement in subclass";
41 }
42
43 # Returns a hash with $nodename => $score pairs. A lower $score is better.
44 sub score_nodes_to_start_service {
45 my ($self, $sid, $service_node) = @_;
46
47 die "implement in subclass";
48 }
49
50 1;