Subversion Repositories havirt

Rev

Rev 41 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 41 Rev 42
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