]> git.proxmox.com Git - pve-ha-manager.git/blame - PVE/HA/Manager.pm
simplify manager code
[pve-ha-manager.git] / PVE / HA / Manager.pm
CommitLineData
c0bbd038
DM
1package PVE::HA::Manager;
2
3use strict;
4use warnings;
5
6use Data::Dumper;
7
8use PVE::HA::NodeStatus;
9
10sub new {
8f0bb968 11 my ($this, $haenv) = @_;
c0bbd038
DM
12
13 my $class = ref($this) || $this;
14
8f0bb968
DM
15 my $ms = $haenv->read_manager_status();
16
17 $ms->{master_node} = $haenv->nodename();
18
19 my $ns = PVE::HA::NodeStatus->new($haenv, $ms->{node_status} || {});
20
c0bbd038 21 my $self = bless {
8f0bb968
DM
22 haenv => $haenv,
23 ms => $ms, # master status
24 ns => $ns, # PVE::HA::NodeStatus
c0bbd038
DM
25 }, $class;
26
27 return $self;
28}
29
d84da043
DM
30sub cleanup {
31 my ($self) = @_;
32
33 # todo: ?
34}
35
8f0bb968 36sub flush_master_status {
c0bbd038
DM
37 my ($self) = @_;
38
8f0bb968
DM
39 my $haenv = $self->{haenv};
40 my $ms = $self->{ms};
41 my $ns = $self->{ns};
c0bbd038 42
8f0bb968
DM
43 $ms->{node_status} = $ns->{status};
44 $haenv->write_manager_status($ms);
45}
c0bbd038 46
8f0bb968
DM
47sub manage {
48 my ($self) = @_;
c0bbd038 49
8f0bb968
DM
50 my $haenv = $self->{haenv};
51 my $ms = $self->{ms};
52 my $ns = $self->{ns};
c0bbd038 53
8f0bb968 54 $ns->update($haenv->get_node_info());
c0bbd038 55
8f0bb968 56 $self->flush_master_status();
c0bbd038
DM
57}
58
59
601;