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: I40075be15ec9f3607c2f859b09e2b113d92f6e66
Bug-Url: https://bugzilla.redhat.com/1142203
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/84/32984/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 0ecc208..8750c24 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
@@ -75,7 +75,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()) {
@@ -109,7 +109,7 @@
 
     @Override
     protected boolean canDoAction() {
-        if (onlyPermittedFieldsChanged()) {
+        if (onlyPermittedFieldsChanged() && allowedNetworkLabelManipulation()) 
{
             return true;
         }
 
@@ -134,6 +134,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>.
      */
@@ -153,8 +160,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() {
@@ -450,21 +456,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/32984
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to