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