package org.ovirt.engine.core.vdsbroker;
import javax.inject.Inject;
import org.ovirt.engine.core.common.businessentities.VmDynamic;
import org.ovirt.engine.core.common.businessentities.VmStatistics;
import org.ovirt.engine.core.common.vdscommands.SetVmStatusVDSCommandParameters;
import org.ovirt.engine.core.dao.VmDynamicDao;
public class SetVmStatusVDSCommand<P extends SetVmStatusVDSCommandParameters> extends VDSCommandBase<P> {
@Inject
private VmDynamicDao vmDynamicDao;
public SetVmStatusVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeVDSCommand() {
VmDynamic vmDynamic = vmDynamicDao.get(getParameters().getVmId());
resourceManager.removeAsyncRunningVm(getParameters().getVmId());
resourceManager.internalSetVmStatus(vmDynamic, getParameters().getStatus(), getParameters().getExitStatus());
resourceManager.getVmManager(getParameters().getVmId()).update(new VmStatistics(getParameters().getVmId()));
// TODO: update network statistics
resourceManager.getVmManager(getParameters().getVmId()).update(vmDynamic);
}
}