Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: replace NetworkUtils.getDefaultManagementNetwork calls
......................................................................

engine: replace NetworkUtils.getDefaultManagementNetwork calls

Replace NetworkUtils.getDefaultManagementNetwork calls with
calls to appropriate ManagementNetworkUtil methods.

Change-Id: Ib0bd50e16b577b3f31765011d9b16501149c2479
Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InstallVdsInternalCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsDeploy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkValidatorTest.java
M 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.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/VdsBrokerObjectsBuilder.java
11 files changed, 124 insertions(+), 59 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/34243/15

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InstallVdsInternalCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InstallVdsInternalCommand.java
index cbd121e..a187633 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InstallVdsInternalCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InstallVdsInternalCommand.java
@@ -3,9 +3,12 @@
 import java.util.Collections;
 import java.util.Map;
 
+import javax.inject.Inject;
+
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.network.NetworkConfigurator;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.FeatureSupported;
 import org.ovirt.engine.core.common.action.InstallVdsParameters;
@@ -15,11 +18,11 @@
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.ProviderType;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.common.locks.LockingGroup;
 import org.ovirt.engine.core.common.utils.Pair;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.utils.NetworkUtils;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
 import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSNetworkException;
@@ -29,6 +32,9 @@
 
     private static Log log = 
LogFactory.getLog(InstallVdsInternalCommand.class);
     private VDSStatus vdsInitialStatus;
+
+    @Inject
+    private ManagementNetworkUtil managementNetworkUtil;
 
     public InstallVdsInternalCommand(T parameters) {
         this(parameters, null);
@@ -97,7 +103,8 @@
             );
 
             if (configureNetworkUsingHostDeploy) {
-                
installer.setManagementNetwork(NetworkUtils.getDefaultManagementNetworkName());
+                final Network managementNetwork = 
managementNetworkUtil.getManagementNetwork(getVdsGroupId());
+                installer.setManagementNetwork(managementNetwork.getName());
             }
 
             if (parameters.getNetworkProviderId() != null) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsDeploy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsDeploy.java
index 2392da1..23b00fc 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsDeploy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsDeploy.java
@@ -26,15 +26,19 @@
 import javax.naming.TimeLimitExceededException;
 
 import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.bll.utils.EngineSSHDialog;
 import 
org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties;
 import 
org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties.MessagingConfiguration;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VDSType;
+import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
+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.EngineLocalConfig;
 import org.ovirt.engine.core.utils.NetworkUtils;
 import org.ovirt.engine.core.utils.PKIResources;
@@ -408,10 +412,12 @@
                 );
             }
             else if (_isLegacyNode) {
+                final ManagementNetworkUtil managmentNetworkUtil = 
Injector.get(ManagementNetworkUtil.class);
+                final Guid clusterId = _vds.getVdsGroupId();
+                final Network managementNetwork = 
managmentNetworkUtil.getManagementNetwork(clusterId);
                 _parser.cliEnvironmentSet(
-                    VdsmEnv.MANAGEMENT_BRIDGE_NAME,
-                    NetworkUtils.getDefaultManagementNetworkName()
-                );
+                        VdsmEnv.MANAGEMENT_BRIDGE_NAME,
+                        managementNetwork.getName());
             }
             else {
                 _parser.cliNoop();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java
index 827d882..c9be75a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java
@@ -10,6 +10,7 @@
 import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.interfaces.BackendInternal;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.FeatureSupported;
 import org.ovirt.engine.core.common.action.SetupNetworksParameters;
@@ -28,10 +29,9 @@
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
-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.utils.NetworkUtils;
+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.utils.transaction.TransactionMethod;
@@ -53,15 +53,17 @@
     }
 
     public void createManagementNetworkIfRequired() {
-        final String managementNetwork = 
NetworkUtils.getDefaultManagementNetworkName();
 
         if (host == null) {
             return;
         }
 
-        if (managementNetwork.equals(host.getActiveNic())) {
+        final ManagementNetworkUtil managementNetworkUtil = 
getManagementNetworkUtil();
+        final Network managementNetwork = 
managementNetworkUtil.getManagementNetwork(host.getVdsGroupId());
+        final String managementNetworkName = managementNetwork.getName();
+        if (managementNetworkName.equals(host.getActiveNic())) {
             log.infoFormat("The management network {0} is already configured 
on host {1}",
-                    managementNetwork,
+                    managementNetworkName,
                     host.getName());
             return;
         }
@@ -78,7 +80,7 @@
 
         List<VdsNetworkInterface> interfaces = 
filterBondsWithoutSlaves(host.getInterfaces());
         if (interfaces.contains(nic)) {
-            nic.setNetworkName(managementNetwork);
+            nic.setNetworkName(managementNetworkName);
             configureManagementNetwork(createSetupNetworkParams(interfaces));
         } else {
             final AuditLogableBase event = createEvent();
@@ -88,6 +90,10 @@
                     NETWORK_CONFIG_LOG_ERR);
             throw new 
NetworkConfiguratorException(MANAGEMENET_NETWORK_CONFIG_ERR);
         }
+    }
+
+    private ManagementNetworkUtil getManagementNetworkUtil() {
+        return Injector.get(ManagementNetworkUtil.class);
     }
 
     public boolean pollVds() {
@@ -172,9 +178,7 @@
                     host.getActiveNic()));
         }
 
