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

Reply via email to