Lior Vernia has uploaded a new change for review.

Change subject: engine: Re-assign display/migration roles to mgmt network
......................................................................

engine: Re-assign display/migration roles to mgmt network

While we recently started marking the management network explicitly as
display and migration by default, we did not take care of the scenario
where the roles are assigned to another network which is then removed
- in which case we're left with no explicit display/migration network,
and only fall back to the management network implicitly.

Now when a network holding the role is removed, it is re-assigned to
the management network.

Change-Id: I1fe94bdfda672ddf51b075415a02a80ff634a90a
Bug-Url: https://bugzilla.redhat.com/1135785
Signed-off-by: Lior Vernia <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java
1 file changed, 25 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/53/32253/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java
index e5f7acc..8d89c8d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java
@@ -15,9 +15,11 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
+import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.utils.NetworkUtils;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
@@ -25,6 +27,7 @@
 public class DetachNetworkToVdsGroupCommand<T extends 
AttachNetworkToVdsGroupParameter> extends VdsGroupCommandBase<T> {
 
     private Network persistedNetwork;
+    private NetworkCluster managementNetworkCluster;
 
     public DetachNetworkToVdsGroupCommand(T parameters) {
         super(parameters);
@@ -36,7 +39,19 @@
 
             @Override
             public Void runInTransaction() {
-                getNetworkClusterDAO().remove(getParameters().getVdsGroupId(), 
getParameters().getNetworkCluster().getNetworkId());
+                NetworkCluster networkCluster = 
getParameters().getNetworkCluster();
+                getNetworkClusterDAO().remove(getParameters().getVdsGroupId(), 
networkCluster.getNetworkId());
+
+                if (networkCluster.isDisplay()) {
+                    getManagementNetworkCluster().setDisplay(true);
+                }
+                if (networkCluster.isMigration()) {
+                    getManagementNetworkCluster().setMigration(true);
+                }
+                if (managementNetworkCluster != null) {
+                    getNetworkClusterDAO().update(managementNetworkCluster);
+                }
+
                 return null;
             }
         });
@@ -93,6 +108,15 @@
         return persistedNetwork;
     }
 
+    private NetworkCluster getManagementNetworkCluster() {
+        if (managementNetworkCluster == null) {
+            Guid clusterId = getParameters().getVdsGroupId();
+            Network mgmt = 
getNetworkDAO().getByNameAndCluster(NetworkUtils.getEngineNetwork(), clusterId);
+            managementNetworkCluster = getNetworkClusterDAO().get(new 
NetworkClusterId(clusterId, mgmt.getId()));
+        }
+        return managementNetworkCluster;
+    }
+
     private void removeNetworkFromHosts() {
         NetworkHelper.removeNetworkFromHostsInCluster(getPersistedNetwork(),
                 getParameters().getVdsGroupId(),


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1fe94bdfda672ddf51b075415a02a80ff634a90a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to