]>
Commit | Line | Data |
---|---|---|
c0bbd038 DM |
1 | package PVE::HA::Manager; |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | ||
6 | use Data::Dumper; | |
7 | ||
8 | use PVE::HA::NodeStatus; | |
9 | ||
10 | sub 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 |
30 | sub cleanup { |
31 | my ($self) = @_; | |
32 | ||
33 | # todo: ? | |
34 | } | |
35 | ||
8f0bb968 | 36 | sub 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 |
47 | sub 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 | ||
60 | 1; |