Liron Ar has uploaded a new change for review. Change subject: core: InitVdsOnUp - proceed regardless of problematic iso/export domain ......................................................................
core: InitVdsOnUp - proceed regardless of problematic iso/export domain Prior to this patch, when host reported iso/export domain as problematic during the InitVdsOnUp flow it didn't move to status UP. As currently when ISO/Export domains are reported as problematic by some of the hosts those hosts remain UP and doesn't move to NonOperational, the behaviour between those two flows should be unified - therefore it was decided that when hosts reports iso/export domain as in problem it won't stop it from moving to UP. Change-Id: I32372aa80d7193a814f2500231d4545d2b1a5fc3 Bug-Url: https://bugzilla.redhat.com/967604 Signed-off-by: Liron Aravot <lara...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java 6 files changed, 26 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/17986/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java index 4cdcf28..94e2e47 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java @@ -48,11 +48,10 @@ import org.ovirt.engine.core.common.validation.group.ImportEntity; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.StorageDomainStaticDAO; -import org.ovirt.engine.core.utils.transaction.TransactionMethod; -import org.ovirt.engine.core.utils.transaction.TransactionSupport; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.utils.transaction.TransactionMethod; +import org.ovirt.engine.core.utils.transaction.TransactionSupport; @DisableInPrepareMode @NonTransactiveCommandAttribute(forceCompensation = true) @@ -230,11 +229,6 @@ } return true; - } - - @Override - protected StorageDomainStaticDAO getStorageDomainStaticDAO() { - return DbFacade.getInstance().getStorageDomainStaticDao(); } /** diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java index 022d7d7..3265bc3 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java @@ -21,6 +21,7 @@ import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue; import org.ovirt.engine.core.common.businessentities.NonOperationalReason; import org.ovirt.engine.core.common.businessentities.StorageDomain; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StoragePool; @@ -266,12 +267,17 @@ boolean returnValue = true; try { runVdsCommand(VDSCommandType.GetStats, new VdsIdAndVdsVDSCommandParametersBase(getVds())); - if (IrsBrokerCommand.isDomainsReportedAsProblematic(getVds().getStoragePoolId(), getVds().getDomains())) { - log.errorFormat("One of the Storage Domains of host {0} in pool {1} is problematic", + List<Guid> problematicDomainsIds = IrsBrokerCommand.checkIfDomainsReportedAsProblematic(getVds().getStoragePoolId(), getVds().getDomains()); + for (Guid domainId : problematicDomainsIds) { + StorageDomainStatic domainInfo = getStorageDomainStaticDAO().get(domainId); + log.errorFormat("Storage Domain {0} of pool {1} is in problem in host {1}", + domainInfo != null ? domainInfo.getStorageName() : domainId, getVds().getName(), getStoragePool() .getName()); - returnValue = false; + if (domainInfo == null || domainInfo.getStorageDomainType().isDataDomain()) { + returnValue = false; + } } } catch (VdcBLLException e) { log.errorFormat("Could not get Host statistics for Host {0}, Error is {1}", diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java index 746d63c..216e9d7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java @@ -33,7 +33,6 @@ import org.ovirt.engine.core.dao.ImageStorageDomainMapDao; import org.ovirt.engine.core.dao.LunDAO; import org.ovirt.engine.core.dao.SnapshotDao; -import org.ovirt.engine.core.dao.StorageDomainStaticDAO; import org.ovirt.engine.core.dao.StoragePoolIsoMapDAO; import org.ovirt.engine.core.dao.StorageServerConnectionDAO; import org.ovirt.engine.core.utils.linq.LinqUtils; @@ -363,10 +362,6 @@ protected ImageStorageDomainMapDao getImageStorageDomainMapDao() { return getDbFacade().getImageStorageDomainMapDao(); - } - - protected StorageDomainStaticDAO getStorageDomainStaticDAO() { - return getDbFacade().getStorageDomainStaticDao(); } protected StorageServerConnectionDAO getStorageServerConnectionDAO() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java index 5ba7ba5..9c1b812 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java @@ -251,10 +251,6 @@ return Backend.getInstance().getResourceManager(); } - protected StorageDomainStaticDAO getStorageDomainStaticDAO() { - return DbFacade.getInstance().getStorageDomainStaticDao(); - } - /** * Copy properties from old entity which assumed not to be available in the param object. * diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index 10c060a..46829ab 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -29,6 +29,7 @@ import org.ovirt.engine.core.dao.RoleDAO; import org.ovirt.engine.core.dao.RoleGroupMapDAO; import org.ovirt.engine.core.dao.StorageDomainDAO; +import org.ovirt.engine.core.dao.StorageDomainStaticDAO; import org.ovirt.engine.core.dao.StoragePoolDAO; import org.ovirt.engine.core.dao.VdsDAO; import org.ovirt.engine.core.dao.VdsGroupDAO; @@ -551,6 +552,10 @@ return getDbFacade().getStorageDomainDao(); } + public StorageDomainStaticDAO getStorageDomainStaticDAO() { + return getDbFacade().getStorageDomainStaticDao(); + } + public StoragePoolDAO getStoragePoolDAO() { return getDbFacade().getStoragePoolDao(); } 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 b7fe7c4..9eb5a1b 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 @@ -5,9 +5,11 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -94,12 +96,12 @@ } } - public static boolean isDomainsReportedAsProblematic(Guid storagePoolId, List<VDSDomainsData> vdsDomainsData) { + public static List<Guid> checkIfDomainsReportedAsProblematic(Guid storagePoolId, List<VDSDomainsData> vdsDomainsData) { IrsProxyData proxy = _irsProxyData.get(storagePoolId); if (proxy != null) { - return proxy.isDomainsReportedAsProblematic(vdsDomainsData); + return proxy.checkIfDomainsReportedAsProblematic(vdsDomainsData); } - return false; + return Collections.emptyList(); } @Override @@ -1126,7 +1128,8 @@ AuditLogType.VDS_DOMAIN_DELAY_INTERVAL); } - public boolean isDomainsReportedAsProblematic(List<VDSDomainsData> vdsDomainsData) { + public List<Guid> checkIfDomainsReportedAsProblematic(List<VDSDomainsData> vdsDomainsData) { + List<Guid> domainsInProblem = new LinkedList<>(); Set<Guid> domainsInPool = new HashSet<Guid>( DbFacade.getInstance().getStorageDomainStaticDao().getAllIds( _storagePoolId, StorageDomainStatus.Active)); @@ -1136,7 +1139,7 @@ for (VDSDomainsData vdsDomainData : vdsDomainsData) { if (domainsInPool.contains(vdsDomainData.getDomainId())) { if (isDomainReportedAsProblematic(vdsDomainData, true)) { - return true; + domainsInProblem.add(vdsDomainData.getDomainId()); } domainWhicWereSeen.add(vdsDomainData.getDomainId()); } @@ -1146,9 +1149,9 @@ for (Guid domainId : domainsInPool) { log.errorFormat("Domain {0} is not seen by Host", domainId); } - return true; + domainsInProblem.addAll(domainsInPool); } - return false; + return domainsInProblem; } private boolean isDomainReportedAsProblematic(VDSDomainsData tempData, boolean isLog) { -- To view, visit http://gerrit.ovirt.org/17986 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I32372aa80d7193a814f2500231d4545d2b1a5fc3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liron Ar <lara...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches