Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: make ResourceManger a CDI singleton bean ......................................................................
engine: make ResourceManger a CDI singleton bean Make ResourceManger a CDI singleton bean. The change is needed in order to make HostNetworkTopologyPersisterImpl a CDI singleton. Change-Id: I5984b8fea6a6f3c76581f4f07eb0aa5abf83cfa0 Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RefreshHostCapabilitiesCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SshSoftFencingCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VDSBrokerFrontendImpl.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConntectVDSToPoolAndDomains.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/transport/ProtocolDetector.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/BllCDIAdapter.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/AddVdsVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/GlusterMonitoringStrategy.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/IsVmDuringInitiatingVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/RemoveVdsVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResumeVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsIdVDSCommandBase.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VirtMonitoringStrategy.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetIsoListVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/HttpImageTaskVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsProxyData.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ResetIrsVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMClearTaskVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksInfoVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksStatusesVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMRevertTaskVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMStopTaskVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SpmStopOnIrsVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/storage/StoragePoolDomainHelper.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CancelMigrateVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkInterfacesPersisterImpl.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStartVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStopVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java M backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfoTest.java 46 files changed, 425 insertions(+), 211 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/34187/14 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java index 54dcd02..1e9b669 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java @@ -28,7 +28,6 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.customprop.DevicePropertiesUtils; import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil; -import org.ovirt.engine.core.vdsbroker.ResourceManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,11 +38,11 @@ @Singleton @Startup @DependsOn({ "Backend"}) -public class InitBackendServicesOnStartupBean implements InitBackendServicesOnStartup{ +public class InitBackendServicesOnStartupBean implements InitBackendServicesOnStartup { private static final Logger log = LoggerFactory.getLogger(InitBackendServicesOnStartupBean.class); - /** + /** * This method is called upon the bean creation as part * of the management Service bean life cycle. */ @@ -63,7 +62,6 @@ // TODO: remove this later, and rely only on the custom and built in extensions directories configuration DbUserCacheManager.getInstance().init(); CommandCoordinatorUtil.initAsyncTaskManager(); - ResourceManager.getInstance().init(); OvfDataUpdater.getInstance().initOvfDataUpdater(); SchedulingManager.getInstance().setMigrationHandler(new MigrationHandler() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RefreshHostCapabilitiesCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RefreshHostCapabilitiesCommand.java index 1af8ce1..a4f5478 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RefreshHostCapabilitiesCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RefreshHostCapabilitiesCommand.java @@ -3,6 +3,8 @@ import java.util.Collections; import java.util.Map; +import javax.inject.Inject; + import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.LockProperties; import org.ovirt.engine.core.common.action.LockProperties.Scope; @@ -17,6 +19,9 @@ @NonTransactiveCommandAttribute public class RefreshHostCapabilitiesCommand<T extends VdsActionParameters> extends VdsCommand<T> { + @Inject + private ResourceManager resourceManager; + public RefreshHostCapabilitiesCommand(T parameters) { super(parameters); } @@ -29,7 +34,7 @@ @Override protected void executeCommand() { try (EngineLock monitoringLock = acquireMonitorLock()) { - ResourceManager.getInstance().GetVdsManager(getVdsId()).refreshHost(getVds()); + resourceManager.GetVdsManager(getVdsId()).refreshHost(getVds()); setSucceeded(true); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java index 67b584d..9e3c811 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java @@ -9,6 +9,8 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.job.ExecutionContext; @@ -60,6 +62,9 @@ private SnapshotsValidator snapshotsValidator=new SnapshotsValidator(); private final List<Guid> runVdsList = new ArrayList<Guid>(); private Guid lastDecreasedVds; + + @Inject + private ResourceManager resourceManager; protected RunVmCommandBase(Guid commandId) { super(commandId); @@ -328,7 +333,7 @@ // time out waiting for an update is the highest between the refresh rate and the last update elapsed time // but still no higher than a configurable max to prevent very long updates to stall command. long t = Math.max( - ResourceManager.getInstance().GetVdsManager(vdsId).getLastUpdateElapsed(), + resourceManager.GetVdsManager(vdsId).getLastUpdateElapsed(), TimeUnit.SECONDS.toMillis(Config.<Integer> getValue(VdsRefreshRate))); t = Math.max(Config.<Integer> getValue(ConfigValues.ThrottlerMaxWaitForVdsUpdateInMillis), t); @@ -350,7 +355,7 @@ * @return {@link org.ovirt.engine.core.vdsbroker.VdsMonitor} for signaling on thread actions */ private VdsMonitor getMonitor(Guid vdsId) { - return ResourceManager.getInstance().GetVdsManager(vdsId).getVdsMonitor(); + return resourceManager.GetVdsManager(vdsId).getVdsMonitor(); } /** diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SshSoftFencingCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SshSoftFencingCommand.java index f40c490..5be59d7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SshSoftFencingCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SshSoftFencingCommand.java @@ -3,6 +3,8 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; +import javax.inject.Inject; + import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.utils.EngineSSHClient; import org.ovirt.engine.core.common.action.VdsActionParameters; @@ -15,6 +17,10 @@ */ @NonTransactiveCommandAttribute public class SshSoftFencingCommand<T extends VdsActionParameters> extends VdsCommand<T> { + + @Inject + private ResourceManager resourceManager; + /** * Creates an instance with specified parameters * @@ -53,7 +59,7 @@ boolean result = executeSshSoftFencingCommand(getVds().getVdsGroupCompatibilityVersion().toString()); if (result) { // SSH Soft Fencing executed without errors, tell VdsManager about it - ResourceManager.getInstance().GetVdsManager(getVds().getId()).finishSshSoftFencingExecution(getVds()); + resourceManager.GetVdsManager(getVds().getId()).finishSshSoftFencingExecution(getVds()); } getReturnValue().setSucceeded(result); } else { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java index 44eec7d..523bd97 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.List; +import javax.inject.Inject; + import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.network.cluster.NetworkClusterHelper; import org.ovirt.engine.core.common.AuditLogType; @@ -41,6 +43,9 @@ private VDS _oldVds; private static final List<String> UPDATE_FIELDS_VDS_BROKER = Arrays.asList("host_name", "ip", "vds_unique_id", "port", "vds_group_id"); private VdcActionType actionType; + + @Inject + private ResourceManager resourceManager; public UpdateVdsCommand(T parameters) { this(parameters, VdcActionType.InstallVdsInternal); @@ -200,7 +205,7 @@ } if (_oldVds.getProtocol() != getParameters().getVdsStaticData().getProtocol()) { - ResourceManager.getInstance().reestablishConnection(_oldVds.getId()); + resourceManager.reestablishConnection(_oldVds.getId()); } // set clusters network to be operational (if needed) diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VDSBrokerFrontendImpl.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VDSBrokerFrontendImpl.java index aef680c..67ca388 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VDSBrokerFrontendImpl.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VDSBrokerFrontendImpl.java @@ -14,6 +14,7 @@ import org.ovirt.engine.core.common.vdscommands.VdsAndVmIDVDSParametersBase; import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class VDSBrokerFrontendImpl implements VDSBrokerFrontend { @@ -92,6 +93,6 @@ } private ResourceManager getResourceManager() { - return ResourceManager.getInstance(); + return Injector.get(ResourceManager.class); } } 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 678c19a..6389903 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 @@ -67,6 +67,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.ejb.BeanProxyType; import org.ovirt.engine.core.utils.ejb.BeanType; import org.ovirt.engine.core.utils.ejb.EjbUtils; @@ -485,10 +486,12 @@ ThreadPoolUtil.execute(new Runnable() { @Override public void run() { + final ResourceManager resourceManager = getResourceManager(); + for (Guid vmId : vmIds) { CpuQos qos = DbFacade.getInstance().getCpuQosDao().getCpuQosByVmId(vmId); if (qos != null && qos.getCpuLimit() != null) { - ResourceManager.getInstance().runVdsCommand(VDSCommandType.UpdateVmPolicy, + resourceManager.runVdsCommand(VDSCommandType.UpdateVmPolicy, new UpdateVmPolicyVDSParams(vdsId, vmId, qos.getCpuLimit().intValue())); } } @@ -496,6 +499,10 @@ }); } + private ResourceManager getResourceManager() { + return Injector.get(ResourceManager.class); + } + private static final Log log = LogFactory.getLog(VdsEventListener.class); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java index bc2d3fc..1349d94 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskStartTaskHandler.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.VmReplicateDiskParameters; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class VmReplicateDiskStartTaskHandler extends AbstractSPMAsyncTaskHandler<TaskHandlerCommand<? extends LiveMigrateDiskParameters>> { @@ -38,8 +39,9 @@ getEnclosingCommand().getParameters().getImageGroupID(), getEnclosingCommand().getParameters().getDestinationImageId() ); - VDSReturnValue ret = - ResourceManager.getInstance().runVdsCommand(VDSCommandType.VmReplicateDiskStart, migrationStartParams); + final ResourceManager resourceManager = getResourceManager(); + VDSReturnValue ret = resourceManager.runVdsCommand(VDSCommandType.VmReplicateDiskStart, + migrationStartParams); if (!ret.getSucceeded()) { log.errorFormat("Failed VmReplicateDiskStart (Disk {0} , VM {1})", @@ -47,6 +49,10 @@ getEnclosingCommand().getParameters().getVmId()); throw new VdcBLLException(ret.getVdsError().getCode(), ret.getVdsError().getMessage()); } + } + + private ResourceManager getResourceManager() { + return Injector.get(ResourceManager.class); } @Override @@ -89,8 +95,8 @@ ); try { - VDSReturnValue ret = ResourceManager.getInstance().runVdsCommand( - VDSCommandType.VmReplicateDiskFinish, migrationStartParams); + VDSReturnValue ret = + getResourceManager().runVdsCommand(VDSCommandType.VmReplicateDiskFinish, migrationStartParams); if (!ret.getSucceeded()) { getEnclosingCommand().preventRollback(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConntectVDSToPoolAndDomains.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConntectVDSToPoolAndDomains.java index f6d71f3..f4b1881 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConntectVDSToPoolAndDomains.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConntectVDSToPoolAndDomains.java @@ -3,14 +3,15 @@ import java.util.ArrayList; import java.util.List; -import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; -import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; +import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.vdscommands.ConnectStoragePoolVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; import org.ovirt.engine.core.vdsbroker.ResourceManager; @@ -39,10 +40,12 @@ StorageHelperDirector.getInstance().getItem(getStorageDomain().getStorageType()) .connectStorageToDomainByVdsId(getStorageDomain(), vds.getId()); if (isConnectSucceeded) { - ResourceManager.getInstance().runVdsCommand( + Injector.get(ResourceManager.class).runVdsCommand( VDSCommandType.ConnectStoragePool, - new ConnectStoragePoolVDSCommandParameters( - vds, getStoragePool(), masterStorageDomainId, storagePoolIsoMap)); + new ConnectStoragePoolVDSCommandParameters(vds, + getStoragePool(), + masterStorageDomainId, + storagePoolIsoMap)); } else { log.errorFormat("Failed to connect host {0} to domain {1}", vds.getName(), diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/transport/ProtocolDetector.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/transport/ProtocolDetector.java index d24a1be..d305a6d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/transport/ProtocolDetector.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/transport/ProtocolDetector.java @@ -26,9 +26,12 @@ */ public class ProtocolDetector { - private VDS vds; + private final VDS vds; + private final ResourceManager resourceManager; - public ProtocolDetector(VDS vds) { + public ProtocolDetector(ResourceManager resourceManager, + VDS vds) { + this.resourceManager = resourceManager; this.vds = vds; } @@ -58,7 +61,7 @@ * Stops {@code VdsManager} for a host. */ public void stopConnection() { - ResourceManager.getInstance().RemoveVds(this.vds.getId()); + resourceManager.RemoveVds(this.vds.getId()); } /** @@ -68,7 +71,7 @@ */ public boolean attemptFallbackProtocol() { vds.setProtocol(VdsProtocol.XML); - ResourceManager.getInstance().AddVds(vds, false); + resourceManager.AddVds(vds, false); return attemptConnection(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/BllCDIAdapter.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/BllCDIAdapter.java index dde74c1..39f22e4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/BllCDIAdapter.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/BllCDIAdapter.java @@ -6,8 +6,10 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.StoragePoolDAO; import org.ovirt.engine.core.dao.VdsGroupDAO; +import org.ovirt.engine.core.dao.network.InterfaceDao; import org.ovirt.engine.core.dao.network.NetworkClusterDao; import org.ovirt.engine.core.dao.network.NetworkDao; +import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -21,8 +23,6 @@ * Producers could be declared either by a field or by a method, to get more control on the production of an instance * * There is no need to instantiate this class and there is no visible usage to it but to the dependency scanner - * - * */ public class BllCDIAdapter { @@ -47,6 +47,11 @@ } @Produces + private InterfaceDao produceInterfaceDao(DbFacade dbFacade) { + return dbFacade.getInterfaceDao(); + } + + @Produces private NetworkDao produceNetworkDao(DbFacade dbFacade) { return dbFacade.getNetworkDao(); } @@ -57,6 +62,11 @@ } @Produces + private NetworkQoSDao produceNetworkQoSDao(DbFacade dbFacade) { + return dbFacade.getNetworkQosDao(); + } + + @Produces private VdsGroupDAO produceVdsGroupDao(DbFacade dbFacade) { return dbFacade.getVdsGroupDao(); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/AddVdsVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/AddVdsVDSCommand.java index 745e6f3..924eae6 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/AddVdsVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/AddVdsVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.vdscommands.AddVdsVDSCommandParameters; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -7,6 +9,10 @@ import org.ovirt.engine.core.utils.log.LogFactory; public class AddVdsVDSCommand<P extends AddVdsVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; + public AddVdsVDSCommand(P parameters) { super(parameters, true); } @@ -17,7 +23,7 @@ VDS vds = DbFacade.getInstance().getVdsDao().get(getVdsId()); log.infoFormat("AddVds - VDS {0} was added, will try to add it to the resource manager", getVdsId()); - ResourceManager.getInstance().AddVds(vds, false); + resourceManager.AddVds(vds, false); } private static final Log log = LogFactory.getLog(AddVdsVDSCommand.class); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java index 43898a0..f11f186 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/CreateVmVDSCommand.java @@ -3,6 +3,8 @@ import java.util.Date; import java.util.List; +import javax.inject.Inject; + import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; @@ -20,6 +22,10 @@ import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSGenericException; public class CreateVmVDSCommand<P extends CreateVmVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; + public CreateVmVDSCommand(P parameters) { super(parameters); } @@ -37,7 +43,7 @@ // set, it is actually memory from snapshot, thus it should be cleared right // after the VM started final boolean clearHibernationVolume = vm.getStatus() != VMStatus.Suspended; - if (canExecute() && ResourceManager.getInstance().AddAsyncRunningVm(vm.getId())) { + if (canExecute() && resourceManager.AddAsyncRunningVm(vm.getId())) { CreateVDSCommand<?> command = null; try { command = initCreateVDSCommand(vm); @@ -54,12 +60,12 @@ DbFacade.getInstance().getVmDynamicDao().update(vm.getDynamicData()); } else { handleCommandResult(command); - ResourceManager.getInstance().RemoveAsyncRunningVm(getParameters().getVmId()); + resourceManager.RemoveAsyncRunningVm(getParameters().getVmId()); } } catch (Exception e) { log.error("Error in excuting CreateVmVDSCommand", e); if (command != null && !command.getVDSReturnValue().getSucceeded()) { - ResourceManager.getInstance().RemoveAsyncRunningVm(getParameters().getVmId()); + resourceManager.RemoveAsyncRunningVm(getParameters().getVmId()); } throw new RuntimeException(e); } @@ -92,7 +98,7 @@ Guid guid = getParameters().getVm().getId(); String vmName = getParameters().getVm().getName(); VmDynamic vmDynamicFromDb = DbFacade.getInstance().getVmDynamicDao().get(guid); - if (ResourceManager.getInstance().IsVmDuringInitiating(getParameters().getVm().getId())) { + if (resourceManager.IsVmDuringInitiating(getParameters().getVm().getId())) { log.infoFormat("Vm Running failed - vm {0}:{1} already running", guid, vmName); getVDSReturnValue().setReturnValue(vmDynamicFromDb.getStatus()); return false; diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java index b4c14de..2cafa77 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java @@ -3,6 +3,8 @@ import java.util.Collections; import java.util.List; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; @@ -16,6 +18,10 @@ import org.ovirt.engine.core.vdsbroker.vdsbroker.DestroyVDSCommand; public class DestroyVmVDSCommand<P extends DestroyVmVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; + public DestroyVmVDSCommand(P parameters) { super(parameters); } @@ -26,7 +32,7 @@ if (_vdsManager != null) { final DestroyVmVDSCommandParameters parameters = getParameters(); - ResourceManager.getInstance().RemoveAsyncRunningVm(parameters.getVmId()); + resourceManager.RemoveAsyncRunningVm(parameters.getVmId()); final VM curVm = DbFacade.getInstance().getVmDao().get(parameters.getVmId()); curVm.setInterfaces(DbFacade.getInstance().getVmNetworkInterfaceDao().getAllForVm(curVm.getId())); @@ -72,8 +78,7 @@ // if using stop then call to ProcessOnVmStop because // will not be called from UpdateRunTimeInfo if (!parameters.getGracefully()) { - ResourceManager.getInstance().getEventListener() - .processOnVmStop(Collections.singleton(curVm.getId())); + resourceManager.getEventListener().processOnVmStop(Collections.singleton(curVm.getId())); } getVDSReturnValue().setReturnValue(curVm.getStatus()); @@ -99,7 +104,7 @@ private void changeStatus(DestroyVmVDSCommandParameters parameters, VM curVm) { // do the state transition only if that VM is really running on SRC if (getVdsId().equals(curVm.getRunOnVds())) { - ResourceManager.getInstance().InternalSetVmStatus(curVm, + resourceManager.InternalSetVmStatus(curVm, parameters.getGracefully() ? VMStatus.PoweringDown : VMStatus.Down); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/GlusterMonitoringStrategy.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/GlusterMonitoringStrategy.java index 15aaf2a..46cdb86 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/GlusterMonitoringStrategy.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/GlusterMonitoringStrategy.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.NonOperationalReason; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; @@ -12,6 +14,9 @@ * This class defines gluster strategy entry points, which are needed in host monitoring phase */ public class GlusterMonitoringStrategy implements MonitoringStrategy { + + @Inject + private ResourceManager resourceManager; @Override public boolean canMoveToMaintenance(VDS vds) { @@ -26,7 +31,7 @@ @Override public void processSoftwareCapabilities(VDS vds) { // check if gluster is running - VDSReturnValue returnValue = ResourceManager.getInstance().runVdsCommand(VDSCommandType.GlusterServersList, + VDSReturnValue returnValue = resourceManager.runVdsCommand(VDSCommandType.GlusterServersList, new VdsIdVDSCommandParametersBase(vds.getId())); if (!returnValue.getSucceeded()) { vds.setStatus(VDSStatus.NonOperational); @@ -36,7 +41,7 @@ } private void vdsNonOperational(VDS vds, NonOperationalReason reason) { - ResourceManager.getInstance().getEventListener().vdsNonOperational(vds.getId(), reason, true, Guid.Empty, null); + resourceManager.getEventListener().vdsNonOperational(vds.getId(), reason, true, Guid.Empty, null); } @Override diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/IsVmDuringInitiatingVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/IsVmDuringInitiatingVDSCommand.java index 85c9fbc..4fb8ed7 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/IsVmDuringInitiatingVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/IsVmDuringInitiatingVDSCommand.java @@ -1,16 +1,20 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.IsVmDuringInitiatingVDSCommandParameters; -public class IsVmDuringInitiatingVDSCommand<P extends IsVmDuringInitiatingVDSCommandParameters> -extends VDSCommandBase<P> { +public class IsVmDuringInitiatingVDSCommand<P extends IsVmDuringInitiatingVDSCommandParameters> extends + VDSCommandBase<P> { + @Inject + private ResourceManager resourceManager; + public IsVmDuringInitiatingVDSCommand(P parameters) { super(parameters); } @Override protected void executeVDSCommand() { - getVDSReturnValue().setReturnValue(ResourceManager.getInstance() - .IsVmDuringInitiating(getParameters().getVmId())); + getVDSReturnValue().setReturnValue(resourceManager.IsVmDuringInitiating(getParameters().getVmId())); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java index ec0bc0d..821b9bd 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.vdscommands.MigrateVDSCommandParameters; @@ -12,6 +14,9 @@ import org.ovirt.engine.core.vdsbroker.vdsbroker.MigrateBrokerVDSCommand; public class MigrateVDSCommand<P extends MigrateVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; private static final Log log = LogFactory.getLog(MigrateVDSCommand.class); @@ -33,9 +38,9 @@ VM vm = getVmDao().get(getParameters().getVmId()); if (vdsReturnValue.getSucceeded()) { - ResourceManager.getInstance().AddAsyncRunningVm(getParameters().getVmId()); + resourceManager.AddAsyncRunningVm(getParameters().getVmId()); - ResourceManager.getInstance().InternalSetVmStatus(vm, VMStatus.MigratingFrom); + resourceManager.InternalSetVmStatus(vm, VMStatus.MigratingFrom); vm.setMigratingToVds(getParameters().getDstVdsId()); getVmDynamicDAO().update(vm.getDynamicData()); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/RemoveVdsVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/RemoveVdsVDSCommand.java index c54b9b1..4c5e00a 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/RemoveVdsVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/RemoveVdsVDSCommand.java @@ -1,8 +1,13 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.RemoveVdsVDSCommandParameters; public class RemoveVdsVDSCommand<P extends RemoveVdsVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; private P parameters; @@ -13,6 +18,6 @@ @Override protected void executeVdsIdCommand() { - ResourceManager.getInstance().RemoveVds(getVdsId(), parameters.isNewHost()); + resourceManager.RemoveVds(getVdsId(), parameters.isNewHost()); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java index cc21d83..31fcc61 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java @@ -10,7 +10,12 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import javax.annotation.PostConstruct; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.Validate; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.IVdsEventListener; import org.ovirt.engine.core.common.businessentities.VDS; @@ -47,9 +52,9 @@ import org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand; import org.ovirt.engine.core.vdsbroker.vdsbroker.FutureVDSCommand; +@Singleton public class ResourceManager { - private static ResourceManager instance = new ResourceManager(); private final Map<Guid, HashSet<Guid>> vdsAndVmsList = new ConcurrentHashMap<>(); private final Map<Guid, VdsManager> vdsManagersDict = new ConcurrentHashMap<>(); private final Set<Guid> asyncRunningVms = @@ -59,18 +64,20 @@ private static final Log log = LogFactory.getLog(ResourceManager.class); - private ResourceManager() { + private final DbFacade dbFacade; + @Inject + private ResourceManager(DbFacade dbFacade) { + Validate.notNull(dbFacade, "dbFacade cannot be null"); + + this.dbFacade = dbFacade; } - public static ResourceManager getInstance() { - return instance; - } - - public void init() { + @PostConstruct + void init() { log.info("Start initializing " + getClass().getSimpleName()); - List<VDS> allVdsList = DbFacade.getInstance().getVdsDao().getAll(); - HashSet<Guid> nonResponsiveVdss = new HashSet<Guid>(); + List<VDS> allVdsList = dbFacade.getVdsDao().getAll(); + Set<Guid> nonResponsiveVdss = new HashSet<>(); for (VDS helper_vds : allVdsList) { if (helper_vds.getStatus() == VDSStatus.NonResponsive) { nonResponsiveVdss.add(helper_vds.getId()); @@ -81,7 +88,7 @@ boolean runningVmsInTransition = false; // Cleanup all vms dynamic data. This is defensive code on power crash - List<VM> vms = DbFacade.getInstance().getVmDao().getAll(); + List<VM> vms = dbFacade.getVmDao().getAll(); for (VM vm : vms) { if (!vm.isNotRunning()) { if (vm.getRunOnVds() != null) { @@ -121,7 +128,7 @@ } } - DbFacade.getInstance().getVdsDynamicDao().updateAllInBatch(updatedEntities); + dbFacade.getVdsDynamicDao().updateAllInBatch(updatedEntities); // Populate the VDS dictionary for (VDS curVds : allVdsList) { @@ -182,7 +189,7 @@ } public void reestablishConnection(Guid vdsId) { - VDS vds = DbFacade.getInstance().getVdsDao().get(vdsId); + VDS vds = dbFacade.getVdsDao().get(vdsId); RemoveVds(vds.getId()); AddVds(vds, false); } @@ -260,13 +267,13 @@ } private void storeVm(VM vm) { - DbFacade.getInstance().getVmDynamicDao().update(vm.getDynamicData()); - DbFacade.getInstance().getVmStatisticsDao().update(vm.getStatisticsData()); + dbFacade.getVmDynamicDao().update(vm.getDynamicData()); + dbFacade.getVmStatisticsDao().update(vm.getStatisticsData()); List<VmNetworkInterface> interfaces = vm.getInterfaces(); if (interfaces != null) { for (VmNetworkInterface ifc : interfaces) { VmNetworkStatistics stats = ifc.getStatistics(); - DbFacade.getInstance().getVmNetworkStatisticsDao().update(stats); + dbFacade.getVmNetworkStatisticsDao().update(stats); } } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResumeVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResumeVDSCommand.java index 55514e4..e189cc3 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResumeVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResumeVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.vdscommands.ResumeVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VdsAndVmIDVDSParametersBase; @@ -8,6 +10,10 @@ import org.ovirt.engine.core.vdsbroker.vdsbroker.ResumeBrokerVDSCommand; public class ResumeVDSCommand<P extends ResumeVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; + public ResumeVDSCommand(P parameters) { super(parameters); } @@ -22,7 +28,7 @@ command.execute(); if (command.getVDSReturnValue().getSucceeded()) { retval = VMStatus.PoweringUp; - ResourceManager.getInstance().AddAsyncRunningVm(parameters.getVmId()); + resourceManager.AddAsyncRunningVm(parameters.getVmId()); } else if (command.getVDSReturnValue().getExceptionObject() != null) { log.errorFormat("VDS::pause Failed resume vm '{0}' in vds = {1} : {2}, error = {3}", parameters .getVmId(), getVds().getId(), getVds().getName(), command.getVDSReturnValue() diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java index e4ede09..b02d352 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; @@ -15,6 +17,10 @@ import org.ovirt.engine.core.utils.transaction.TransactionSupport; public class SetVdsStatusVDSCommand<P extends SetVdsStatusVDSCommandParameters> extends VdsIdVDSCommandBase<P> { + + @Inject + private ResourceManager resourceManager; + public SetVdsStatusVDSCommand(P parameters) { super(parameters); } @@ -30,8 +36,7 @@ log.infoFormat("VDS {0} is spm and moved from up calling resetIrs.", vds.getName()); // check if this host was spm and reset if do. getVDSReturnValue().setSucceeded( - ResourceManager - .getInstance() + resourceManager .runVdsCommand( VDSCommandType.ResetIrs, new ResetIrsVDSCommandParameters(vds.getStoragePoolId(), vds.getId())) diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java index 0c34f38..0b677da 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java @@ -2,6 +2,8 @@ import java.util.List; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmDynamic; @@ -15,6 +17,9 @@ public class SetVmStatusVDSCommand<P extends SetVmStatusVDSCommandParameters> extends VDSCommandBase<P> { private static final Log log = LogFactory.getLog(SetVmStatusVDSCommand.class); + + @Inject + private ResourceManager resourceManager; public SetVmStatusVDSCommand(P parameters) { super(parameters); @@ -33,10 +38,10 @@ VmDynamic vmDynamic = DbFacade.getInstance().getVmDynamicDao().get(parameters.getVmId()); vmDynamic.setStatus(status); if (status.isNotRunning()) { - ResourceManager.getInstance().RemoveAsyncRunningVm(parameters.getVmId()); + resourceManager.RemoveAsyncRunningVm(parameters.getVmId()); VmStatistics vmStatistics = DbFacade.getInstance().getVmStatisticsDao().get(parameters.getVmId()); VM vm = new VM(null, vmDynamic, vmStatistics); - ResourceManager.getInstance().InternalSetVmStatus(vm, status, parameters.getExitStatus()); + resourceManager.InternalSetVmStatus(vm, status, parameters.getExitStatus()); DbFacade.getInstance().getVmStatisticsDao().update(vm.getStatisticsData()); List<VmNetworkInterface> interfaces = vm.getInterfaces(); if (interfaces != null && !interfaces.isEmpty()) { @@ -47,7 +52,7 @@ } } else if (status == VMStatus.Unknown) { - ResourceManager.getInstance().RemoveAsyncRunningVm(parameters.getVmId()); + resourceManager.RemoveAsyncRunningVm(parameters.getVmId()); } DbFacade.getInstance().getVmDynamicDao().update(vmDynamic); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsIdVDSCommandBase.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsIdVDSCommandBase.java index 7c9720d..19d3678 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsIdVDSCommandBase.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsIdVDSCommandBase.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.di.Injector; public abstract class VdsIdVDSCommandBase<P extends VdsIdVDSCommandParametersBase> extends VDSCommandBase<P> { protected VdsManager _vdsManager; @@ -11,7 +12,8 @@ public VdsIdVDSCommandBase(P parameters, boolean newHost) { super(parameters); if (!newHost) { - _vdsManager = ResourceManager.getInstance().GetVdsManager(parameters.getVdsId()); + final ResourceManager resourceManager = Injector.get(ResourceManager.class); + _vdsManager = resourceManager.GetVdsManager(parameters.getVdsId()); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java index 0ab1354..ee73828 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java @@ -42,6 +42,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.NumaUtils; import org.ovirt.engine.core.utils.crypt.EngineEncryptionUtils; import org.ovirt.engine.core.utils.lock.EngineLock; @@ -59,7 +60,6 @@ import org.ovirt.engine.core.vdsbroker.jsonrpc.TransportFactory; import org.ovirt.engine.core.vdsbroker.vdsbroker.GetCapabilitiesVDSCommand; import org.ovirt.engine.core.vdsbroker.vdsbroker.HostNetworkTopologyPersister; -import org.ovirt.engine.core.vdsbroker.vdsbroker.HostNetworkTopologyPersisterImpl; import org.ovirt.engine.core.vdsbroker.vdsbroker.IVdsServer; import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSNetworkException; import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSRecoveringException; @@ -76,6 +76,7 @@ private final VdsMonitor vdsMonitor = new VdsMonitor(); private VDS vds; private final HostNetworkTopologyPersister hostNetworkTopologyPersister; + private final ResourceManager resourceManager; private long lastUpdate; private long updateStartTime; private long nextMaintenanceAttemptTime; @@ -89,6 +90,7 @@ private boolean mBeforeFirstRefresh = true; private VdsUpdateRunTimeInfo vdsUpdater; + private VdsManager(VDS vds) { log.info("Entered VdsManager constructor"); this.vds = vds; @@ -99,7 +101,9 @@ sshSoftFencingExecuted = new AtomicBoolean(false); monitoringLock = new EngineLock(Collections.singletonMap(vdsId.toString(), new Pair<String, String>(LockingGroup.VDS_INIT.name(), "")), null); - hostNetworkTopologyPersister = HostNetworkTopologyPersisterImpl.getInstance(); + + hostNetworkTopologyPersister = Injector.get(HostNetworkTopologyPersister.class); + resourceManager = Injector.get(ResourceManager.class); handlePreviousStatus(); handleSecureSetup(); @@ -199,7 +203,7 @@ } if (isMonitoringNeeded()) { setStartTime(); - vdsUpdater = new VdsUpdateRunTimeInfo(VdsManager.this, vds, monitoringStrategy); + vdsUpdater = new VdsUpdateRunTimeInfo(resourceManager, VdsManager.this, vds, monitoringStrategy); vdsUpdater.refresh(); mUnrespondedAttempts.set(0); sshSoftFencingExecuted.set(false); @@ -209,7 +213,7 @@ && vds.getStatus() != VDSStatus.PendingApproval && vds.getStatus() != VDSStatus.InstallingOS) { log.infoFormat("Initializing Host: {0}", vds.getName()); - ResourceManager.getInstance().HandleVdsFinishedInit(vds.getId()); + resourceManager.HandleVdsFinishedInit(vds.getId()); setInitialized(true); } } catch (VDSNetworkException e) { @@ -316,12 +320,11 @@ VDS vds = DbFacade.getInstance().getVdsDao().get(getVdsId()); if (vds.getStatus() == VDSStatus.Initializing) { try { - ResourceManager - .getInstance() - .getEventListener() - .vdsNonOperational(vds.getId(), - NonOperationalReason.TIMEOUT_RECOVERING_FROM_CRASH, - true, + resourceManager + .getEventListener() + .vdsNonOperational(vds.getId(), + NonOperationalReason.TIMEOUT_RECOVERING_FROM_CRASH, + true, Guid.Empty); setIsSetNonOperationalExecuted(true); } catch (RuntimeException exp) { @@ -419,7 +422,7 @@ monitoringStrategy.processHardwareCapabilities(vds); // Always check VdsVersion - ResourceManager.getInstance().getEventListener().handleVdsVersion(vds.getId()); + resourceManager.getEventListener().handleVdsVersion(vds.getId()); } } } @@ -510,7 +513,7 @@ && mFailedToRunVmAttempts.incrementAndGet() >= Config .<Integer> getValue(ConfigValues.NumberOfFailedRunsOnVds)) { //Only one thread at a time can enter here - ResourceManager.getInstance().runVdsCommand(VDSCommandType.SetVdsStatus, + resourceManager.runVdsCommand(VDSCommandType.SetVdsStatus, new SetVdsStatusVDSCommandParameters(vds.getId(), VDSStatus.Error)); SchedulerUtil sched = SchedulerUtilQuartzImpl.getInstance(); @@ -536,7 +539,7 @@ public void succededToRunVm(Guid vmId) { mUnrespondedAttempts.set(0); sshSoftFencingExecuted.set(false); - ResourceManager.getInstance().succededToRunVm(vmId, vds.getId()); + resourceManager.succededToRunVm(vmId, vds.getId()); } public VDSStatus refreshCapabilities(AtomicBoolean processHardwareCapsNeeded, VDS vds) { @@ -555,7 +558,7 @@ // host and an exception will be raised by VDSM. (hostVersions = vds.getSupportedClusterVersionsSet()) != null && hostVersions.contains(clusterCompatibility)) { - VDSReturnValue ret = ResourceManager.getInstance().runVdsCommand(VDSCommandType.GetHardwareInfo, + VDSReturnValue ret = resourceManager.runVdsCommand(VDSCommandType.GetHardwareInfo, new VdsIdAndVdsVDSCommandParametersBase(vds)); if (!ret.getSucceeded()) { AuditLogableBase logable = new AuditLogableBase(vds.getId()); @@ -690,7 +693,7 @@ if (!sshSoftFencingExecuted.getAndSet(true)) { executeSshSoftFencing = true; } - ResourceManager.getInstance().getEventListener().vdsNotResponding(vds, executeSshSoftFencing, lastUpdate); + resourceManager.getEventListener().vdsNotResponding(vds, executeSshSoftFencing, lastUpdate); } return true; } @@ -785,9 +788,8 @@ List<VM> vmList = getVmsToMoveToUnknown(); for (VM vm :vmList) { destroyVmOnDestination(vm); - ResourceManager.getInstance() - .runVdsCommand(VDSCommandType.SetVmStatus, - new SetVmStatusVDSCommandParameters(vm.getId(), VMStatus.Unknown)); + resourceManager.runVdsCommand(VDSCommandType.SetVmStatus, + new SetVmStatusVDSCommandParameters(vm.getId(), VMStatus.Unknown)); // log VM transition to unknown status AuditLogableBase logable = new AuditLogableBase(); logable.setVmId(vm.getId()); @@ -805,7 +807,7 @@ public void run() { VDSReturnValue returnValue = null; returnValue = - ResourceManager.getInstance() + resourceManager .runVdsCommand( VDSCommandType.DestroyVm, new DestroyVmVDSCommandParameters(vm.getMigratingToVds() 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 787ad9b..a7da535 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 @@ -141,6 +141,8 @@ /** names of fields in {@link VmDynamic} that are not changed by VDSM */ private static final List<String> UNCHANGEABLE_FIELDS_BY_VDSM; + private final ResourceManager resourceManager; + static { List<String> tmpList = new ArrayList<String>(); for (Field field : VmDynamic.class.getDeclaredFields()) { @@ -151,11 +153,15 @@ UNCHANGEABLE_FIELDS_BY_VDSM = Collections.unmodifiableList(tmpList); } - public VdsUpdateRunTimeInfo(VdsManager vdsManager, VDS vds, MonitoringStrategy monitoringStrategy) { + public VdsUpdateRunTimeInfo(ResourceManager resourceManager, + VdsManager vdsManager, + VDS vds, + MonitoringStrategy monitoringStrategy) { _vdsManager = vdsManager; _vds = vds; _firstStatus = _vds.getStatus(); this.monitoringStrategy = monitoringStrategy; + this.resourceManager = resourceManager; _vmDict = getDbFacade().getVmDao().getAllRunningByVds(_vds.getId()); } @@ -223,7 +229,7 @@ _vds.getName(), _vds.getVdsGroupName()), cce); if (_vds.getStatus() != VDSStatus.PreparingForMaintenance && _vds.getStatus() != VDSStatus.Maintenance) { - ResourceManager.getInstance().runVdsCommand(VDSCommandType.SetVdsStatus, + resourceManager.runVdsCommand(VDSCommandType.SetVdsStatus, new SetVdsStatusVDSCommandParameters(_vds.getId(), VDSStatus.Error)); } } catch (Throwable t) { @@ -583,7 +589,7 @@ } protected IVdsEventListener getVdsEventListener() { - return ResourceManager.getInstance().getEventListener(); + return getResourceManager().getEventListener(); } public void afterRefreshTreatment() { @@ -625,7 +631,7 @@ // rerun all vms from rerun list for (Guid vm_guid : _vmsToRerun) { log.errorFormat("Rerun vm {0}. Called from vds {1}", vm_guid, _vds.getName()); - ResourceManager.getInstance().RerunFailedCommand(vm_guid, _vds.getId()); + resourceManager.RerunFailedCommand(vm_guid, _vds.getId()); } for (Guid vm_guid : _succededToRunVms) { @@ -652,7 +658,7 @@ getVdsEventListener().processOnVmStop(_vmsMovedToDown); for (Guid vm_guid : _vmsToRemoveFromAsync) { - ResourceManager.getInstance().RemoveAsyncRunningVm(vm_guid); + getResourceManager().RemoveAsyncRunningVm(vm_guid); } } catch (IRSErrorException ex) { logFailureMessage("Could not finish afterRefreshTreatment", ex); @@ -1593,7 +1599,7 @@ // when going to suspend, delete vm from cache later if (status == VMStatus.SavingState) { - ResourceManager.getInstance().InternalSetVmStatus(vmTo, VMStatus.Suspended); + getResourceManager().InternalSetVmStatus(vmTo, VMStatus.Suspended); } clearVm(vmTo, vmInternalData.getVmDynamic().getExitStatus(), vmInternalData.getVmDynamic() @@ -1628,7 +1634,7 @@ if (exitStatus != VmExitStatus.Normal) { // Vm failed to run - try to rerun it on other Vds if (cacheVm != null) { - if (ResourceManager.getInstance().IsVmInAsyncRunningList(vmDynamic.getId())) { + if (getResourceManager().IsVmInAsyncRunningList(vmDynamic.getId())) { log.infoFormat("Running on vds during rerun failed vm: {0}", vmDynamic.getRunOnVds()); _vmsToRerun.add(vmDynamic.getId()); } else if (cacheVm.isAutoStartup()) { @@ -1637,12 +1643,12 @@ } // if failed in destination right after migration else { // => cacheVm == null - ResourceManager.getInstance().RemoveAsyncRunningVm(vmDynamic.getId()); + getResourceManager().RemoveAsyncRunningVm(vmDynamic.getId()); addVmDynamicToList(vmDynamic); } } else { // Vm moved safely to down status. May be migration - just remove it from Async Running command. - ResourceManager.getInstance().RemoveAsyncRunningVm(vmDynamic.getId()); + getResourceManager().RemoveAsyncRunningVm(vmDynamic.getId()); } } @@ -1664,7 +1670,7 @@ AuditLogableBase logable = new AuditLogableBase(_vds.getId(), vm.getId()); auditLog(logable, type); - ResourceManager.getInstance().RemoveAsyncRunningVm(vm.getId()); + getResourceManager().RemoveAsyncRunningVm(vm.getId()); } private void proceedVmBeforeDeletion(VM curVm, VmDynamic vmDynamic) { @@ -1693,7 +1699,7 @@ } } // set vm status to down if source vm crushed - ResourceManager.getInstance().InternalSetVmStatus(curVm, + getResourceManager().InternalSetVmStatus(curVm, VMStatus.Down, vmDynamic.getExitStatus(), vmDynamic.getExitMessage(), @@ -1704,7 +1710,7 @@ type = AuditLogType.VM_MIGRATION_ABORT; logable.addCustomValue("MigrationError", vmDynamic.getExitMessage()); - ResourceManager.getInstance().RemoveAsyncRunningVm(vmDynamic.getId()); + getResourceManager().RemoveAsyncRunningVm(vmDynamic.getId()); } break; } @@ -1843,7 +1849,7 @@ if (_vmDict.containsKey(runningVm.getId())) { staleRunningVms.add(runningVm.getId()); if (!_vdsManager.isInitialized()) { - ResourceManager.getInstance().RemoveVmFromDownVms(_vds.getId(), runningVm.getId()); + getResourceManager().RemoveVmFromDownVms(_vds.getId(), runningVm.getId()); } } } @@ -1920,7 +1926,7 @@ Guid vmGuid = vmToRemove.getId(); if (!migrating && !_vmsToRerun.contains(vmGuid) - && ResourceManager.getInstance().IsVmInAsyncRunningList(vmGuid)) { + && getResourceManager().IsVmInAsyncRunningList(vmGuid)) { _vmsToRerun.add(vmGuid); log.infoFormat("add VM {0} to rerun treatment", vmToRemove.getName()); } @@ -1957,7 +1963,7 @@ newVmStatus); // if the DST host goes unresponsive it will take care all MigratingTo and unknown VMs - ResourceManager.getInstance().InternalSetVmStatus(vmToRemove, newVmStatus); + getResourceManager().InternalSetVmStatus(vmToRemove, newVmStatus); // save the VM state addVmDynamicToList(vmToRemove.getDynamicData()); @@ -2271,12 +2277,12 @@ // the exit status and message were set, and we don't want to override them here. // we will add it to _vmDynamicToSave though because it might been removed from it in #updateRepository if (vm.getStatus() != VMStatus.Suspended && vm.getStatus() != VMStatus.Down) { - ResourceManager.getInstance().InternalSetVmStatus(vm, VMStatus.Down, exitStatus, exitMessage, exitReason); + getResourceManager().InternalSetVmStatus(vm, VMStatus.Down, exitStatus, exitMessage, exitReason); } addVmDynamicToList(vm.getDynamicData()); addVmStatisticsToList(vm.getStatisticsData()); addVmInterfaceStatisticsToList(vm.getInterfaces()); - if (!ResourceManager.getInstance().IsVmInAsyncRunningList(vm.getId())) { + if (!getResourceManager().IsVmInAsyncRunningList(vm.getId())) { _vmsMovedToDown.add(vm.getId()); } } @@ -2333,6 +2339,6 @@ } protected ResourceManager getResourceManager() { - return ResourceManager.getInstance(); + return resourceManager; } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VirtMonitoringStrategy.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VirtMonitoringStrategy.java index c2e9529..0f68f39 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VirtMonitoringStrategy.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VirtMonitoringStrategy.java @@ -17,6 +17,7 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.VdsGroupDAO; +import org.ovirt.engine.core.di.Injector; /** * This class defines virt strategy entry points, which are needed in host monitoring phase @@ -84,15 +85,19 @@ @Override public void processHardwareCapabilities(VDS vds) { - ResourceManager.getInstance().getEventListener().processOnCpuFlagsChange(vds.getId()); + getResourceManager().getEventListener().processOnCpuFlagsChange(vds.getId()); } protected void vdsNonOperational(VDS vds, NonOperationalReason reason, Map<String, String> customLogValues) { - ResourceManager.getInstance() + getResourceManager() .getEventListener() .vdsNonOperational(vds.getId(), reason, true, Guid.Empty, customLogValues); } + private ResourceManager getResourceManager() { + return Injector.get(ResourceManager.class); + } + @Override public boolean processHardwareCapabilitiesNeeded(VDS oldVds, VDS newVds) { return !StringUtils.equals(oldVds.getCpuFlags(), newVds.getCpuFlags()); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetIsoListVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetIsoListVDSCommand.java index 654c5c6..0304faa 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetIsoListVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetIsoListVDSCommand.java @@ -1,23 +1,27 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.HSMGetIsoListParameters; import org.ovirt.engine.core.common.vdscommands.IrsBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class GetIsoListVDSCommand<P extends IrsBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public GetIsoListVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { - setReturnValue(ResourceManager - .getInstance() - .runVdsCommand( - VDSCommandType.HsmGetIsoList, - new HSMGetIsoListParameters(getCurrentIrsProxyData().getCurrentVdsId(), - getParameters().getStoragePoolId())) + setReturnValue(resourceManager.runVdsCommand( + VDSCommandType.HsmGetIsoList, + new HSMGetIsoListParameters(getCurrentIrsProxyData().getCurrentVdsId(), + getParameters().getStoragePoolId())) .getReturnValue()); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/HttpImageTaskVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/HttpImageTaskVDSCommand.java index b1606b1..8cf543c 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/HttpImageTaskVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/HttpImageTaskVDSCommand.java @@ -8,6 +8,8 @@ import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethodBase; @@ -31,6 +33,10 @@ import org.ovirt.engine.core.vdsbroker.xmlrpc.XmlRpcUtils; public abstract class HttpImageTaskVDSCommand<T extends HttpMethodBase, P extends ImageHttpAccessVDSCommandParameters> extends VdsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + private T method; public HttpImageTaskVDSCommand(P parameters) { @@ -63,7 +69,7 @@ protected void executeHttpMethod(final T method) { int responseCode = -1; - VdsManager manager = ResourceManager.getInstance().GetVdsManager(getParameters().getVdsId()); + VdsManager manager = resourceManager.GetVdsManager(getParameters().getVdsId()); final HttpClient httpclient = manager.getVdsProxy().getHttpClient(); try { FutureTask<Integer> futureTask = new FutureTask(new Callable<Integer>() { diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java index 286ca3b..e111a1e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java @@ -9,6 +9,8 @@ import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; +import javax.inject.Inject; + import org.apache.commons.lang.exception.ExceptionUtils; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainType; @@ -44,6 +46,9 @@ public abstract class IrsBrokerCommand<P extends IrsBaseVDSCommandParameters> extends BrokerCommandBase<P> { private static Map<Guid, IrsProxyData> _irsProxyData = new ConcurrentHashMap<Guid, IrsProxyData>(); static final VDSStatus reportingVdsStatus = VDSStatus.Up; + + @Inject + private ResourceManager resourceManager; /** * process received domain monitoring information from a given vds if necessary (according to it's status @@ -262,7 +267,7 @@ new Callable<EventResult>() { @Override public EventResult call() { - return ResourceManager.getInstance() + return resourceManager .getEventListener().masterDomainNotOperational( masterDomainId, getParameters().getStoragePoolId(), true, getVDSReturnValue().getVdsError() != null diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsProxyData.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsProxyData.java index 8e47199..e20623f 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsProxyData.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsProxyData.java @@ -62,6 +62,7 @@ import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.ejb.BeanProxyType; import org.ovirt.engine.core.utils.ejb.BeanType; import org.ovirt.engine.core.utils.ejb.EjbUtils; @@ -218,7 +219,7 @@ VDSReturnValue result = null; Guid curVdsId = mCurrentVdsId; if (curVdsId != null) { - result = ResourceManager.getInstance().runVdsCommand(VDSCommandType.SpmStatus, + result = getResourceManager().runVdsCommand(VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(curVdsId, _storagePoolId)); } @@ -229,15 +230,13 @@ if (storagePool.getStatus() != StoragePoolStatus.NonResponsive && storagePool.getStatus() != StoragePoolStatus.NotOperational) { if (result != null && result.getVdsError() != null) { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChange(_storagePoolId, StoragePoolStatus.NonResponsive, AuditLogType.SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_WITH_ERROR, result.getVdsError().getCode()); } else { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChange(_storagePoolId, StoragePoolStatus.NonResponsive, AuditLogType.SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC, @@ -250,8 +249,7 @@ // then cause failover with attempts if (result != null && !(result.getExceptionObject() instanceof VDSNetworkException)) { HashMap<Guid, AsyncTaskStatus> tasksList = - (HashMap<Guid, AsyncTaskStatus>) ResourceManager - .getInstance() + (HashMap<Guid, AsyncTaskStatus>) getResourceManager() .runVdsCommand(VDSCommandType.HSMGetAllTasksStatuses, new VdsIdVDSCommandParametersBase(curVdsId)).getReturnValue(); boolean allTasksFinished = true; @@ -282,7 +280,7 @@ // if recovered from network exception set back to up DbFacade.getInstance().getStoragePoolDao().updateStatus(storagePool.getId(), StoragePoolStatus.Up); storagePool.setStatus(StoragePoolStatus.Up); - ResourceManager.getInstance().getEventListener() + getResourceManager().getEventListener() .storagePoolStatusChanged(storagePool.getId(), storagePool.getStatus()); } List<StorageDomain> domainsInDb = DbFacade.getInstance().getStorageDomainDao() @@ -290,7 +288,7 @@ GetStoragePoolInfoVDSCommandParameters tempVar = new GetStoragePoolInfoVDSCommandParameters( _storagePoolId); tempVar.setIgnoreFailoverLimit(true); - VDSReturnValue storagePoolInfoResult = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue storagePoolInfoResult = getResourceManager().runVdsCommand( VDSCommandType.GetStoragePoolInfo, tempVar); if (storagePoolInfoResult.getSucceeded()) { KeyValuePairCompat<StoragePool, List<StorageDomain>> data = @@ -402,7 +400,7 @@ if (pool != null) { DbFacade.getInstance().getStoragePoolDao().updateStatus(pool.getId(), StoragePoolStatus.Maintenance); pool.setStatus(StoragePoolStatus.Maintenance); - ResourceManager.getInstance().getEventListener() + getResourceManager().getEventListener() .storagePoolStatusChanged(pool.getId(), StoragePoolStatus.Maintenance); } } @@ -410,7 +408,7 @@ // For block domains, synchronize LUN details comprising the storage domain with the DB if (statusChanged && data.getStatus() == StorageDomainStatus.Active && storage_domain.getStorageType().isBlockDomain()) { - ResourceManager.getInstance().getEventListener().syncLunsInfoForBlockStorageDomain( + getResourceManager().getEventListener().syncLunsInfoForBlockStorageDomain( data.getId(), getCurrentVdsId()); } @@ -505,7 +503,7 @@ logable.setStorageDomainId(masterDomainId); AuditLogDirector.log(logable, AuditLogType.SYSTEM_MASTER_DOMAIN_NOT_IN_SYNC); - return ResourceManager.getInstance() + return getResourceManager() .getEventListener() .masterDomainNotOperational(masterDomainId, storagePoolId, false, true); @@ -531,14 +529,13 @@ boolean performFailover = false; if (vdsId != null) { try { - VDSReturnValue statusResult = ResourceManager.getInstance().runVdsCommand(VDSCommandType.SpmStatus, + VDSReturnValue statusResult = getResourceManager().runVdsCommand(VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(vdsId, _storagePoolId)); if (statusResult != null && statusResult.getSucceeded() && (((SpmStatusResult) statusResult.getReturnValue()).getSpmStatus() == SpmStatus.SPM || ((SpmStatusResult) statusResult .getReturnValue()).getSpmStatus() == SpmStatus.Contend)) { - performFailover = ResourceManager - .getInstance() + performFailover = getResourceManager() .runVdsCommand(VDSCommandType.SpmStop, new SpmStopVDSCommandParameters(vdsId, _storagePoolId)).getSucceeded(); } else { @@ -561,6 +558,10 @@ log.errorFormat("IRS failover failed - cant allocate vds server"); return false; } + } + + private ResourceManager getResourceManager() { + return Injector.get(ResourceManager.class); } public IIrsServer getIrsProxy() { @@ -597,7 +598,7 @@ public void run() { try { if (DbFacade.getInstance().isStoragePoolMasterUp(_storagePoolId)) { - ResourceManager.getInstance() + getResourceManager() .getEventListener() .storagePoolUpEvent(storagePool); } @@ -636,8 +637,7 @@ StoragePoolStatus prevStatus = storagePool.getStatus(); if (prevStatus != StoragePoolStatus.NonResponsive) { try { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChange(_storagePoolId, StoragePoolStatus.NonResponsive, AuditLogType.SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_SEARCHING_NEW_SPM, @@ -665,7 +665,7 @@ Integer selectedVdsSpmId = selectedVds.getVdsSpmId(); mTriedVdssList.add(selectedVdsId); - VDSReturnValue returnValueFromVds = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue returnValueFromVds = getResourceManager().runVdsCommand( VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(selectedVds.getId(), _storagePoolId)); spmStatus = (SpmStatusResult) returnValueFromVds.getReturnValue(); @@ -679,7 +679,7 @@ .getMasterStorageDomainIdForPool(_storagePoolId); List<StoragePoolIsoMap> storagePoolIsoMap = DbFacade.getInstance() .getStoragePoolIsoMapDao().getAllForStoragePool(_storagePoolId); - VDSReturnValue connectResult = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue connectResult = getResourceManager().runVdsCommand( VDSCommandType.ConnectStoragePool, new ConnectStoragePoolVDSCommandParameters(selectedVds, storagePool, masterDomainId, storagePoolIsoMap)); @@ -693,8 +693,7 @@ } performedPoolConnect = true; // refresh spmStatus result - spmStatus = (SpmStatusResult) ResourceManager - .getInstance() + spmStatus = (SpmStatusResult) getResourceManager() .runVdsCommand(VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(selectedVds.getId(), _storagePoolId)) .getReturnValue(); @@ -722,7 +721,7 @@ // if could not start spm on this host and connected to // pool here // then disconnect - ResourceManager.getInstance().runVdsCommand( + getResourceManager().runVdsCommand( VDSCommandType.DisconnectStoragePool, new DisconnectStoragePoolVDSCommandParameters(selectedVdsId, _storagePoolId, selectedVdsSpmId)); @@ -785,7 +784,7 @@ storagePool.setStatus(StoragePoolStatus.Up); } DbFacade.getInstance().getStoragePoolDao().update(storagePool); - ResourceManager.getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChanged(storagePool.getId(), storagePool.getStatus()); @@ -829,8 +828,7 @@ } private void movePoolToProblematicInDB(StoragePool storagePool) { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChange(storagePool.getId(), StoragePoolStatus.NonResponsive, AuditLogType.SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC, VdcBllErrors.ENGINE); @@ -899,8 +897,7 @@ try { if (!spmVdsId.equals(Guid.Empty)) { - SpmStatusResult destSpmStatus = (SpmStatusResult) ResourceManager - .getInstance() + SpmStatusResult destSpmStatus = (SpmStatusResult) getResourceManager() .runVdsCommand(VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(spmVdsId, _storagePoolId)) .getReturnValue(); @@ -954,7 +951,7 @@ return spmStatus; } else { // try to stop spm - VDSReturnValue spmStopReturnValue = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue spmStopReturnValue = getResourceManager().runVdsCommand( VDSCommandType.SpmStop, new SpmStopVDSCommandParameters(vdsToFenceObject.getId(), _storagePoolId)); // if spm stop succeeded no need to fence, @@ -986,16 +983,15 @@ log.infoFormat("starting spm on vds {0}, storage pool {1}, prevId {2}, LVER {3}", selectedVds.argvalue.getName(), storagePool.getName(), spmStatus.getSpmId(), spmStatus.getSpmLVER()); - spmStatus = (SpmStatusResult) ResourceManager - .getInstance() + spmStatus = + (SpmStatusResult) getResourceManager() .runVdsCommand( VDSCommandType.SpmStart, new SpmStartVDSCommandParameters(selectedVds.argvalue.getId(), _storagePoolId, spmStatus.getSpmId(), spmStatus.getSpmLVER(), storagePool .getrecovery_mode(), vdsSpmIdToFence != -1, storagePool.getStoragePoolFormatType())).getReturnValue(); if (spmStatus == null || spmStatus.getSpmStatus() != SpmStatus.SPM) { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .storagePoolStatusChange(storagePool.getId(), StoragePoolStatus.NonResponsive, @@ -1120,7 +1116,7 @@ // For block domains, synchronize LUN details comprising the storage domain with the DB StorageDomain storageDomain = DbFacade.getInstance().getStorageDomainDao().get(tempData.getDomainId()); if (storageDomain.getStorageType().isBlockDomain()) { - ResourceManager.getInstance().getEventListener().syncLunsInfoForBlockStorageDomain( + getResourceManager().getEventListener().syncLunsInfoForBlockStorageDomain( storageDomain.getId(), vdsId); } } @@ -1454,7 +1450,7 @@ @Override public Void call() { - ResourceManager.getInstance() + getResourceManager() .getEventListener().connectHostToDomainsInActiveOrUnknownStatus(vds); return null; } @@ -1558,8 +1554,7 @@ ThreadPoolUtil.execute(new Runnable() { @Override public void run() { - ResourceManager - .getInstance() + getResourceManager() .getEventListener() .vdsNonOperational(vdsId, NonOperationalReason.STORAGE_DOMAIN_UNREACHABLE, true, domainId); @@ -1591,12 +1586,12 @@ if (storageDomain.getStorageDomainType() != StorageDomainType.Master) { log.errorFormat("Domain {0} was reported by all hosts in status UP as problematic. Moving the domain to NonOperational.", domainIdTuple); - result = ResourceManager.getInstance() + result = getResourceManager() .getEventListener().storageDomainNotOperational(domainId, _storagePoolId); } else { log.warnFormat("Domain {0} was reported by all hosts in status UP as problematic. Not moving the domain to NonOperational because it is being reconstructed now.", domainIdTuple); - result = ResourceManager.getInstance() + result = getResourceManager() .getEventListener().masterDomainNotOperational(domainId, _storagePoolId, false, false); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ResetIrsVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ResetIrsVDSCommand.java index b402d3d..d86c541 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ResetIrsVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ResetIrsVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; @@ -12,6 +14,10 @@ import org.ovirt.engine.core.vdsbroker.ResourceManager; public class ResetIrsVDSCommand<P extends ResetIrsVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public ResetIrsVDSCommand(P parameters) { super(parameters); } @@ -21,10 +27,8 @@ P parameters = getParameters(); Guid vdsId = parameters.getVdsId(); if (getParameters().isVdsAlreadyRebooted() || - ResourceManager - .getInstance() - .runVdsCommand(VDSCommandType.SpmStop, - new SpmStopVDSCommandParameters(vdsId, parameters.getStoragePoolId())).getSucceeded() + resourceManager.runVdsCommand(VDSCommandType.SpmStop, + new SpmStopVDSCommandParameters(vdsId, parameters.getStoragePoolId())).getSucceeded() || parameters.getIgnoreStopFailed()) { if (getParameters().getPreferredSPMId() != null) { getCurrentIrsProxyData().setPreferredHostId(getParameters().getPreferredSPMId()); @@ -38,8 +42,7 @@ StoragePool pool = DbFacade.getInstance().getStoragePoolDao().get(parameters.getStoragePoolId()); if (pool != null && (pool.getStatus() == StoragePoolStatus.NotOperational)) { - ResourceManager - .getInstance() + resourceManager .getEventListener() .storagePoolStatusChange(parameters.getStoragePoolId(), StoragePoolStatus.NonResponsive, AuditLogType.SYSTEM_CHANGE_STORAGE_POOL_STATUS_RESET_IRS, VdcBllErrors.ENGINE); @@ -48,4 +51,5 @@ getVDSReturnValue().setSucceeded(false); } } + } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMClearTaskVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMClearTaskVDSCommand.java index dac0b1c..9eeb200 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMClearTaskVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMClearTaskVDSCommand.java @@ -1,20 +1,25 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.HSMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SPMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.vdsbroker.ResourceManager; -public class SPMClearTaskVDSCommand<P extends SPMTaskGuidBaseVDSCommandParameters> - extends IrsBrokerCommand<P> { +public class SPMClearTaskVDSCommand<P extends SPMTaskGuidBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SPMClearTaskVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { - VDSReturnValue returnValue = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue returnValue = resourceManager.runVdsCommand( VDSCommandType.HSMClearTask, new HSMTaskGuidBaseVDSCommandParameters(getCurrentIrsProxyData().getCurrentVdsId(), getParameters().getTaskId())); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksInfoVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksInfoVDSCommand.java index 1ac1b91..5d6cb85 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksInfoVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksInfoVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.IrsBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; @@ -8,6 +10,10 @@ import org.ovirt.engine.core.vdsbroker.ResourceManager; public class SPMGetAllTasksInfoVDSCommand<P extends IrsBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SPMGetAllTasksInfoVDSCommand(P parameters) { super(parameters); } @@ -18,8 +24,7 @@ "-- executeIrsBrokerCommand: Attempting on storage pool '{0}'", getParameters().getStoragePoolId()); - setReturnValue(ResourceManager - .getInstance() + setReturnValue(resourceManager .runVdsCommand(VDSCommandType.HSMGetAllTasksInfo, new VdsIdVDSCommandParametersBase(getCurrentIrsProxyData().getCurrentVdsId())) .getReturnValue()); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksStatusesVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksStatusesVDSCommand.java index 6553738..9fb2239 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksStatusesVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMGetAllTasksStatusesVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.IrsBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; @@ -9,13 +11,17 @@ @Logged(executionLevel = LogLevel.DEBUG) public class SPMGetAllTasksStatusesVDSCommand<P extends IrsBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SPMGetAllTasksStatusesVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { - setVDSReturnValue(ResourceManager.getInstance().runVdsCommand(VDSCommandType.HSMGetAllTasksStatuses, + setVDSReturnValue(resourceManager.runVdsCommand(VDSCommandType.HSMGetAllTasksStatuses, new VdsIdVDSCommandParametersBase(getCurrentIrsProxyData().getCurrentVdsId()))); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMRevertTaskVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMRevertTaskVDSCommand.java index 62ad49e..3ff3b69 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMRevertTaskVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMRevertTaskVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.HSMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SPMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; @@ -7,6 +9,10 @@ import org.ovirt.engine.core.vdsbroker.ResourceManager; public class SPMRevertTaskVDSCommand<P extends SPMTaskGuidBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SPMRevertTaskVDSCommand(P parameters) { super(parameters); } @@ -14,7 +20,7 @@ @Override protected void executeIrsBrokerCommand() { VDSReturnValue returnValue = - ResourceManager.getInstance().runVdsCommand( + resourceManager.runVdsCommand( VDSCommandType.HSMRevertTask, new HSMTaskGuidBaseVDSCommandParameters(getCurrentIrsProxyData().getCurrentVdsId(), getParameters().getTaskId())); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMStopTaskVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMStopTaskVDSCommand.java index fb8777f..0fb1980 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMStopTaskVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SPMStopTaskVDSCommand.java @@ -1,18 +1,24 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.HSMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SPMTaskGuidBaseVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class SPMStopTaskVDSCommand<P extends SPMTaskGuidBaseVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SPMStopTaskVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { - ResourceManager.getInstance().runVdsCommand( + resourceManager.runVdsCommand( VDSCommandType.HSMStopTask, new HSMTaskGuidBaseVDSCommandParameters(getCurrentIrsProxyData().getCurrentVdsId(), getParameters().getTaskId())); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SpmStopOnIrsVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SpmStopOnIrsVDSCommand.java index 98fab70..69e34f9 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SpmStopOnIrsVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SpmStopOnIrsVDSCommand.java @@ -1,17 +1,23 @@ package org.ovirt.engine.core.vdsbroker.irsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.ResetIrsVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class SpmStopOnIrsVDSCommand<P extends SpmStopOnIrsVDSCommandParameters> extends IrsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SpmStopOnIrsVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { - getVDSReturnValue().setSucceeded(ResourceManager.getInstance() + getVDSReturnValue().setSucceeded(resourceManager .runVdsCommand( VDSCommandType.ResetIrs, new ResetIrsVDSCommandParameters(getParameters().getStoragePoolId(), diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/storage/StoragePoolDomainHelper.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/storage/StoragePoolDomainHelper.java index cd80f22..8268982 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/storage/StoragePoolDomainHelper.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/storage/StoragePoolDomainHelper.java @@ -19,6 +19,7 @@ import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; import org.ovirt.engine.core.vdsbroker.ResourceManager; @@ -59,7 +60,7 @@ */ public static boolean refreshHostPoolMetadata(VDS vds, StoragePool storagePool, Guid masterDomainId, List<StoragePoolIsoMap> storagePoolIsoMaps) { try { - ResourceManager.getInstance().runVdsCommand( + getResourceManager().runVdsCommand( VDSCommandType.ConnectStoragePool, new ConnectStoragePoolVDSCommandParameters(vds, storagePool, @@ -76,7 +77,7 @@ error = null; try { - VDSReturnValue vdsReturnValue = ResourceManager.getInstance().runVdsCommand( + VDSReturnValue vdsReturnValue = getResourceManager().runVdsCommand( VDSCommandType.ConnectStoragePool, new ConnectStoragePoolVDSCommandParameters(vds, storagePool, @@ -99,6 +100,10 @@ return true; } + private static ResourceManager getResourceManager() { + return Injector.get(ResourceManager.class); + } + public static void updateApplicablePoolDomainsStatuses(Guid storagePoolId, Set<StorageDomainStatus> applicableStatusesForUpdate, StorageDomainStatus newStatus, String reason) { diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CancelMigrateVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CancelMigrateVDSCommand.java index 00bc075..e6e1d14 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CancelMigrateVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CancelMigrateVDSCommand.java @@ -1,11 +1,17 @@ package org.ovirt.engine.core.vdsbroker.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.errors.VDSError; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.vdsbroker.ResourceManager; public class CancelMigrateVDSCommand<P extends CancelMigrationVDSParameters> extends VdsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public CancelMigrateVDSCommand(P parameters) { super(parameters); } @@ -16,7 +22,7 @@ status = getBroker().migrateCancel(vmId.toString()); proceedProxyReturnValue(); if (!getParameters().isRerunAfterCancel()) { - ResourceManager.getInstance().RemoveAsyncRunningVm(vmId); + resourceManager.RemoveAsyncRunningVm(vmId); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java index fa7dfb5..b3bcf02 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.vdscommands.CollectHostNetworkDataVdsCommandParameters; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.transaction.TransactionMethod; @@ -7,11 +9,11 @@ public class CollectVdsNetworkDataVDSCommand extends GetCapabilitiesVDSCommand<CollectHostNetworkDataVdsCommandParameters> { - private final HostNetworkTopologyPersister hostNetworkTopologyPersister; + @Inject + private HostNetworkTopologyPersister hostNetworkTopologyPersister; public CollectVdsNetworkDataVDSCommand(CollectHostNetworkDataVdsCommandParameters parameters) { super(parameters); - hostNetworkTopologyPersister = HostNetworkTopologyPersisterImpl.getInstance(); } @Override diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkInterfacesPersisterImpl.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkInterfacesPersisterImpl.java index c8e3d8b..9dbd70e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkInterfacesPersisterImpl.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkInterfacesPersisterImpl.java @@ -9,19 +9,20 @@ import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.dao.network.InterfaceDao; -public class HostNetworkInterfacesPersisterImpl implements HostNetworkInterfacesPersister { +final class HostNetworkInterfacesPersisterImpl implements HostNetworkInterfacesPersister { private final InterfaceDao interfaceDao; private final List<VdsNetworkInterface> reportedNics; private final Map<String, VdsNetworkInterface> reportedNicsByNames; private final List<VdsNetworkInterface> dbNics; - private List<VdsNetworkInterface> nicsForUpdate; private final Map<String, VdsNetworkInterface> userConfiguredNicsByName; - public HostNetworkInterfacesPersisterImpl(InterfaceDao interfaceDao, - List<VdsNetworkInterface> reportedNics, - List<VdsNetworkInterface> dbNics, - List<VdsNetworkInterface> userConfiguredNics) { + private List<VdsNetworkInterface> nicsForUpdate; + + HostNetworkInterfacesPersisterImpl(InterfaceDao interfaceDao, + List<VdsNetworkInterface> reportedNics, + List<VdsNetworkInterface> dbNics, + List<VdsNetworkInterface> userConfiguredNics) { this.interfaceDao = interfaceDao; this.reportedNics = reportedNics; this.reportedNicsByNames = Entities.entitiesByName(reportedNics); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java index 81338df..e7821da 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HostNetworkTopologyPersisterImpl.java @@ -10,7 +10,11 @@ import java.util.List; import java.util.Map; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.Validate; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.Entities; import org.ovirt.engine.core.common.businessentities.NonOperationalReason; @@ -20,9 +24,11 @@ import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface.NetworkImplementationDetails; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.dao.VmDynamicDAO; +import org.ovirt.engine.core.dao.network.InterfaceDao; +import org.ovirt.engine.core.dao.network.NetworkDao; import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.utils.NetworkUtils; import org.ovirt.engine.core.utils.linq.LinqUtils; @@ -30,17 +36,32 @@ import org.ovirt.engine.core.vdsbroker.vdsbroker.predicates.DisplayInterfaceEqualityPredicate; import org.ovirt.engine.core.vdsbroker.vdsbroker.predicates.IsNetworkOnInterfacePredicate; -public final class HostNetworkTopologyPersisterImpl implements HostNetworkTopologyPersister { +@Singleton +final class HostNetworkTopologyPersisterImpl implements HostNetworkTopologyPersister { - private static final HostNetworkTopologyPersister instance = new HostNetworkTopologyPersisterImpl(); + private final VmDynamicDAO vmDynamicDao; + private final InterfaceDao interfaceDao; + private final NetworkDao networkDao; + private final NetworkQoSDao networkQoSDao; + private final ResourceManager resourceManager; - // TODO: replace with CDI + make the class package protected - public static HostNetworkTopologyPersister getInstance() { - return instance; - } + @Inject + HostNetworkTopologyPersisterImpl(VmDynamicDAO vmDynamicDao, + InterfaceDao interfaceDao, + NetworkDao networkDao, + NetworkQoSDao networkQoSDao, + ResourceManager resourceManager) { + Validate.notNull(networkDao, "networkDao can not be null"); + Validate.notNull(interfaceDao, "interfaceDao can not be null"); + Validate.notNull(vmDynamicDao, "vmDynamicDao can not be null"); + Validate.notNull(networkQoSDao, "networkQoSDao can not be null"); + Validate.notNull(resourceManager, "resourceManager can not be null"); - // Don't new me - use getInstance method - private HostNetworkTopologyPersisterImpl() { + this.vmDynamicDao = vmDynamicDao; + this.interfaceDao = interfaceDao; + this.networkDao = networkDao; + this.networkQoSDao = networkQoSDao; + this.resourceManager = resourceManager; } @Override @@ -48,8 +69,9 @@ boolean skipManagementNetwork, List<VdsNetworkInterface> userConfiguredNics) { List<VdsNetworkInterface> dbIfaces = - DbFacade.getInstance().getInterfaceDao().getAllInterfacesForVds(host.getId()); + interfaceDao.getAllInterfacesForVds(host.getId()); persistTopology(host.getInterfaces(), dbIfaces, userConfiguredNics); + return enforceNetworkCompliance(host, skipManagementNetwork, dbIfaces); } @@ -58,7 +80,7 @@ List<VdsNetworkInterface> dbIfaces) { if (host.getStatus() != VDSStatus.Maintenance) { - List<Network> clusterNetworks = DbFacade.getInstance().getNetworkDao() + List<Network> clusterNetworks = networkDao .getAllForCluster(host.getVdsGroupId()); if (skipManagementNetwork) { skipManagementNetworkCheck(host.getInterfaces(), clusterNetworks); @@ -147,7 +169,7 @@ } private boolean isVmRunningOnHost(Guid hostId) { - return !DbFacade.getInstance().getVmDynamicDao().getAllRunningForVds(hostId).isEmpty(); + return !vmDynamicDao.getAllRunningForVds(hostId).isEmpty(); } private Collection<Network> findNetworksOnInterfaces(Collection<VdsNetworkInterface> ifaces, @@ -179,14 +201,12 @@ private void logUnsynchronizedNetworks(VDS host, Map<String, Network> networks) { List<String> networkNames = new ArrayList<>(); - NetworkQoSDao qosDao = DbFacade.getInstance().getNetworkQosDao(); for (VdsNetworkInterface iface : host.getInterfaces()) { Network network = networks.get(iface.getNetworkName()); NetworkImplementationDetails networkImplementationDetails = NetworkUtils.calculateNetworkImplementationDetails(network, - network == null ? null : qosDao.get(network.getQosId()), - iface); + network == null ? null : networkQoSDao.get(network.getQosId()), iface); if (networkImplementationDetails != null && !networkImplementationDetails.isInSync() @@ -218,14 +238,11 @@ * network interfaces that should preserve their configuration */ private void persistTopology(List<VdsNetworkInterface> reportedNics, - List<VdsNetworkInterface> dbNics, - List<VdsNetworkInterface> userConfiguredNics) { + List<VdsNetworkInterface> dbNics, + List<VdsNetworkInterface> userConfiguredNics) { final HostNetworkInterfacesPersister networkInterfacesPersister = - new HostNetworkInterfacesPersisterImpl(DbFacade.getInstance().getInterfaceDao(), - reportedNics, - dbNics, - userConfiguredNics); + new HostNetworkInterfacesPersisterImpl(interfaceDao, reportedNics, dbNics, userConfiguredNics); networkInterfacesPersister.persistTopology(); } @@ -261,8 +278,6 @@ } private void setNonOperational(VDS host, NonOperationalReason reason, Map<String, String> customLogValues) { - ResourceManager.getInstance() - .getEventListener() - .vdsNonOperational(host.getId(), reason, true, Guid.Empty, customLogValues); + resourceManager.getEventListener().vdsNonOperational(host.getId(), reason, true, Guid.Empty, customLogValues); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStartVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStartVDSCommand.java index 8aab174..d264ea0 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStartVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStartVDSCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.vdsbroker; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.businessentities.SpmStatusResult; @@ -15,6 +17,10 @@ import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; public class SpmStartVDSCommand<P extends SpmStartVDSCommandParameters> extends VdsBrokerCommand<P> { + + @Inject + private ResourceManager resourceManager; + public SpmStartVDSCommand(P parameters) { super(parameters); vdsId = parameters.getVdsId(); @@ -38,8 +44,7 @@ do { // TODO: make configurable ThreadUtils.sleep(1000); - taskStatus = (AsyncTaskStatus) ResourceManager - .getInstance() + taskStatus = (AsyncTaskStatus) resourceManager .runVdsCommand(VDSCommandType.HSMGetTaskStatus, new HSMTaskGuidBaseVDSCommandParameters(vdsId, taskId)).getReturnValue(); log.debugFormat("spmStart polling - task status: {0}", taskStatus.getStatus().toString()); @@ -52,8 +57,7 @@ log.errorFormat("Start SPM Task failed - result: {0}, message: {1}", taskStatus.getResult().toString(), taskStatus.getMessage()); } - SpmStatusResult spmStatus = (SpmStatusResult) ResourceManager - .getInstance() + SpmStatusResult spmStatus = (SpmStatusResult) resourceManager .runVdsCommand(VDSCommandType.SpmStatus, new SpmStatusVDSCommandParameters(vdsId, getParameters().getStoragePoolId())) .getReturnValue(); @@ -63,7 +67,7 @@ log.errorFormat("spmStart polling ended, failed to get the spm status"); } try { - ResourceManager.getInstance().runVdsCommand(VDSCommandType.HSMClearTask, + resourceManager.runVdsCommand(VDSCommandType.HSMClearTask, new HSMTaskGuidBaseVDSCommandParameters(vdsId, taskId)); } catch (Exception e) { log.errorFormat("Could not clear spmStart task (id - {0}), continuing with SPM selection.", taskId); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStopVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStopVDSCommand.java index 0e0486c..2eb5722 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStopVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SpmStopVDSCommand.java @@ -4,6 +4,8 @@ import java.util.HashMap; import java.util.Map; +import javax.inject.Inject; + import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.errors.VDSError; @@ -23,6 +25,9 @@ public class SpmStopVDSCommand<P extends SpmStopVDSCommandParameters> extends VdsBrokerCommand<P> { private EngineLock lock; + + @Inject + private ResourceManager resourceManager; public SpmStopVDSCommand(P parameters) { super(parameters, DbFacade.getInstance().getVdsDao().get(parameters.getVdsId())); @@ -51,8 +56,7 @@ boolean performSpmStop = true; try { - VDSReturnValue vdsReturnValue = ResourceManager - .getInstance() + VDSReturnValue vdsReturnValue = resourceManager .runVdsCommand(VDSCommandType.HSMGetAllTasksStatuses, new VdsIdVDSCommandParametersBase(getVds().getId())); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java index 11f30ad..1198233 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java @@ -1,5 +1,7 @@ package org.ovirt.engine.core.vdsbroker.vdsbroker; +import javax.inject.Inject; + import org.apache.commons.lang.exception.ExceptionUtils; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VdsStatic; @@ -17,6 +19,10 @@ private final IVdsServer mVdsBroker; private VdsStatic vdsStatic; private VDS vds; + + @Inject + private ResourceManager resourceManager; + /** * Construct the command using the parameters and the {@link VDS} which is loaded from the DB. * @@ -44,7 +50,7 @@ } protected IVdsServer initializeVdsBroker(Guid vdsId) { - VdsManager vdsmanager = ResourceManager.getInstance().GetVdsManager(vdsId); + VdsManager vdsmanager = resourceManager.GetVdsManager(vdsId); if (vdsmanager == null) { throw new VdcBLLException(VdcBllErrors.RESOURCE_MANAGER_VDS_NOT_FOUND, String.format("Vds with id: %1$s was not found", vdsId)); diff --git a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfoTest.java b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfoTest.java index 3ed4d4d..cedb72d 100644 --- a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfoTest.java +++ b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfoTest.java @@ -124,7 +124,7 @@ initConditions(); when(vdsManager.getRefreshStatistics()).thenReturn(false); updater = Mockito.spy( - new VdsUpdateRunTimeInfo(vdsManager, vds, mock(MonitoringStrategy.class)) { + new VdsUpdateRunTimeInfo(resourceManager, vdsManager, vds, mock(MonitoringStrategy.class)) { @Override public DbFacade getDbFacade() { -- To view, visit http://gerrit.ovirt.org/34187 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5984b8fea6a6f3c76581f4f07eb0aa5abf83cfa0 Gerrit-PatchSet: 14 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <yzasp...@redhat.com> Gerrit-Reviewer: Alona Kaplan <alkap...@redhat.com> Gerrit-Reviewer: Roy Golan <rgo...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches