Michael Kublin has uploaded a new change for review. Change subject: engine: Host life cycle improvement - InitVdsOnUp ......................................................................
engine: Host life cycle improvement - InitVdsOnUp InitVdsOnUp is called from VdsManager.OnTimer, vds object can be passed directly we don't need to pass id and after that retrieve an object again from DB. Less queries we use - much faster we run. Change-Id: I4b3e883dd365d9f036a1103a44b771e14116bcbf Signed-off-by: Michael Kublin <mkub...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HostStoragePoolParametersBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java 5 files changed, 19 insertions(+), 16 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/12016/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java index 17258ae..0c46999 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java @@ -14,7 +14,6 @@ import org.ovirt.engine.core.common.action.HostStoragePoolParametersBase; import org.ovirt.engine.core.common.action.ReconstructMasterParameters; import org.ovirt.engine.core.common.action.SetNonOperationalVdsParameters; -import org.ovirt.engine.core.common.action.StoragePoolParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.FenceActionType; import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue; @@ -58,15 +57,16 @@ */ @SuppressWarnings("serial") @NonTransactiveCommandAttribute -public class InitVdsOnUpCommand<T extends StoragePoolParametersBase> extends StorageHandlingCommandBase<T> { +public class InitVdsOnUpCommand extends StorageHandlingCommandBase<HostStoragePoolParametersBase> { private boolean _fenceSucceeded = true; private boolean _vdsProxyFound; private boolean _connectStorageSucceeded, _connectPoolSucceeded; private boolean _glusterPeerListSucceeded, _glusterPeerProbeSucceeded; private FenceStatusReturnValue _fenceStatusReturnValue; - public InitVdsOnUpCommand(T parameters) { + public InitVdsOnUpCommand(HostStoragePoolParametersBase parameters) { super(parameters); + setVds(parameters.getVds()); } @Override @@ -126,7 +126,6 @@ private boolean InitializeStorage() { boolean returnValue = false; - setStoragePoolId(getVds().getStoragePoolId()); // if no pool or pool is uninitialized or in maintenance mode no need to // connect any storage diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java index cd79c47..394e48c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java @@ -15,6 +15,7 @@ import org.ovirt.engine.core.bll.storage.StoragePoolStatusHandler; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.FenceVdsActionParameters; +import org.ovirt.engine.core.common.action.HostStoragePoolParametersBase; import org.ovirt.engine.core.common.action.MigrateVmToServerParameters; import org.ovirt.engine.core.common.action.PowerClientMigrateOnConnectCheckParameters; import org.ovirt.engine.core.common.action.ReconstructMasterParameters; @@ -22,7 +23,6 @@ import org.ovirt.engine.core.common.action.SetNonOperationalVdsParameters; import org.ovirt.engine.core.common.action.SetStoragePoolStatusParameters; import org.ovirt.engine.core.common.action.StorageDomainPoolParametersBase; -import org.ovirt.engine.core.common.action.StoragePoolParametersBase; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; @@ -136,10 +136,9 @@ } @Override - public boolean vdsUpEvent(final Guid vdsId) { - StoragePoolParametersBase tempVar = new StoragePoolParametersBase(Guid.Empty); - tempVar.setVdsId(vdsId); - boolean isSucceeded = Backend.getInstance().runInternalAction(VdcActionType.InitVdsOnUp, tempVar).getSucceeded(); + public boolean vdsUpEvent(final VDS vds) { + HostStoragePoolParametersBase params = new HostStoragePoolParametersBase(vds); + boolean isSucceeded = Backend.getInstance().runInternalAction(VdcActionType.InitVdsOnUp, params).getSucceeded(); if (isSucceeded) { ThreadPoolUtil.execute(new Runnable() { @Override @@ -148,13 +147,13 @@ // migrate vms that its their default vds and failback // is on List<VmStatic> vmsToMigrate = - DbFacade.getInstance().getVmStaticDao().getAllWithFailbackByVds(vdsId); + DbFacade.getInstance().getVmStaticDao().getAllWithFailbackByVds(vds.getId()); java.util.ArrayList<VdcActionParametersBase> vmToServerParametersList = Helper.ToList(LinqUtils .foreach(vmsToMigrate, new Function<VmStatic, VdcActionParametersBase>() { @Override public VdcActionParametersBase eval(VmStatic vm) { MigrateVmToServerParameters parameters = - new MigrateVmToServerParameters(false, vm.getId(), vdsId); + new MigrateVmToServerParameters(false, vm.getId(), vds.getId()); parameters.setShouldBeLogged(false); return parameters; } @@ -170,17 +169,17 @@ // instead of power client. this is a possible use case // to fasten the inital boot, then live migrate to power // client on spice connect. - List<VM> vms = DbFacade.getInstance().getVmDao().getAllForDedicatedPowerClientByVds(vdsId); + List<VM> vms = DbFacade.getInstance().getVmDao().getAllForDedicatedPowerClientByVds(vds.getId()); if (vms.size() != 0) { if (Config .<Boolean> GetValue(ConfigValues.PowerClientDedicatedVmLaunchOnVdsWhilePowerClientStarts)) { Backend.getInstance().runInternalAction(VdcActionType.RunVmOnDedicatedVds, - new RunVmParams(vms.get(0).getId(), vdsId), + new RunVmParams(vms.get(0).getId(), vds.getId()), ExecutionHandler.createInternalJobContext()); } else { ThreadUtils.sleep(10000); Backend.getInstance().runInternalAction(VdcActionType.RunVmOnPowerClient, - new RunVmParams(vms.get(0).getId(), vdsId), + new RunVmParams(vms.get(0).getId(), vds.getId()), ExecutionHandler.createInternalJobContext()); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HostStoragePoolParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HostStoragePoolParametersBase.java index 7296310..8a69237 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HostStoragePoolParametersBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HostStoragePoolParametersBase.java @@ -9,6 +9,11 @@ private VDS vds; private storage_pool storagePool; + public HostStoragePoolParametersBase(VDS vds) { + super(vds.getStoragePoolId(), vds.getId()); + this.vds = vds; + } + public HostStoragePoolParametersBase(storage_pool storage_pool, VDS vds) { super(storage_pool.getId(), vds.getId()); this.vds = vds; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java index 218b04b..092c452 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java @@ -30,7 +30,7 @@ */ void processOnVmStop(Guid vmId); - boolean vdsUpEvent(Guid vdsId); + boolean vdsUpEvent(VDS vds); void processOnClientIpChange(VDS vds, Guid vmId); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java index bab9869..a5ce436 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java @@ -386,7 +386,7 @@ } _vdsManager.setIsSetNonOperationalExecuted(!ResourceManager.getInstance() .getEventListener() - .vdsUpEvent(_vds.getId())); + .vdsUpEvent(_vds)); // Check hardware capabilities in case VDS moved to up processHardwareCapsNeeded = true; -- To view, visit http://gerrit.ovirt.org/12016 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4b3e883dd365d9f036a1103a44b771e14116bcbf Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <mkub...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches