Yair Zaslavsky has uploaded a new change for review. Change subject: core: Adding ldap server ordering algorithms factory ......................................................................
core: Adding ldap server ordering algorithms factory The following adds ldap server ordering logic as preparation for using it instead of Ldap server scoring. This is required in order to support hardcoded ldap server list per domain, and let the ordering of server effect the scording Bug-Url: https://bugzilla.redhat.com/894681 Change-Id: Ic0904f9f6d9431ecac1cebee2790eae902a1329c Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersNoOpOrderingAlgorithm.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithmFactory.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersPutAtLastPlaceAlgorithm.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/OrderingAlgorithmType.java 5 files changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/11063/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersNoOpOrderingAlgorithm.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersNoOpOrderingAlgorithm.java new file mode 100644 index 0000000..b2adca3 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersNoOpOrderingAlgorithm.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.core.bll.adbroker.serverordering; + +import java.net.URI; +import java.util.List; + +public class LdapServersNoOpOrderingAlgorithm extends LdapServersOrderingAlgorithm { + + @Override + protected void replaceLdapServerInListImpl(URI server, List<URI> restOfServers) { + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java new file mode 100644 index 0000000..c5cc490 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithm.java @@ -0,0 +1,15 @@ +package org.ovirt.engine.core.bll.adbroker.serverordering; + +import java.net.URI; +import java.util.List; + +public abstract class LdapServersOrderingAlgorithm { + + protected abstract void replaceLdapServerInListImpl(URI server, List<URI> restOfServers); + + public void replaceLdapServerInList(URI server, List<URI> servers) { + if (servers.remove(server)) { + replaceLdapServerInListImpl(server, servers); + } + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithmFactory.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithmFactory.java new file mode 100644 index 0000000..9e195d9 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersOrderingAlgorithmFactory.java @@ -0,0 +1,25 @@ +package org.ovirt.engine.core.bll.adbroker.serverordering; + +import java.util.HashMap; +import java.util.Map; + +public class LdapServersOrderingAlgorithmFactory { + + private static LdapServersOrderingAlgorithmFactory instance = new LdapServersOrderingAlgorithmFactory(); + + public static LdapServersOrderingAlgorithmFactory getInstance() { + return instance; + } + + private Map<OrderingAlgorithmType, LdapServersOrderingAlgorithm> orderingAlgorithms; + + private LdapServersOrderingAlgorithmFactory() { + orderingAlgorithms = new HashMap<OrderingAlgorithmType, LdapServersOrderingAlgorithm>(); + orderingAlgorithms.put(OrderingAlgorithmType.NO_OP, new LdapServersNoOpOrderingAlgorithm()); + orderingAlgorithms.put(OrderingAlgorithmType.PUT_LAST, new LdapServersPutAtLastPlaceAlgorithm()); + } + + public LdapServersOrderingAlgorithm getOrderingAlgorithm(OrderingAlgorithmType algorithm) { + return orderingAlgorithms.get(algorithm); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersPutAtLastPlaceAlgorithm.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersPutAtLastPlaceAlgorithm.java new file mode 100644 index 0000000..0eec478 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/LdapServersPutAtLastPlaceAlgorithm.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.core.bll.adbroker.serverordering; + +import java.net.URI; +import java.util.List; + +public class LdapServersPutAtLastPlaceAlgorithm extends LdapServersOrderingAlgorithm { + + @Override + protected void replaceLdapServerInListImpl(URI server, List<URI> restOfServers) { + restOfServers.add(server); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/OrderingAlgorithmType.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/OrderingAlgorithmType.java new file mode 100644 index 0000000..dbd944a --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/serverordering/OrderingAlgorithmType.java @@ -0,0 +1,3 @@ +package org.ovirt.engine.core.bll.adbroker.serverordering; + +public enum OrderingAlgorithmType {PUT_LAST, NO_OP} -- To view, visit http://gerrit.ovirt.org/11063 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic0904f9f6d9431ecac1cebee2790eae902a1329c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches