Lior Vernia has uploaded a new change for review. Change subject: engine,webadmin: Encapsulate network properties logic in util ......................................................................
engine,webadmin: Encapsulate network properties logic in util Added a small helper utility to deal with network custom properties, and used it in backend and frontend. Change-Id: Ib46fffc434a647cc2c603631c0af920ca41ad2f5 Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/customprop/NetworkCustomPropertiesUtils.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java 3 files changed, 78 insertions(+), 29 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/77/27577/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java index cdd73ce..cc02ece 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java @@ -26,8 +26,7 @@ import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.common.utils.customprop.SimpleCustomPropertiesUtil; -import org.ovirt.engine.core.common.utils.customprop.ValidationError; +import org.ovirt.engine.core.common.utils.customprop.NetworkCustomPropertiesUtils; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.network.NetworkQoSDao; import org.ovirt.engine.core.utils.NetworkUtils; @@ -261,14 +260,19 @@ } private void validateCustomProperties() { - String version = vds.getVdsGroupCompatibilityVersion().getValue(); - SimpleCustomPropertiesUtil util = SimpleCustomPropertiesUtil.getInstance(); - Map<String, String> validProperties = - util.convertProperties(Config.<String> getValue(ConfigValues.PreDefinedNetworkCustomProperties, version)); - validProperties.putAll(util.convertProperties(Config.<String> getValue(ConfigValues.UserDefinedNetworkCustomProperties, - version))); - Map<String, String> validPropertiesNonVm = new HashMap<String, String>(validProperties); - validPropertiesNonVm.remove("bridge_opts"); + final String version = vds.getVdsGroupCompatibilityVersion().getValue(); + NetworkCustomPropertiesUtils util = new NetworkCustomPropertiesUtils() { + + @Override + protected String getUserDefinedProperties() { + return Config.<String> getValue(ConfigValues.UserDefinedNetworkCustomProperties, version); + } + + @Override + protected String getPreDefinedProperties() { + return Config.<String> getValue(ConfigValues.PreDefinedNetworkCustomProperties, version); + } + }; for (VdsNetworkInterface iface : params.getInterfaces()) { if (iface.hasCustomProperties()) { String networkName = iface.getNetworkName(); @@ -281,15 +285,12 @@ networkName); } - Network network = existingClusterNetworks.get(networkName); - List<ValidationError> errors = - util.validateProperties(network == null || network.isVmNetwork() ? validProperties - : validPropertiesNonVm, iface.getCustomProperties()); + List<String> errors = + util.validateProperties(existingClusterNetworks.get(networkName), + iface.getCustomProperties()); if (!errors.isEmpty()) { addViolation(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_CUSTOM_PROPERTIES_BAD_INPUT, networkName); - List<String> messages = new ArrayList<>(); - util.handleCustomPropertiesError(errors, messages); - log.error(StringUtils.join(translateErrorMessages(messages), ',')); + log.error(StringUtils.join(translateErrorMessages(errors), ',')); } } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/customprop/NetworkCustomPropertiesUtils.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/customprop/NetworkCustomPropertiesUtils.java new file mode 100644 index 0000000..b2ede31 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/customprop/NetworkCustomPropertiesUtils.java @@ -0,0 +1,43 @@ +package org.ovirt.engine.core.common.utils.customprop; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.ovirt.engine.core.common.businessentities.network.Network; + +public abstract class NetworkCustomPropertiesUtils { + + private static String BRIDGE_OPTS = "bridge_opts"; + + private CustomPropertiesUtils utils; + private Map<String, String> validProperties; + private Map<String, String> validPropertiesNonVm; + + public NetworkCustomPropertiesUtils() { + utils = SimpleCustomPropertiesUtil.getInstance(); + validProperties = new HashMap<String, String>(); + validProperties.putAll(utils.convertProperties(getPreDefinedProperties())); + validProperties.putAll(utils.convertProperties(getUserDefinedProperties())); + + validPropertiesNonVm = new HashMap<String, String>(validProperties); + validPropertiesNonVm.remove(BRIDGE_OPTS); + } + + public Map<String, String> getValidProperties(Network network) { + return (network == null || network.isVmNetwork()) ? validProperties : validPropertiesNonVm; + } + + public List<String> validateProperties(Network network, Map<String, String> properties) { + List<String> messages = new ArrayList<String>(); + List<ValidationError> errors = utils.validateProperties(getValidProperties(network), properties); + utils.handleCustomPropertiesError(errors, messages); + return messages; + } + + protected abstract String getPreDefinedProperties(); + + protected abstract String getUserDefinedProperties(); + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java index 634f36c..d6f2051 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java @@ -26,6 +26,7 @@ import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.common.utils.customprop.NetworkCustomPropertiesUtils; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; @@ -375,7 +376,7 @@ : logicalNetwork.getAttachedToNic().getEntity(); final HostInterfaceModel networkDialogModel; - String version = getEntity().getVdsGroupCompatibilityVersion().getValue(); + final String version = getEntity().getVdsGroupCompatibilityVersion().getValue(); if (logicalNetwork.isManagement()) { networkDialogModel = new HostManagementNetworkModel(true); networkDialogModel.setTitle(ConstantsManager.getInstance().getConstants().editManagementNetworkTitle()); @@ -405,17 +406,21 @@ version)) { KeyValueModel customPropertiesModel = networkDialogModel.getCustomPropertiesModel(); customPropertiesModel.setIsAvailable(true); - Map<String, String> validProperties = - KeyValueModel.convertProperties((String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.PreDefinedNetworkCustomProperties, - version)); - // TODO: extract this (and as much surrounding code as possible) into a custom properties utility common - // to backend and frontend (lvernia) - if (!logicalNetwork.getEntity().isVmNetwork()) { - validProperties.remove("bridge_opts"); //$NON-NLS-1$ - } - validProperties.putAll(KeyValueModel.convertProperties((String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.UserDefinedNetworkCustomProperties, - version))); - customPropertiesModel.setKeyValueMap(validProperties); + NetworkCustomPropertiesUtils utils = new NetworkCustomPropertiesUtils() { + + @Override + protected String getUserDefinedProperties() { + return (String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.UserDefinedNetworkCustomProperties, + version); + } + + @Override + protected String getPreDefinedProperties() { + return (String) AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.PreDefinedNetworkCustomProperties, + version); + } + }; + customPropertiesModel.setKeyValueMap(utils.getValidProperties(logicalNetwork.getEntity())); customPropertiesModel.deserialize(KeyValueModel.convertProperties(entity.getCustomProperties())); } networkDialogModel.getIsToSync().setIsChangable(!logicalNetwork.isInSync()); -- To view, visit http://gerrit.ovirt.org/27577 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib46fffc434a647cc2c603631c0af920ca41ad2f5 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
