package org.ovirt.engine.core.vdsbroker;
import org.ovirt.engine.core.common.vdscommands.VdsAndVmIDVDSParametersBase;
public abstract class ManagingVmCommand<P extends VdsAndVmIDVDSParametersBase> extends VDSCommandBase<P> {
protected VmManager vmManager;
public ManagingVmCommand(P parameters) {
super(parameters);
}
protected void executeVDSCommand() {
vmManager = resourceManager.getVmManager(getParameters().getVmId());
vmManager.lock();
try {
executeVmCommand();
vmManager.updateVmDataChangedTime();
} finally {
vmManager.unlock();
}
}
protected abstract void executeVmCommand();
}