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
