[41/50] [abbrv] hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread xyao
HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.


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

Branch: refs/heads/HDFS-7240
Commit: a92200f4a6cec57b7080d1cd6e2a20d79d772dd6
Parents: 0006346
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:29:28 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a92200f4/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ecb9f50..4723b4c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -932,7 +932,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a92200f4/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 router.init(routerConfig);
+if (routerConfig.getBoolean(
+RBFConfigKeys.DFS_ROUTER_SAFEMODE_ENABLE,
+RBFConfigKeys.DFS_ROUTER_SAFEMODE_ENABLE_DEFAULT)) {
+  assertEquals(RouterServiceState.SAFEMODE, 

hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread yqlin
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.9 1ea4b2d34 -> edf3e6de7


HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.

(cherry picked from commit a92200f4a6cec57b7080d1cd6e2a20d79d772dd6)
(cherry picked from commit 9baebf4b27c3864738e14a409144347accd40fd6)


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

Branch: refs/heads/branch-2.9
Commit: edf3e6de7bbca2831afe09b2b3b3189d3947dc4f
Parents: 1ea4b2d
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:50:34 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/edf3e6de/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ed2e4b8..21bf789 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -924,7 +924,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/edf3e6de/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 

hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread yqlin
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 1d78825bf -> 9baebf4b2


HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.

(cherry picked from commit a92200f4a6cec57b7080d1cd6e2a20d79d772dd6)


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

Branch: refs/heads/branch-2
Commit: 9baebf4b27c3864738e14a409144347accd40fd6
Parents: 1d78825
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:47:55 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/9baebf4b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ed2e4b8..21bf789 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -924,7 +924,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/9baebf4b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 router.init(routerConfig);
+if (routerConfig.getBoolean(
+

hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread yqlin
Repository: hadoop
Updated Branches:
  refs/heads/branch-3.0 877f963a0 -> 0a216c328


HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.

(cherry picked from commit a92200f4a6cec57b7080d1cd6e2a20d79d772dd6)


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

Branch: refs/heads/branch-3.0
Commit: 0a216c328540413f3cd1ca31217715d585ebc63f
Parents: 877f963
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:34:25 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0a216c32/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ecb9f50..4723b4c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -932,7 +932,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0a216c32/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 router.init(routerConfig);
+if (routerConfig.getBoolean(
+

hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread yqlin
Repository: hadoop
Updated Branches:
  refs/heads/branch-3.1 25bf1d3ac -> 9a86cb049


HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.

(cherry picked from commit a92200f4a6cec57b7080d1cd6e2a20d79d772dd6)


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

Branch: refs/heads/branch-3.1
Commit: 9a86cb04944a8049167c0c2129f3aaa6c92440a9
Parents: 25bf1d3
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:31:59 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/9a86cb04/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ecb9f50..4723b4c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -932,7 +932,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/9a86cb04/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 router.init(routerConfig);
+if (routerConfig.getBoolean(
+

hadoop git commit: HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo Goiri.

2018-04-10 Thread yqlin
Repository: hadoop
Updated Branches:
  refs/heads/trunk 0006346ab -> a92200f4a


HDFS-13410. RBF: Support federation with no subclusters. Contributed by Inigo 
Goiri.


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

Branch: refs/heads/trunk
Commit: a92200f4a6cec57b7080d1cd6e2a20d79d772dd6
Parents: 0006346
Author: Yiqun Lin 
Authored: Tue Apr 10 14:29:28 2018 +0800
Committer: Yiqun Lin 
Committed: Tue Apr 10 14:29:28 2018 +0800

--
 .../federation/router/RouterRpcClient.java  |  4 +-
 .../server/federation/router/TestRouter.java| 70 +++-
 .../server/federation/router/TestRouterRpc.java | 21 +-
 3 files changed, 77 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a92200f4/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
index ecb9f50..4723b4c 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcClient.java
@@ -932,7 +932,9 @@ public class RouterRpcClient {
 final UserGroupInformation ugi = RouterRpcServer.getRemoteUser();
 final Method m = method.getMethod();
 
-if (locations.size() == 1) {
+if (locations.isEmpty()) {
+  throw new IOException("No remote locations available");
+} else if (locations.size() == 1) {
   // Shortcut, just one call
   T location = locations.iterator().next();
   String ns = location.getNameserviceId();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a92200f4/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
index 39398f7..f8cf009 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouter.java
@@ -17,23 +17,25 @@
  */
 package org.apache.hadoop.hdfs.server.federation.router;
 
+import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
+import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
+import org.apache.hadoop.hdfs.DFSClient;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
 import org.apache.hadoop.hdfs.server.federation.MockResolver;
 import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver;
+import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.service.Service.STATE;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -77,27 +79,31 @@ public class TestRouter {
 "0.0.0.0");
   }
 
-  @AfterClass
-  public static void destroy() {
-  }
-
-  @Before
-  public void setup() throws IOException, URISyntaxException {
-  }
-
-  @After
-  public void cleanup() {
-  }
-
   private static void testRouterStartup(Configuration routerConfig)
   throws InterruptedException, IOException {
 Router router = new Router();
 assertEquals(STATE.NOTINITED, router.getServiceState());
+assertEquals(RouterServiceState.UNINITIALIZED, router.getRouterState());
 router.init(routerConfig);
+if (routerConfig.getBoolean(
+RBFConfigKeys.DFS_ROUTER_SAFEMODE_ENABLE,
+