mirror of https://github.com/apache/cloudstack.git
SystemVM: Set agent state to disconnected on Stopping the systemVM (#5010)
Fixes: #4972 This PR sets systevms' agent state to disconnected when it is stopped. Currently, when a systemVM (Console Proxy VM / Secondary storage VM) is stopped, the agent state still appears to be 'Up'
This commit is contained in:
parent
65672b77fb
commit
2eae0f5385
|
|
@ -131,6 +131,9 @@ public enum Status {
|
|||
s_fsm.addTransition(Status.Up, Event.PingTimeout, Status.Alert);
|
||||
s_fsm.addTransition(Status.Up, Event.AgentDisconnected, Status.Alert);
|
||||
s_fsm.addTransition(Status.Up, Event.ShutdownRequested, Status.Disconnected);
|
||||
s_fsm.addTransition(Status.Disconnected, Event.ShutdownRequested, Status.Disconnected);
|
||||
s_fsm.addTransition(Status.Down, Event.ShutdownRequested, Status.Disconnected);
|
||||
s_fsm.addTransition(Status.Rebalancing, Event.ShutdownRequested, Status.Disconnected);
|
||||
s_fsm.addTransition(Status.Up, Event.HostDown, Status.Down);
|
||||
s_fsm.addTransition(Status.Up, Event.Ping, Status.Up);
|
||||
s_fsm.addTransition(Status.Up, Event.AgentConnected, Status.Connecting);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ import java.util.Arrays;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
import org.apache.cloudstack.api.Displayable;
|
||||
|
|
@ -186,6 +188,7 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Partition,
|
|||
}
|
||||
}
|
||||
|
||||
static final Set<Type> systemVMs = new HashSet<>(Arrays.asList(VirtualMachine.Type.ConsoleProxy, VirtualMachine.Type.SecondaryStorageVm));
|
||||
static final String IsDynamicScalingEnabled = "enable.dynamic.scaling";
|
||||
|
||||
public enum Event {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import java.util.concurrent.TimeUnit;
|
|||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd;
|
||||
|
|
@ -1984,6 +1985,14 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||
s_logger.warn("Unable to actually stop " + vm + " but continue with release because it's a force stop");
|
||||
vmGuru.finalizeStop(profile, answer);
|
||||
}
|
||||
} else {
|
||||
if (VirtualMachine.systemVMs.contains(vm.getType())) {
|
||||
HostVO systemVmHost = ApiDBUtils.findHostByTypeNameAndZoneId(vm.getDataCenterId(), vm.getHostName(),
|
||||
VirtualMachine.Type.SecondaryStorageVm.equals(vm.getType()) ? Host.Type.SecondaryStorageVM : Host.Type.ConsoleProxy);
|
||||
if (systemVmHost != null) {
|
||||
_agentMgr.agentStatusTransitTo(systemVmHost, Status.Event.ShutdownRequested, _nodeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1450,7 +1450,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
}
|
||||
}
|
||||
|
||||
if (vm.getType() == Type.SecondaryStorageVm || vm.getType() == Type.ConsoleProxy) {
|
||||
if (VirtualMachine.systemVMs.contains(vm.getType())) {
|
||||
Host systemVmHost = ApiDBUtils.findHostByTypeNameAndZoneId(vm.getDataCenterId(), vm.getHostName(),
|
||||
Type.SecondaryStorageVm.equals(vm.getType()) ? Host.Type.SecondaryStorageVM : Host.Type.ConsoleProxy);
|
||||
if (systemVmHost != null) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue