]> git.proxmox.com Git - pve-ha-manager.git/commitdiff
crm: implement migrate in stopped state
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 16 Feb 2015 06:35:42 +0000 (07:35 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 16 Feb 2015 06:35:42 +0000 (07:35 +0100)
PVE/HA/Manager.pm

index d18dbde96352b69f4d36a55e89b84c0eb3c5dd54..c2bbe1a5ae1c1a9672b5302ba4c5e34c048fd7b2 100644 (file)
@@ -286,6 +286,23 @@ sub next_state_stopped {
        $sd->{node} = $cd->{node}; 
     }
 
+    if ($sd->{cmd}) {
+       my ($cmd, $target) = @{$sd->{cmd}};
+       delete $sd->{cmd};
+
+       if ($cmd eq 'migrate') {
+           if (!$ns->node_is_online($target)) {
+               $haenv->log('err', "ignore service '$sid' migrate request - node '$target' not online");
+           } else {
+               $haenv->change_service_location($sid, $target);
+               $cd->{node} = $sd->{node} = $target; # fixme: $sd is read-only??!!          
+               $haenv->log('info', "migrate service '$sid' to node '$target' (stopped)");
+           }
+       } else {
+           $haenv->log('err', "unknown command '$cmd' for service '$sid'"); 
+       }
+    } 
+
     if ($cd->{state} eq 'disabled') {
        # do nothing
     } elsif ($cd->{state} eq 'enabled') {