| Line 172... |
Line 172... |
| 172 |
my ( $node, $action ) = @_;
|
172 |
my ( $node, $action ) = @_;
|
| 173 |
&main::readDB();
|
173 |
&main::readDB();
|
| 174 |
my @return;
|
174 |
my @return;
|
| 175 |
if ( $action ) {
|
175 |
if ( $action ) {
|
| 176 |
print "Found action [$action] in node.pm:maintenance\n" if $main::config->{'flags'}->{'debug'} > 1;
|
176 |
print "Found action [$action] in node.pm:maintenance\n" if $main::config->{'flags'}->{'debug'} > 1;
|
| 177 |
if ( lc ( $action ) eq 'on' ) {
|
- |
|
| 178 |
if ( keys %{$main::statusDB->{'nodePopulation'}->{$node}->{'running'} } ) {
|
- |
|
| 179 |
# we've requested maintenance mode, but there are domains running on the node
|
- |
|
| 180 |
print "Found domains on $node in node.pm:maintenance\n" if $main::config->{'flags'}->{'debug'} > 1;
|
- |
|
| 181 |
print "Trying to migrate domains off of $node before doing maintenance\n" if $main::config->{'flags'}->{'verbose'} || $main::config->{'flags'}->{'debug'} > 1;
|
- |
|
| 182 |
push @return, &migrateAllDomains( $node, $main::config->{'flags'}->{'target'}, keys %{$main::statusDB->{'nodePopulation'}->{$node}->{'running'}} );
|
- |
|
| 183 |
print "Finished migration attempt, forcing a scan\n" if $main::config->{'flags'}->{'debug'} > 1;
|
- |
|
| 184 |
&main::forceScan();
|
- |
|
| 185 |
}
|
- |
|
| 186 |
if ( keys %{ $main::statusDB->{'nodePopulation'}->{$node}->{'running'} } ) {
|
- |
|
| 187 |
print "Still found running domains on $node, aborting\n" if $main::config->{'flags'}->{'debug'} > 1;
|
- |
|
| 188 |
push @return, "Can not mark $node in maintenance mode with running domains";
|
- |
|
| 189 |
} else {
|
- |
|
| 190 |
print "Marking $node as under maintenance\n" if $main::config->{'flags'}->{'verbose'} || $main::config->{'flags'}->{'debug'};
|
- |
|
| 191 |
&main::readDB(1);
|
- |
|
| 192 |
$main::statusDB->{'node'}->{$node}->{'maintenance'} = 1;
|
- |
|
| 193 |
&main::writeDB();
|
- |
|
| 194 |
}
|
- |
|
| 195 |
} else {
|
- |
|
| 196 |
print "Marking $node as Online\n" if $main::config->{'flags'}->{'verbose'} || $main::config->{'flags'}->{'debug'};
|
- |
|
| 197 |
&main::readDB(1);
|
177 |
&main::readDB(1);
|
| 198 |
$main::statusDB->{'node'}->{$node}->{'maintenance'} = 0;
|
178 |
$main::statusDB->{'node'}->{$node}->{'maintenance'} = lc $action eq 'on';
|
| 199 |
&main::writeDB();
|
179 |
&main::writeDB();
|
| 200 |
}
|
- |
|
| 201 |
}
|
180 |
}
|
| 202 |
&main::readDB();
|
181 |
&main::readDB();
|
| 203 |
print Dumper( $main::statusDB ) if $main::config->{'flags'}->{'debug'} > 2;
|
182 |
print Dumper( $main::statusDB ) if $main::config->{'flags'}->{'debug'} > 2;
|
| 204 |
# return "Maintenance set to " . ( $main::statusDB->{'node'}->{$node}->{'maintenance'} ) . "\n" .
|
- |
|
| 205 |
return "Maintenance set to " . ( $main::statusDB->{'node'}->{$node}->{'maintenance'} ? 'On' : 'Off' ) . "\n" .
|
183 |
return "Maintenance set to " . ( $main::statusDB->{'node'}->{$node}->{'maintenance'} ? 'On' : 'Off' ) . "\n" .
|
| 206 |
( @return ? join( "\n", @return ) . "\n" : '');
|
184 |
( @return ? join( "\n", @return ) . "\n" : '');
|
| 207 |
}
|
185 |
}
|
| 208 |
|
186 |
|
| 209 |
|
187 |
|