You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by pz...@apache.org on 2018/03/30 13:10:42 UTC

knox git commit: KNOX-1231 - Atlas HA URL Manager must handle ZooKeeeper namespaces that begin with leading slash

Repository: knox
Updated Branches:
  refs/heads/master a587795d4 -> c7f28551f


KNOX-1231 - Atlas HA URL Manager must handle ZooKeeeper namespaces that begin with leading slash


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/c7f28551
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/c7f28551
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/c7f28551

Branch: refs/heads/master
Commit: c7f28551f9489d7327792ec97f032ac932016af9
Parents: a587795
Author: Phil Zampino <pz...@apache.org>
Authored: Thu Mar 29 15:18:07 2018 -0400
Committer: Phil Zampino <pz...@apache.org>
Committed: Thu Mar 29 15:18:07 2018 -0400

----------------------------------------------------------------------
 .../provider/impl/AtlasZookeeperURLManager.java |  6 ++--
 .../impl/AtlasZookeeperURLManagerTest.java      | 34 +++++++++++++-------
 2 files changed, 27 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/c7f28551/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManager.java
----------------------------------------------------------------------
diff --git a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManager.java b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManager.java
index 0f28c37..9eaf2b8 100644
--- a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManager.java
+++ b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManager.java
@@ -52,6 +52,9 @@ public class AtlasZookeeperURLManager extends DefaultURLManager {
     public void setConfig(HaServiceConfig config) {
         zooKeeperEnsemble = config.getZookeeperEnsemble();
         zooKeeperNamespace = config.getZookeeperNamespace();
+        if (!zooKeeperNamespace.startsWith("/")) {
+            zooKeeperNamespace = "/" + zooKeeperNamespace;
+        }
         setURLs(lookupURLs());
     }
 
@@ -63,10 +66,9 @@ public class AtlasZookeeperURLManager extends DefaultURLManager {
                                                  .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                                                  .build();
         try {
-
             zooKeeperClient.start();
 
-            byte[] bytes = zooKeeperClient.getData().forPath("/" + zooKeeperNamespace + APACHE_ATLAS_ACTIVE_SERVER_INFO);
+            byte[] bytes = zooKeeperClient.getData().forPath(zooKeeperNamespace + APACHE_ATLAS_ACTIVE_SERVER_INFO);
 
             String activeURL = new String(bytes, Charset.forName("UTF-8"));
 

http://git-wip-us.apache.org/repos/asf/knox/blob/c7f28551/gateway-provider-ha/src/test/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManagerTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-ha/src/test/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManagerTest.java b/gateway-provider-ha/src/test/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManagerTest.java
index 56f4061..e0b805c 100644
--- a/gateway-provider-ha/src/test/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManagerTest.java
+++ b/gateway-provider-ha/src/test/java/org/apache/knox/gateway/ha/provider/impl/AtlasZookeeperURLManagerTest.java
@@ -93,26 +93,38 @@ public class AtlasZookeeperURLManagerTest {
 
     @Test
     public void testAtlasURLManagerLoadingForAtlasApiService() {
-        HaServiceConfig config = new DefaultHaServiceConfig("ATLAS-API");
-        config.setEnabled(true);
-        config.setZookeeperEnsemble(cluster.getConnectString());
-        config.setZookeeperNamespace("apache_atlas");
-        URLManager manager = URLManagerLoader.loadURLManager(config);
-        Assert.assertNotNull(manager);
-        Assert.assertTrue(manager instanceof AtlasZookeeperURLManager);
+        doTestAtlasZooKeeperURLManager("ATLAS-API", true, cluster.getConnectString(), "apache_atlas");
     }
 
     @Test
     public void testAtlasURLManagerLoadingForAtlasUIService() {
-        HaServiceConfig config = new DefaultHaServiceConfig("ATLAS");
-        config.setEnabled(true);
-        config.setZookeeperEnsemble(cluster.getConnectString());
-        config.setZookeeperNamespace("apache_atlas");
+        doTestAtlasZooKeeperURLManager("ATLAS", true, cluster.getConnectString(), "apache_atlas");
+    }
+
+    @Test
+    public void testAtlasURLManagerWithLeadingSlashNamespace() {
+        doTestAtlasZooKeeperURLManager("ATLAS", true, cluster.getConnectString(), "/apache_atlas");
+    }
+
+    @Test
+    public void testAtlasAPIURLManagerWithLeadingSlashNamespace() {
+        doTestAtlasZooKeeperURLManager("ATLAS-API", true, cluster.getConnectString(), "/apache_atlas");
+    }
+
+    private void doTestAtlasZooKeeperURLManager(final String  serviceName,
+                                                final boolean enabled,
+                                                final String  ensemble,
+                                                final String  namespace) {
+        HaServiceConfig config = new DefaultHaServiceConfig(serviceName);
+        config.setEnabled(enabled);
+        config.setZookeeperEnsemble(ensemble);
+        config.setZookeeperNamespace(namespace);
         URLManager manager = URLManagerLoader.loadURLManager(config);
         Assert.assertNotNull(manager);
         Assert.assertTrue(manager instanceof AtlasZookeeperURLManager);
     }
 
+
     void setAtlasActiveHostURLInZookeeper(String activeURL) throws Exception {
 
         CuratorFramework zooKeeperClient =