|
@@ -20,7 +20,8 @@ import org.apache.hadoop.conf.Configuration;
|
|
import org.apache.hadoop.fs.FileUtil;
|
|
import org.apache.hadoop.fs.FileUtil;
|
|
import org.apache.hadoop.hdfs.protocol.DatanodeID;
|
|
import org.apache.hadoop.hdfs.protocol.DatanodeID;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
import org.apache.hadoop.ipc.RPC;
|
|
-import org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine;
|
|
|
|
|
|
+import org.apache.hadoop.ozone.container.common.statemachine
|
|
|
|
+ .DatanodeStateMachine;
|
|
import org.apache.hadoop.ozone.container.common.statemachine
|
|
import org.apache.hadoop.ozone.container.common.statemachine
|
|
.EndpointStateMachine;
|
|
.EndpointStateMachine;
|
|
import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
|
|
import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
|
|
@@ -30,16 +31,18 @@ import org.apache.hadoop.ozone.container.common.states.endpoint
|
|
.RegisterEndpointTask;
|
|
.RegisterEndpointTask;
|
|
import org.apache.hadoop.ozone.container.common.states.endpoint
|
|
import org.apache.hadoop.ozone.container.common.states.endpoint
|
|
.VersionEndpointTask;
|
|
.VersionEndpointTask;
|
|
|
|
+import org.apache.hadoop.ozone.protocol.proto
|
|
|
|
+ .StorageContainerDatanodeProtocolProtos;
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
.StorageContainerDatanodeProtocolProtos.ContainerNodeIDProto;
|
|
.StorageContainerDatanodeProtocolProtos.ContainerNodeIDProto;
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
.StorageContainerDatanodeProtocolProtos.SCMHeartbeatResponseProto;
|
|
.StorageContainerDatanodeProtocolProtos.SCMHeartbeatResponseProto;
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
.StorageContainerDatanodeProtocolProtos.SCMNodeReport;
|
|
.StorageContainerDatanodeProtocolProtos.SCMNodeReport;
|
|
-import org.apache.hadoop.ozone.protocol.proto
|
|
|
|
- .StorageContainerDatanodeProtocolProtos.SCMStorageReport;
|
|
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
.StorageContainerDatanodeProtocolProtos.SCMRegisteredCmdResponseProto;
|
|
.StorageContainerDatanodeProtocolProtos.SCMRegisteredCmdResponseProto;
|
|
|
|
+import org.apache.hadoop.ozone.protocol.proto
|
|
|
|
+ .StorageContainerDatanodeProtocolProtos.SCMStorageReport;
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
.StorageContainerDatanodeProtocolProtos.SCMVersionResponseProto;
|
|
.StorageContainerDatanodeProtocolProtos.SCMVersionResponseProto;
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
@@ -58,6 +61,9 @@ import java.net.InetSocketAddress;
|
|
import java.util.UUID;
|
|
import java.util.UUID;
|
|
|
|
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY;
|
|
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY;
|
|
|
|
+import static org.apache.hadoop.ozone.protocol.proto
|
|
|
|
+ .StorageContainerDatanodeProtocolProtos.ReportState.states
|
|
|
|
+ .noContainerReports;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Tests the endpoints.
|
|
* Tests the endpoints.
|
|
@@ -67,6 +73,27 @@ public class TestEndPoint {
|
|
private static RPC.Server scmServer;
|
|
private static RPC.Server scmServer;
|
|
private static ScmTestMock scmServerImpl;
|
|
private static ScmTestMock scmServerImpl;
|
|
private static File testDir;
|
|
private static File testDir;
|
|
|
|
+ private static StorageContainerDatanodeProtocolProtos.ReportState
|
|
|
|
+ defaultReportState;
|
|
|
|
+
|
|
|
|
+ @AfterClass
|
|
|
|
+ public static void tearDown() throws Exception {
|
|
|
|
+ if (scmServer != null) {
|
|
|
|
+ scmServer.stop();
|
|
|
|
+ }
|
|
|
|
+ FileUtil.fullyDelete(testDir);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @BeforeClass
|
|
|
|
+ public static void setUp() throws Exception {
|
|
|
|
+ serverAddress = SCMTestUtils.getReuseableAddress();
|
|
|
|
+ scmServerImpl = new ScmTestMock();
|
|
|
|
+ scmServer = SCMTestUtils.startScmRpcServer(SCMTestUtils.getConf(),
|
|
|
|
+ scmServerImpl, serverAddress, 10);
|
|
|
|
+ testDir = PathUtils.getTestDir(TestEndPoint.class);
|
|
|
|
+ defaultReportState = StorageContainerDatanodeProtocolProtos.ReportState.
|
|
|
|
+ newBuilder().setState(noContainerReports).build();
|
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
@Test
|
|
/**
|
|
/**
|
|
@@ -255,7 +282,7 @@ public class TestEndPoint {
|
|
srb.setCapacity(2000).setScmUsed(500).setRemaining(1500).build();
|
|
srb.setCapacity(2000).setScmUsed(500).setRemaining(1500).build();
|
|
nrb.addStorageReport(srb);
|
|
nrb.addStorageReport(srb);
|
|
SCMHeartbeatResponseProto responseProto = rpcEndPoint.getEndPoint()
|
|
SCMHeartbeatResponseProto responseProto = rpcEndPoint.getEndPoint()
|
|
- .sendHeartbeat(dataNode, nrb.build());
|
|
|
|
|
|
+ .sendHeartbeat(dataNode, nrb.build(), defaultReportState);
|
|
Assert.assertNotNull(responseProto);
|
|
Assert.assertNotNull(responseProto);
|
|
Assert.assertEquals(1, responseProto.getCommandsCount());
|
|
Assert.assertEquals(1, responseProto.getCommandsCount());
|
|
Assert.assertNotNull(responseProto.getCommandsList().get(0));
|
|
Assert.assertNotNull(responseProto.getCommandsList().get(0));
|
|
@@ -322,21 +349,4 @@ public class TestEndPoint {
|
|
scmServerImpl.setRpcResponseDelay(0);
|
|
scmServerImpl.setRpcResponseDelay(0);
|
|
Assert.assertThat(end - start, new LessOrEqual<>(rpcTimeout + tolerance));
|
|
Assert.assertThat(end - start, new LessOrEqual<>(rpcTimeout + tolerance));
|
|
}
|
|
}
|
|
-
|
|
|
|
- @AfterClass
|
|
|
|
- public static void tearDown() throws Exception {
|
|
|
|
- if (scmServer != null) {
|
|
|
|
- scmServer.stop();
|
|
|
|
- }
|
|
|
|
- FileUtil.fullyDelete(testDir);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @BeforeClass
|
|
|
|
- public static void setUp() throws Exception {
|
|
|
|
- serverAddress = SCMTestUtils.getReuseableAddress();
|
|
|
|
- scmServerImpl = new ScmTestMock();
|
|
|
|
- scmServer = SCMTestUtils.startScmRpcServer(SCMTestUtils.getConf(),
|
|
|
|
- scmServerImpl, serverAddress, 10);
|
|
|
|
- testDir = PathUtils.getTestDir(TestEndPoint.class);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|