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).

Change-Id: I57a658a4e2d4648917a265493cde4749ad15e3ad
Bug-Url: https://bugzilla.redhat.com/??????
Signed-off-by: Martin Mucha <mmu...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UpdateNetworkCommand.java
1 file changed, 13 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/88/32688/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..83b12ac 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,16 @@
                 || 
validate(validatorOld.externalNetworkDetailsUnchanged(getNetwork())));
     }
 
+    private boolean allowedNetworkLabelManipulation() {
+        Network oldNetwork = getOldNetwork();
+        Network newNetwork = getNetwork();
+
+        boolean labelNotChanged = Objects.equals(oldNetwork.getLabel(), 
newNetwork.getLabel());
+        boolean newLabelAssigned = oldNetwork.getLabel() == null && 
newNetwork.getLabel() != null;
+
+        return labelNotChanged || newLabelAssigned;
+    }
+
     /**
      * @return <code>true</code> iff only the description or comment field 
were changed, otherwise <code>false</code>.
      */
@@ -159,8 +169,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() {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I57a658a4e2d4648917a265493cde4749ad15e3ad
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Mucha <mmu...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to