Noam Slomianko has uploaded a new change for review.

Change subject: core: scheduler: handle external plugin parameters
......................................................................

core: scheduler: handle external plugin parameters

For loaded external scheduling plugin added code
saves description and handle bad custom properties.

Signed-off-by: Noam Slomianko <nslom...@redhat.com>
Change-Id: Ibaa3e1396ba0ec61ebce33d08a1174b93b97c56d
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryResult.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryThread.java
2 files changed, 20 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/18263/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryResult.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryResult.java
index c009c61..cb9601d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryResult.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryResult.java
@@ -4,6 +4,7 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.ovirt.engine.core.utils.customprop.SimpleCustomPropertiesUtil;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
 
@@ -41,13 +42,21 @@
                     return false;
                 }
             // list of module names as keys and [description, regex] as value
-            for (String moduleName : typeMap.keySet()) {
-                Object[] singleModule = typeMap.get(moduleName);
+                for (String moduleName : typeMap.keySet()) {
+                    Object[] singleModule = typeMap.get(moduleName);
+                    // check custom properties format.
+                    String customPropertiesRegex = singleModule[1].toString();
+                    if (SimpleCustomPropertiesUtil.getInstance()
+                            .syntaxErrorInProperties(customPropertiesRegex)) {
+                        log.error("module " + moduleName + " will not be 
loaded, wrong custom properties format ("
+                                + customPropertiesRegex + ")");
+                        continue;
+                    }
                     ExternalSchedulerDiscoveryUnit currentUnit = new 
ExternalSchedulerDiscoveryUnit(moduleName,
-                        singleModule[0].toString(),
-                        singleModule[1].toString());
+                            singleModule[0].toString(),
+                            customPropertiesRegex);
                     currentList.add(currentUnit);
-            }
+                }
         }
         return true;
         } catch (Exception e) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryThread.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryThread.java
index 4296a63..e466e05 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryThread.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/external/ExternalSchedulerDiscoveryThread.java
@@ -85,16 +85,12 @@
                 continue;
             }
 
-            try{
-                Map<String, String> discoveryPropMap = 
SimpleCustomPropertiesUtil.getInstance().convertProperties(discoveryUnit.getRegex());
-                if 
(!policyUnit.getParameterRegExMap().equals(discoveryPropMap)) {
-                    sendToDb(discoveryUnit, true, type);
-                }
-            } catch (Exception e) {
-                // TODO: handle exception? log?
+            Map<String, String> discoveryPropMap =
+                    
SimpleCustomPropertiesUtil.getInstance().convertProperties(discoveryUnit.getRegex());
+            if (!policyUnit.getParameterRegExMap().equals(discoveryPropMap) ||
+                    
!policyUnit.getDescription().equals(discoveryUnit.getDescription())) {
+                sendToDb(discoveryUnit, true, type);
             }
-
-            // TODO: when policy unit description is merged, compare it as well
 
             return policyUnit;
 
@@ -118,13 +114,13 @@
         policy.setInternal(false);
         policy.setName(discoveryUnit.getName());
         policy.setPolicyUnitType(type);
+        policy.setDescription(discoveryUnit.getDescription());
         if(!StringUtils.isBlank(discoveryUnit.getRegex())) {
             
policy.setParameterRegExMap(SimpleCustomPropertiesUtil.getInstance()
                     .convertProperties(discoveryUnit.getRegex()));
         } else {
             policy.setParameterRegExMap(new HashMap<String, String>());
         }
-        // TODO: when policy unit description is merged, set it
         return policy;
     }
 


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

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

Reply via email to