Martin Mucha has uploaded a new change for review.

Change subject: core: allowed to add network label even if Vm using this 
network is running.
......................................................................

core: allowed to add network label even if Vm using this network is
running.

~ Network label was checked to be unchanged in method
'onlyPermittedFieldsChanged'. This is extracted out into new method
'allowedNetworkLabelManipulation' which returns true if network label
was not changed, or if former label was not specified (null) and new
one is specified (!=null).

~ moved methods out from non static SyncNetworkParametersBuilder.
These methods can be used outside from SyncNetworkParametersBuilder,
but in that case their owning class have to be instantiated using
CommandContext parameter, which is completely unrelated to these four
methods.

Change-Id: Ic4e37a36bc8ae1b5614c3c6d218fb13a4e59a021
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
1 file changed, 22 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/32968/1

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 cab3fb5..129f0b3 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
@@ -81,7 +81,7 @@
         if (!getNetwork().isExternal()) {
             if 
(NetworkHelper.setupNetworkSupported(getStoragePool().getcompatibility_version()))
 {
                 applyNetworkChangesToHosts();
-            } else if (!onlyPermittedFieldsChanged()) {
+            } else if (!onlyPermittedFieldsChanged() || 
!allowedNetworkLabelManipulation()) {
                 List<VdsNetworkInterface> nics =
                         
getDbFacade().getInterfaceDao().getVdsInterfacesByNetworkId(getNetwork().getId());
                 if (!nics.isEmpty()) {
@@ -115,7 +115,7 @@
 
     @Override
     protected boolean canDoAction() {
-        if (onlyPermittedFieldsChanged()) {
+        if (onlyPermittedFieldsChanged() && allowedNetworkLabelManipulation()) 
{
             return true;
         }
 
@@ -140,6 +140,13 @@
                 || 
validate(validatorOld.externalNetworkDetailsUnchanged(getNetwork())));
     }
 
+    private boolean allowedNetworkLabelManipulation() {
+        boolean labelNotChanged = !labelChanged();
+        boolean newLabelAssigned = !labelAdded();
+
+        return !getNetwork().isExternal() && (labelNotChanged || 
newLabelAssigned);
+    }
+
     /**
      * @return <code>true</code> iff only the description or comment field 
were changed, otherwise <code>false</code>.
      */
@@ -159,8 +166,7 @@
                 Objects.equals(oldNetwork.getProvidedBy(), 
newNetwork.getProvidedBy()) &&
                 Objects.equals(oldNetwork.getStp(), newNetwork.getStp()) &&
                 Objects.equals(oldNetwork.getVlanId(), newNetwork.getVlanId()) 
&&
-                Objects.equals(oldNetwork.isVmNetwork(), 
newNetwork.isVmNetwork()) &&
-                Objects.equals(oldNetwork.getLabel(), newNetwork.getLabel());
+                Objects.equals(oldNetwork.isVmNetwork(), 
newNetwork.isVmNetwork());
     }
 
     private boolean oldAndNewNetworkIsNotExternal() {
@@ -460,21 +466,21 @@
             }
         }
 
-        private boolean labelChanged() {
-            return !Objects.equals(getNetwork().getLabel(), 
getOldNetwork().getLabel());
-        }
+    }
 
-        private boolean labelAdded() {
-            return !NetworkUtils.isLabeled(getOldNetwork()) && 
NetworkUtils.isLabeled(getNetwork());
-        }
+    private boolean labelChanged() {
+        return !Objects.equals(getNetwork().getLabel(), 
getOldNetwork().getLabel());
+    }
 
-        private boolean labelRemoved() {
-            return NetworkUtils.isLabeled(getOldNetwork()) && 
!NetworkUtils.isLabeled(getNetwork());
-        }
+    private boolean labelAdded() {
+        return !NetworkUtils.isLabeled(getOldNetwork()) && 
NetworkUtils.isLabeled(getNetwork());
+    }
 
-        private boolean labelRenamed() {
-            return NetworkUtils.isLabeled(getOldNetwork()) && 
NetworkUtils.isLabeled(getNetwork()) && labelChanged();
-        }
+    private boolean labelRemoved() {
+        return NetworkUtils.isLabeled(getOldNetwork()) && 
!NetworkUtils.isLabeled(getNetwork());
+    }
 
+    private boolean labelRenamed() {
+        return NetworkUtils.isLabeled(getOldNetwork()) && 
NetworkUtils.isLabeled(getNetwork()) && labelChanged();
     }
 }


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

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

Reply via email to