~vcs-imports/mysql-mmm/2.0

« back to all changes in this revision

Viewing changes to lib/Agent/Role.pm

  • Committer: mail at pascalhofmann
  • Date: 2009-02-05 12:51:49 UTC
  • Revision ID: vcs-imports@canonical.com-20090205125149-a58rpkkl3kch6s7p
ph:
- check for error when adding roles, making server writable, etc.
- Documentation update

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
use strict;
5
5
use warnings FATAL => 'all';
 
6
use Log::Log4perl qw(:easy);
6
7
use MMM::Agent::Helpers;
7
8
 
8
9
our $VERSION = '0.01';
26
27
sub check($) {
27
28
        my $self = shift;
28
29
 
29
 
        # TODO debug output
 
30
        my $ret;
 
31
 
30
32
        if ($self->name eq $main::agent->writer_role) {
31
 
                MMM::Agent::Helpers::allow_write();
 
33
                $ret = MMM::Agent::Helpers::allow_write();
 
34
                if ($ret !~ /^OK/) {
 
35
                        FATAL "Couldn't allow writes: $ret";
 
36
                        return;
 
37
                }
32
38
        }
33
39
 
34
 
        MMM::Agent::Helpers::configure_ip($main::agent->interface, $self->ip);
 
40
        $ret = MMM::Agent::Helpers::configure_ip($main::agent->interface, $self->ip);
 
41
        if ($ret !~ /^OK/) {
 
42
                FATAL sprintf("Couldn't configure IP '%s' on interface '%s': %s", $self->ip, $main::agent->interface, $ret);
 
43
                return;
 
44
        }
35
45
}
36
46
 
37
47
=item add()
42
52
sub add($) {
43
53
        my $self = shift;
44
54
        
45
 
        # TODO debug output
 
55
        my $ret;
 
56
 
46
57
        if ($self->name eq $main::agent->writer_role) {
47
 
                MMM::Agent::Helpers::sync_with_master();
48
 
                MMM::Agent::Helpers::allow_write();
 
58
                $ret = MMM::Agent::Helpers::sync_with_master();
 
59
                if ($ret !~ /^OK/) {
 
60
                        FATAL "Couldn't sync with master: $ret";
 
61
                        return;
 
62
                }
 
63
                $ret = MMM::Agent::Helpers::allow_write();
 
64
                if ($ret !~ /^OK/) {
 
65
                        FATAL "Couldn't allow writes: $ret";
 
66
                        return;
 
67
                }
49
68
        }
50
69
 
51
 
        MMM::Agent::Helpers::configure_ip($main::agent->interface, $self->ip);
 
70
        $ret = MMM::Agent::Helpers::configure_ip($main::agent->interface, $self->ip);
 
71
        if ($ret !~ /^OK/) {
 
72
                FATAL sprintf("Couldn't configure IP '%s' on interface '%s': %s", $self->ip, $main::agent->interface, $ret);
 
73
                return;
 
74
        }
52
75
}
53
76
 
54
77
=item del()
58
81
=cut
59
82
sub del($) {
60
83
        my $self = shift;
 
84
 
 
85
        my $ret;
61
86
        
62
 
        # TODO debug output
63
 
        MMM::Agent::Helpers::clear_ip($main::agent->interface, $self->ip);
 
87
        $ret = MMM::Agent::Helpers::clear_ip($main::agent->interface, $self->ip);
 
88
        if ($ret !~ /^OK/) {
 
89
                FATAL sprintf("Couldn't clear IP '%s' from interface '%s': %s", $self->ip, $main::agent->interface, $ret);
 
90
        }
64
91
 
65
92
        if ($self->name eq $main::agent->writer_role) {
66
 
                MMM::Agent::Helpers::deny_write();
 
93
                $ret = MMM::Agent::Helpers::deny_write();
 
94
                if ($ret !~ /^OK/) {
 
95
                        FATAL "Couldn't deny writes: $ret";
 
96
                        return;
 
97
                }
67
98
        }
68
99
}
69
100