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

Reply via email to