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

Reply via email to