-        Network managementNetwork =
-                getDbFacade().getNetworkDao()
-                        
.getByNameAndDataCenter(NetworkUtils.getDefaultManagementNetworkName(), 
host.getStoragePoolId());
+        final Network managementNetwork = 
getManagementNetworkUtil().getManagementNetwork(host.getVdsGroupId());
 
         if (managementNetwork.getName().equals(nic.getNetworkName())) {
             return null;
@@ -262,10 +266,6 @@
 
     private CommandContext cloneContextAndDetachFromParent() {
         return 
commandContext.clone().withoutCompensationContext().withoutExecutionContext().withoutLock();
-    }
-
-    private DbFacade getDbFacade() {
-        return DbFacade.getInstance();
     }
 
     public static class NetworkConfiguratorException extends RuntimeException {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
index 310c98c..2c08834 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
@@ -16,7 +16,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dao.network.NetworkClusterDao;
-import org.ovirt.engine.core.utils.NetworkUtils;
+import org.ovirt.engine.core.di.Injector;
 import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.linq.Predicate;
 
@@ -39,10 +39,8 @@
     private NetworkCluster getManagementNetworkCluster() {
         if (managementNetworkCluster == null) {
             Guid clusterId = networkCluster.getClusterId();
-            Network mgmt =
-                    DbFacade.getInstance()
-                            .getNetworkDao()
-                            
.getByNameAndCluster(NetworkUtils.getDefaultManagementNetworkName(), clusterId);
+            final ManagementNetworkUtil managementNetworkUtil = 
Injector.get(ManagementNetworkUtil.class);
+            Network mgmt = 
managementNetworkUtil.getManagementNetwork(clusterId);
             managementNetworkCluster = getNetworkClusterDao().get(new 
NetworkClusterId(clusterId, mgmt.getId()));
         }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
index aad1630..068c97b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
@@ -14,6 +14,7 @@
 
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.Validate;
 import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
 import org.ovirt.engine.core.bll.RenamedEntityInfoProvider;
 import org.ovirt.engine.core.bll.ValidationResult;
@@ -127,7 +128,7 @@
         }
 
         NetworkValidator validatorNew = new NetworkValidator(getNetwork());
-        UpdateNetworkValidator validatorOld = new 
UpdateNetworkValidator(getOldNetwork());
+        UpdateNetworkValidator validatorOld = new 
UpdateNetworkValidator(getOldNetwork(), managementNetworkUtil);
         return validate(validatorNew.dataCenterExists())
                 && validate(validatorNew.vmNetworkSetCorrectly())
                 && validate(validatorNew.stpForVmNetworkOnly())
@@ -136,7 +137,7 @@
                 && validate(validatorNew.vlanIdNotUsed())
                 && validate(validatorNew.qosExistsInDc())
                 && validate(validatorOld.networkIsSet())
-                && 
validate(validatorOld.notRenamingManagementNetwork(getNetwork()))
+                && validate(validatorOld.notRenamingManagementNetwork())
                 && 
validate(validatorOld.notChangingDataCenterId(getNetwork().getDataCenterId()))
                 && validate(validatorNew.networkNameNotUsed())
                 && validate(validatorOld.networkNotUsedByRunningVms())
@@ -199,9 +200,13 @@
     }
 
     protected static class UpdateNetworkValidator extends NetworkValidator {
+        private final ManagementNetworkUtil managementNetworkUtil;
 
-        public UpdateNetworkValidator(Network network) {
+        public UpdateNetworkValidator(Network network, ManagementNetworkUtil 
managementNetworkUtil) {
             super(network);
+
+            Validate.notNull(managementNetworkUtil, "managementNetworkUtil 
cannot be null");
+            this.managementNetworkUtil = managementNetworkUtil;
         }
 
         public ValidationResult notRenamingLabel(String newLabel) {
@@ -296,10 +301,8 @@
             return ValidationResult.VALID;
         }
 
-        public ValidationResult notRenamingManagementNetwork(Network 
newNetwork) {
-            String managementNetwork = 
NetworkUtils.getDefaultManagementNetworkName();
-            return network.getName().equals(managementNetwork) &&
-                    !newNetwork.getName().equals(managementNetwork)
+        public ValidationResult notRenamingManagementNetwork() {
+            return managementNetworkUtil.isManagementNetwork(network.getId())
                     ? new 
ValidationResult(VdcBllMessages.NETWORK_CAN_NOT_REMOVE_DEFAULT_NETWORK)
                     : ValidationResult.VALID;
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
index b4174f5..6740abd 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
@@ -4,8 +4,11 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Inject;
+
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.Backend;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.bll.network.cluster.NetworkClusterHelper;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.FeatureSupported;
@@ -26,6 +29,10 @@
 import org.ovirt.engine.core.utils.NetworkUtils;
 
 public class AttachNetworkToVdsInterfaceCommand<T extends 
AttachNetworkToVdsParameters> extends VdsNetworkCommand<T> {
+
+    @Inject
+    private ManagementNetworkUtil managementNetworkUtil;
+
     private Network logicalNetwork;
 
     public AttachNetworkToVdsInterfaceCommand(T parameters) {
@@ -139,7 +146,7 @@
             return false;
         }
 
-        if 
(!NetworkUtils.getDefaultManagementNetworkName().equals(logicalNetwork.getName())
+        if 
(!managementNetworkUtil.isManagementNetwork(logicalNetwork.getName(), 
getVdsGroupId())
                 && StringUtils.isNotEmpty(params.getGateway())) {
             
addCanDoActionMessage(VdcBllMessages.NETWORK_ATTACH_ILLEGAL_GATEWAY);
             return false;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
index 7cd95bb..f91c8a0 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
@@ -4,7 +4,10 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Inject;
+
 import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.bll.network.cluster.NetworkClusterHelper;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.action.UpdateNetworkToVdsParameters;
@@ -32,6 +35,9 @@
 import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil;
 
 public class UpdateNetworkToVdsInterfaceCommand<T extends 
UpdateNetworkToVdsParameters> extends VdsNetworkCommand<T> {
+
+    @Inject
+    private ManagementNetworkUtil managementNetworkUtil;
 
     private List<VdsNetworkInterface> interfaces;
     private VDSReturnValue retVal;
@@ -215,31 +221,30 @@
             return false;
         }
 
-        if (StringUtils.equals(getParameters().getOldNetworkName(), 
NetworkUtils.getDefaultManagementNetworkName())
-                && !StringUtils.equals(getParameters().getNetwork().getName(), 
NetworkUtils.getDefaultManagementNetworkName())) {
-            getReturnValue().getCanDoActionMessages()
-                    
.add(VdcBllMessages.NETWORK_DEFAULT_UPDATE_NAME_INVALID.toString());
-            
getReturnValue().getCanDoActionMessages().add(String.format("$NetworkName %1$s",
-                    NetworkUtils.getDefaultManagementNetworkName()));
-            return false;
-        }
-
-        if 
(!NetworkUtils.getDefaultManagementNetworkName().equals(getParameters().getNetwork().getName())
-                && StringUtils.isNotEmpty(getParameters().getGateway())) {
-            if (!getParameters().getGateway().equals(ifaceGateway)) {
-                
addCanDoActionMessage(VdcBllMessages.NETWORK_ATTACH_ILLEGAL_GATEWAY);
+        final Guid clusterId = getVdsGroupId();
+        if 
(!managementNetworkUtil.isManagementNetwork(getParameters().getNetwork().getName(),
 clusterId)) {
+            if 
(managementNetworkUtil.isManagementNetwork(getParameters().getOldNetworkName(), 
clusterId)) {
+                getReturnValue().getCanDoActionMessages()
+                        
.add(VdcBllMessages.NETWORK_DEFAULT_UPDATE_NAME_INVALID.toString());
+                final Network managementNetwork = 
managementNetworkUtil.getManagementNetwork(clusterId);
+                
getReturnValue().getCanDoActionMessages().add(String.format("$NetworkName %1$s",
+                        managementNetwork.getName()));
                 return false;
             }
-            // if the gateway didn't change we don't want the vdsm to set it.
-            else {
-                getParameters().setGateway(null);
-            }
-        }
 
-        // check conectivity
-        
getParameters().setCheckConnectivity(getParameters().getCheckConnectivity());
-        if (getParameters().getCheckConnectivity()) {
-            if (!StringUtils.equals(getParameters().getNetwork().getName(), 
NetworkUtils.getDefaultManagementNetworkName())) {
+            if (StringUtils.isNotEmpty(getParameters().getGateway())) {
+                if (!getParameters().getGateway().equals(ifaceGateway)) {
+                    
addCanDoActionMessage(VdcBllMessages.NETWORK_ATTACH_ILLEGAL_GATEWAY);
+                    return false;
+                }
+                // if the gateway didn't change we don't want the vdsm to set 
it.
+                else {
+                    getParameters().setGateway(null);
+                }
+            }
+
+            // check connectivity
+            if (getParameters().getCheckConnectivity()) {
                 
addCanDoActionMessage(VdcBllMessages.NETWORK_CHECK_CONNECTIVITY);
                 return false;
             }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkValidatorTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkValidatorTest.java
index 0a0abf2..c199ac2 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkValidatorTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkValidatorTest.java
@@ -12,22 +12,30 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import 
org.ovirt.engine.core.bll.network.dc.UpdateNetworkCommand.UpdateNetworkValidator;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.compat.Guid;
 
 @RunWith(MockitoJUnitRunner.class)
 public class UpdateNetworkValidatorTest {
 
+    private static final Guid NETWORK_ID = Guid.newGuid();
+
     @Mock
     private Network network;
+
+    @Mock
+    private ManagementNetworkUtil managementNetworkUtil;
 
     private UpdateNetworkValidator validator;
 
     @Before
     public void setup() {
-        validator = spy(new UpdateNetworkValidator(network));
+        when(network.getId()).thenReturn(NETWORK_ID);
+        validator = spy(new UpdateNetworkValidator(network, 
managementNetworkUtil));
     }
 
     private Network mockExternalNetwork() {
@@ -121,4 +129,19 @@
 
         assertThatExternalNetworkDetailsUnchangedFails(externalNetwork);
     }
+
+    @Test
+    public void managementNetworkRenamed() {
+        
when(managementNetworkUtil.isManagementNetwork(NETWORK_ID)).thenReturn(true);
+
+        assertThat(validator.notRenamingManagementNetwork(),
+                
failsWith(VdcBllMessages.NETWORK_CAN_NOT_REMOVE_DEFAULT_NETWORK));
+    }
+
+    @Test
+    public void managementNetworkNotRenamed() {
+        
when(managementNetworkUtil.isManagementNetwork(NETWORK_ID)).thenReturn(false);
+
+        assertThat(validator.notRenamingManagementNetwork(), isValid());
+    }
 }
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java
 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java
index 8579b73..1eede62 100644
--- 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java
+++ 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/NetworkUtils.java
@@ -21,6 +21,13 @@
 public final class NetworkUtils {
     public static final String OS_REFERENCE_TO_MACHINE_NAME = "HOSTNAME";
 
+    /**
+     * Retrieves the default management network name from the {@link Config}.
+     * Should be used in very rare cases. <code>ManagementNetworkUtil</code> 
provides more appropriate solution for vast
+     * majority of the cases.
+     *
+     * @return the default management network name.
+     */
     public static String getDefaultManagementNetworkName() {
         return Config.<String> getValue(ConfigValues.DefaultManagementNetwork);
     }
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 082b27f..75afafb 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
@@ -88,7 +88,7 @@
             List<Network> clusterNetworks = networkDao
                     .getAllForCluster(host.getVdsGroupId());
             if (skipManagementNetwork) {
-                skipManagementNetworkCheck(host.getInterfaces(), 
clusterNetworks);
+                skipManagementNetworkCheck(host.getInterfaces(), 
clusterNetworks, host.getVdsGroupId());
             }
 
             Map<String, String> customLogValues;
@@ -127,8 +127,9 @@
         return persistAndEnforceNetworkCompliance(host, false, 
Collections.<VdsNetworkInterface> emptyList());
     }
 
-    private void skipManagementNetworkCheck(List<VdsNetworkInterface> ifaces, 
List<Network> clusterNetworks) {
-        String managementNetworkName = 
NetworkUtils.getDefaultManagementNetworkName();
+    private void skipManagementNetworkCheck(List<VdsNetworkInterface> ifaces, 
List<Network> clusterNetworks, Guid clusterId) {
+        final Network managementNetwork = 
managementNetworkUtil.getManagementNetwork(clusterId);
+        final String managementNetworkName = managementNetwork.getName();
         for (VdsNetworkInterface iface : ifaces) {
             if (managementNetworkName.equals(iface.getNetworkName())) {
                 return;
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
index c86788a..dbabc59 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
@@ -18,6 +18,7 @@
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.FeatureSupported;
 import org.ovirt.engine.core.common.businessentities.AutoNumaBalanceStatus;
@@ -67,6 +68,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.NetworkUtils;
 import org.ovirt.engine.core.utils.NumaUtils;
 import org.ovirt.engine.core.utils.SerializationFactory;
@@ -1484,7 +1486,7 @@
             iface.setNetworkName(net.getName());
 
             // set the management ip
-            if (StringUtils.equals(iface.getNetworkName(), 
NetworkUtils.getDefaultManagementNetworkName())) {
+            if 
(getManagementNetworkUtil().isManagementNetwork(iface.getNetworkName(), 
host.getVdsGroupId())) {
                 iface.setType(iface.getType() | 
VdsInterfaceType.MANAGEMENT.getValue());
             }
 
@@ -1594,13 +1596,19 @@
      *            the gateway value to be set
      */
     private static void setGatewayIfNecessary(VdsNetworkInterface iface, VDS 
host, String gateway) {
+        final ManagementNetworkUtil managementNetworkUtil = 
getManagementNetworkUtil();
         if 
(FeatureSupported.multipleGatewaysSupported(host.getVdsGroupCompatibilityVersion())
-                || 
NetworkUtils.getDefaultManagementNetworkName().equals(iface.getNetworkName())
+                || 
managementNetworkUtil.isManagementNetwork(iface.getNetworkName(), 
host.getVdsGroupId())
                 || iface.getName().equals(host.getActiveNic())) {
             iface.setGateway(gateway);
         }
     }
 
+    private static ManagementNetworkUtil getManagementNetworkUtil() {
+        final ManagementNetworkUtil managementNetworkUtil = 
Injector.get(ManagementNetworkUtil.class);
+        return managementNetworkUtil;
+    }
+
     /**
      * Creates a list of {@link VmGuestAgentInterface} from the {@link 
VdsProperties.GuestNetworkInterfaces}
      *


-- 
To view, visit http://gerrit.ovirt.org/34243
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib0bd50e16b577b3f31765011d9b16501149c2479
Gerrit-PatchSet: 15
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yevgeny Zaspitsky <yzasp...@redhat.com>
Gerrit-Reviewer: Alona Kaplan <alkap...@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

Reply via email to