Moti Asayag has uploaded a new change for review. Change subject: engine: Allow skipping management network validation [WIP] ......................................................................
engine: Allow skipping management network validation [WIP] The management network validation is skipped when refresh capabilities is being executed as part of the host activation flow. In this flow there is a change the host wasn't configured to have the management network, therefore management network is removed from the network validation and it be performed as part of the setup network sequence in which the management network will be created on the host. Change-Id: Idf4bf4affcd901b23e2d4d55ba85763928180fcd Signed-off-by: Moti Asayag <[email protected]> --- 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/vdsbroker/CollectVdsNetworkDataVDSCommand.java 3 files changed, 27 insertions(+), 7 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/11307/1 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 93999fa..32ed647 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 @@ -379,7 +379,7 @@ /** * refresh capabilities */ - VDSStatus newStatus = refreshCapabilities(new AtomicBoolean(), vds); + VDSStatus newStatus = refreshCapabilities(new AtomicBoolean(), vds, true); if (log.isDebugEnabled()) { log.debugFormat( "ResourceManager::activateVds - success to refreshCapabilities for host {0} , new status will be {1} ", @@ -510,7 +510,7 @@ ResourceManager.getInstance().SuccededToRunVm(vmId, _vds.getId()); } - public VDSStatus refreshCapabilities(AtomicBoolean processHardwareCapsNeeded, VDS vds) { + public VDSStatus refreshCapabilities(AtomicBoolean processHardwareCapsNeeded, VDS vds, boolean skipMgmtNet) { log.debug("refreshCapabilities:GetCapabilitiesVDSCommand started method"); MonitoringStrategy vdsMonitoringStrategy = MonitoringStrategyFactory.getMonitoringStrategyForVds(vds); VDS oldVDS = vds.clone(); @@ -536,7 +536,8 @@ } VDSStatus returnStatus = vds.getstatus(); - boolean isSetNonOperational = CollectVdsNetworkDataVDSCommand.persistAndEnforceNetworkCompliance(vds); + boolean isSetNonOperational = + CollectVdsNetworkDataVDSCommand.persistAndEnforceNetworkCompliance(vds, skipMgmtNet); if (isSetNonOperational) { setIsSetNonOperationalExecuted(true); } 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 02d0cca..839a542 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 @@ -438,7 +438,8 @@ } else { // refresh dynamic data final AtomicBoolean processHardwareNeededAtomic = new AtomicBoolean(); - VDSStatus refreshReturnStatus = _vdsManager.refreshCapabilities(processHardwareNeededAtomic, _vds); + VDSStatus refreshReturnStatus = + _vdsManager.refreshCapabilities(processHardwareNeededAtomic, _vds, false); processHardwareCapsNeeded = processHardwareNeededAtomic.get(); refreshedCapabilities = true; if (refreshReturnStatus != VDSStatus.NonOperational) { @@ -804,7 +805,7 @@ if (_vdsManager.getbeforeFirstRefresh()) { boolean flagsChanged = false; final AtomicBoolean processHardwareCapsNeededTemp = new AtomicBoolean(); - _vdsManager.refreshCapabilities(processHardwareCapsNeededTemp, _vds); + _vdsManager.refreshCapabilities(processHardwareCapsNeededTemp, _vds, false); flagsChanged = processHardwareCapsNeededTemp.get(); _vdsManager.setbeforeFirstRefresh(false); refreshedCapabilities = true; 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 03e1fc3..d5e5cce 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 @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -18,6 +19,8 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface.NetworkImplementationDetails; +import org.ovirt.engine.core.common.config.Config; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.vdscommands.UpdateVdsDynamicDataVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VdsIdAndVdsVDSCommandParametersBase; @@ -44,7 +47,7 @@ updateNetConfigDirtyFlag(); // update to db - persistAndEnforceNetworkCompliance(getVds()); + persistAndEnforceNetworkCompliance(getVds(), false); ProceedProxyReturnValue(); } @@ -76,15 +79,30 @@ * <li>All VM networks must be implemented with bridges. * * @param vds + * @param skipManagementNetwork + * if <code>true</code> skip validations for the management network (existence on the host or configured + * properly) * @return */ - public static boolean persistAndEnforceNetworkCompliance(VDS vds) { + public static boolean persistAndEnforceNetworkCompliance(VDS vds, boolean skipManagementNetwork) { persistTopology(vds); if (vds.getstatus() != VDSStatus.Maintenance) { List<Network> clusterNetworks = DbFacade.getInstance().getNetworkDao() .getAllForCluster(vds.getvds_group_id()); + + if (skipManagementNetwork) { + String managementNetworkName = Config.GetValue(ConfigValues.ManagementNetwork); + for (Iterator<Network> iterator = clusterNetworks.iterator(); iterator.hasNext();) { + Network network = iterator.next(); + if (managementNetworkName.equals(network.getName())) { + iterator.remove(); + break; + } + } + } + Map<String, String> customLogValues; // here we check if the vds networks match it's cluster networks -- To view, visit http://gerrit.ovirt.org/11307 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idf4bf4affcd901b23e2d4d55ba85763928180fcd Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
