Hello Yair Zaslavsky,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/32009

to review the following change.

Change subject: aaa: Engine should start even if exception occured in load of 
legacy provider
......................................................................

aaa: Engine should start even if exception occured in load of legacy provider

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1129203
Change-Id: I6ba595253c2569cf581e690b68348e6ae1c804b1
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/DirectorySearcher.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/Utils.java
M 
backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/utils/dns/DnsSRVLocator.java
3 files changed, 26 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/32009/1

diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/DirectorySearcher.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/DirectorySearcher.java
index b279eb2..db1e7dd 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/DirectorySearcher.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/DirectorySearcher.java
@@ -56,6 +56,7 @@
 
     public List<?> find(final LdapQueryData queryData, final long resultCount) 
{
         final String domainName = queryData.getDomain();
+        Utils.refreshLdapServers(configuration, domainName);
         List<String> ldapServerURIs =
                 
Arrays.asList(configuration.getProperty("config.LdapServers").split(";"));
         List<String> editableLdapServerURIs = new ArrayList<>(ldapServerURIs);
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/Utils.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/Utils.java
index 55db5f6..861b205 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/Utils.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/Utils.java
@@ -5,9 +5,11 @@
 import java.io.Reader;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+
 import javax.naming.spi.DirectoryManager;
 import javax.security.auth.login.Configuration;
 
@@ -15,10 +17,13 @@
 import org.ovirt.engine.api.extensions.Base;
 import 
org.ovirt.engine.extensions.aaa.builtin.kerberosldap.utils.dns.DnsSRVLocator.DnsSRVResult;
 import 
org.ovirt.engine.extensions.aaa.builtin.kerberosldap.utils.ldap.LdapSRVLocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Utils {
 
     private static boolean firstCallToInit = true;
+    private static Logger logger = LoggerFactory.getLogger(Utils.class);
 
     public static void setDefaults(Properties conf, String domain) {
         {
@@ -34,8 +39,13 @@
             }
         }
 
-        List<String> ldapServers = new ArrayList<>();
+        refreshLdapServers(conf, domain);
+
+    }
+
+    public static void refreshLdapServers(Properties conf, String domain) {
         LdapSRVLocator locator = new LdapSRVLocator();
+        List<String> addresses = new ArrayList<>();
         try {
             if (StringUtils.isBlank(conf.getProperty("config.LdapServers"))) {
                 // list of LDAP servers is empty, find LDAP servers using DNS 
SRV records and convert them
@@ -45,21 +55,26 @@
                     throw new Exception(String.format("No ldap servers  were 
found for domain %1$s", domain));
                 } else {
                     for (int counter = 0; counter < 
results.getNumOfValidAddresses(); counter++) {
-                        String address = results.getAddresses()[counter];
-                        String ldapURI = locator.constructURI("ldap", address, 
"389").toString();
-                        ldapServers.add(ldapURI);
+                        addresses.add(results.getAddresses()[counter]);
                     }
                 }
             } else {
                 // list of LDAP servers was entered, convert them to URIs
-                for (String server : 
conf.getProperty("config.LdapServers").split(";")) {
-                    ldapServers.add(locator.constructURI("ldap", server, 
"389").toString());
-                }
+                addresses = 
Arrays.asList(conf.getProperty("config.LdapServers").split(";"));
             }
+            List<String> ldapServers = new ArrayList<>();
+            for (String address : addresses) {
+                String ldapURI = locator.constructURI("ldap", address, 
"389").toString();
+                ldapServers.add(ldapURI);
+            }
+            conf.setProperty("config.LdapServers", 
StringUtils.join(ldapServers, ";"));
         } catch (Exception ex) {
-            throw new RuntimeException(ex);
+            logger.error("Exception has occurred during refreshing ldap 
servers. Exception message is: {} ",
+                    ex.getMessage());
+            if (logger.isDebugEnabled()) {
+                logger.debug("", ex);
+            }
         }
-        conf.setProperty("config.LdapServers", StringUtils.join(ldapServers, 
";"));
     }
 
     private static void putIfAbsent(Properties props, String key, String 
value) {
diff --git 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/utils/dns/DnsSRVLocator.java
 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/utils/dns/DnsSRVLocator.java
index 7143f00..9b03491 100644
--- 
a/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/utils/dns/DnsSRVLocator.java
+++ 
b/backend/manager/modules/builtin-extensions/src/main/java/org/ovirt/engine/extensions/aaa/builtin/kerberosldap/utils/dns/DnsSRVLocator.java
@@ -401,6 +401,7 @@
     }
 
     public URI constructURI(String protocol, String address, String 
defaultLdapSeverPort) throws URISyntaxException {
+        address = address.indexOf("://") != -1 ? 
address.substring(address.indexOf("://") + 3) : address;
         String[] parts = address.split("\\:");
         String hostname = address;
         String port = defaultLdapSeverPort;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ba595253c2569cf581e690b68348e6ae1c804b1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
Gerrit-Reviewer: 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