disable cluster-scope report from XS resource

This commit is contained in:
Kelven Yang 2014-01-24 15:52:53 -08:00
parent 5d73217723
commit 90ea3249a8
3 changed files with 16 additions and 8 deletions

View File

@ -33,10 +33,10 @@ import com.cloud.utils.fsm.StateObject;
*/
public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, InternalIdentity, StateObject<VirtualMachine.State> {
public enum PowerState {
PowerUnknown,
PowerOn,
PowerOff,
public enum PowerState {
PowerUnknown,
PowerOn,
PowerOff,
PowerReportMissing
}

View File

@ -79,8 +79,8 @@ public class VirtualMachinePowerStateSyncImpl implements VirtualMachinePowerStat
} else {
if (s_logger.isDebugEnabled())
s_logger.debug("VM power state does not change, skip DB writing. vm id: " + entry.getKey());
}
}
}
}
// for all running/stopping VMs, we provide monitoring of missing report
List<VMInstanceVO> vmsThatAreMissingReport = _instanceDao.findByHostInStates(hostId, VirtualMachine.State.Running,

View File

@ -239,7 +239,6 @@ import com.cloud.vm.VirtualMachine.PowerState;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.snapshot.VMSnapshot;
/**
* CitrixResourceBase encapsulates the calls to the XenServer Xapi process
* to perform the required functionalities for CloudStack.
@ -2496,6 +2495,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
}
protected HashMap<String, HostVmStateReportEntry> getHostVmStateReport(Connection conn) {
// TODO : new VM sync model does not require a cluster-scope report, we need to optimize
// the report accordingly
final HashMap<String, HostVmStateReportEntry> vmStates = new HashMap<String, HostVmStateReportEntry>();
Map<VM, VM.Record> vm_map = null;
for (int i = 0; i < 2; i++) {
@ -2534,7 +2536,13 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
} catch (XmlRpcException e) {
s_logger.error("Failed to get host uuid for host " + host.toWireString(), e);
}
vmStates.put(record.nameLabel, new HostVmStateReportEntry(convertPowerState(ps), host_uuid, xstoolsversion));
if (host_uuid.equalsIgnoreCase(_host.uuid)) {
vmStates.put(
record.nameLabel,
new HostVmStateReportEntry(convertPowerState(ps), host_uuid, xstoolsversion)
);
}
}
}