This is an automated email from the ASF dual-hosted git repository.
nanda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 684d92b676 HDDS-9401. Update last known layout version in
SCMNodeManager#processLayoutVersionReport. (#6125)
684d92b676 is described below
commit 684d92b676bd20b94ac035e5ddf4e6c633dbebb7
Author: Nandakumar Vadivelu <[email protected]>
AuthorDate: Thu Feb 1 10:12:53 2024 +0530
HDDS-9401. Update last known layout version in
SCMNodeManager#processLayoutVersionReport. (#6125)
---
.../protocol/StorageContainerNodeProtocol.java | 8 +-
.../hadoop/hdds/scm/node/SCMNodeManager.java | 15 +-
.../scm/server/SCMDatanodeHeartbeatDispatcher.java | 3 +-
.../hadoop/hdds/scm/container/MockNodeManager.java | 2 -
.../hdds/scm/container/SimpleMockNodeManager.java | 1 -
.../hdds/scm/node/TestContainerPlacement.java | 13 +-
.../hdds/scm/node/TestNodeDecommissionManager.java | 7 +-
.../hadoop/hdds/scm/node/TestSCMNodeManager.java | 164 ++++++---------------
.../hadoop/hdds/scm/node/TestSCMNodeMetrics.java | 32 +---
.../hadoop/hdds/scm/node/TestStatisticsUpdate.java | 17 +--
.../testutils/ReplicationNodeManagerMock.java | 2 -
.../hdds/scm/TestStorageContainerManager.java | 13 +-
.../hadoop/ozone/recon/scm/ReconNodeManager.java | 6 +-
.../ozone/recon/scm/TestReconNodeManager.java | 10 +-
14 files changed, 73 insertions(+), 220 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/StorageContainerNodeProtocol.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/StorageContainerNodeProtocol.java
index e8d80e5dc9..fd8cf05b29 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/StorageContainerNodeProtocol.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/StorageContainerNodeProtocol.java
@@ -72,24 +72,20 @@ public interface StorageContainerNodeProtocol {
* TODO: Cleanup and update tests, HDDS-9642.
*
* @param datanodeDetails - Datanode ID.
- * @param layoutVersionInfo - Layout Version Proto.
* @return Commands to be sent to the datanode.
*/
- default List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutVersionInfo) {
- return processHeartbeat(datanodeDetails, layoutVersionInfo, null);
+ default List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails) {
+ return processHeartbeat(datanodeDetails, null);
};
/**
* Send heartbeat to indicate the datanode is alive and doing well.
* @param datanodeDetails - Datanode ID.
- * @param layoutVersionInfo - Layout Version Proto.
* @param queueReport - The CommandQueueReportProto report from the
* heartbeating datanode.
* @return Commands to be sent to the datanode.
*/
List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutVersionInfo,
CommandQueueReportProto queueReport);
/**
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java
index cc5fb9aa77..152c8fd659 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java
@@ -511,19 +511,15 @@ public class SCMNodeManager implements NodeManager {
* Send heartbeat to indicate the datanode is alive and doing well.
*
* @param datanodeDetails - DatanodeDetailsProto.
- * @param layoutInfo - Layout Version Proto.
* @return SCMheartbeat response.
*/
@Override
public List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutInfo,
- CommandQueueReportProto queueReport) {
+ CommandQueueReportProto
queueReport) {
Preconditions.checkNotNull(datanodeDetails, "Heartbeat is missing " +
"DatanodeDetails.");
try {
nodeStateManager.updateLastHeartbeatTime(datanodeDetails);
- nodeStateManager.updateLastKnownLayoutVersion(datanodeDetails,
- layoutInfo);
metrics.incNumHBProcessed();
updateDatanodeOpState(datanodeDetails);
} catch (NodeNotFoundException e) {
@@ -686,6 +682,15 @@ public class SCMNodeManager implements NodeManager {
layoutVersionReport.toString().replaceAll("\n", "\\\\n"));
}
+ try {
+ nodeStateManager.updateLastKnownLayoutVersion(datanodeDetails,
+ layoutVersionReport);
+ } catch (NodeNotFoundException e) {
+ LOG.error("SCM trying to process Layout Version from an " +
+ "unregistered node {}.", datanodeDetails);
+ return;
+ }
+
// Software layout version is hardcoded to the SCM.
int scmSlv = scmLayoutVersionManager.getSoftwareLayoutVersion();
int dnSlv = layoutVersionReport.getSoftwareLayoutVersion();
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java
index 38db618ef5..b6dc6f599b 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java
@@ -130,8 +130,7 @@ public final class SCMDatanodeHeartbeatDispatcher {
commandQueueReport = heartbeat.getCommandQueueReport();
}
// should we dispatch heartbeat through eventPublisher?
- commands = nodeManager.processHeartbeat(datanodeDetails,
- layoutVersion, commandQueueReport);
+ commands = nodeManager.processHeartbeat(datanodeDetails,
commandQueueReport);
if (heartbeat.hasNodeReport()) {
LOG.debug("Dispatching Node Report.");
eventPublisher.fireEvent(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java
index 480f82976f..84f3684ab7 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java
@@ -772,13 +772,11 @@ public class MockNodeManager implements NodeManager {
* Send heartbeat to indicate the datanode is alive and doing well.
*
* @param datanodeDetails - Datanode ID.
- * @param layoutInfo - DataNode Layout info
* @param commandQueueReportProto - Command Queue Report Proto
* @return SCMheartbeat response list
*/
@Override
public List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutInfo,
CommandQueueReportProto commandQueueReportProto) {
return null;
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
index 2bd13d4489..9649159de3 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
@@ -428,7 +428,6 @@ public class SimpleMockNodeManager implements NodeManager {
@Override
public List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutInfo,
CommandQueueReportProto commandQueueReportProto) {
return null;
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
index 36ee161e80..b241ac0f2d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
@@ -25,7 +25,6 @@ import java.time.ZoneId;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-import java.util.concurrent.TimeoutException;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
@@ -34,7 +33,6 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.LayoutVersionProto;
import org.apache.hadoop.hdds.scm.PlacementPolicy;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.HddsTestUtils;
@@ -66,7 +64,6 @@ import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.container.common.SCMTestUtils;
-import org.apache.hadoop.ozone.upgrade.LayoutVersionManager;
import org.apache.hadoop.test.PathUtils;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.AfterEach;
@@ -78,7 +75,6 @@ import static java.util.Collections.emptyList;
import static org.apache.hadoop.hdds.scm.net.NetConstants.LEAF_SCHEMA;
import static org.apache.hadoop.hdds.scm.net.NetConstants.RACK_SCHEMA;
import static org.apache.hadoop.hdds.scm.net.NetConstants.ROOT_SCHEMA;
-import static
org.apache.hadoop.ozone.container.upgrade.UpgradeUtils.toLayoutVersionProto;
import static
org.apache.hadoop.hdds.upgrade.HDDSLayoutVersionManager.maxLayoutVersion;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -178,7 +174,7 @@ public class TestContainerPlacement {
*/
@Test
public void testContainerPlacementCapacity() throws IOException,
- InterruptedException, TimeoutException {
+ InterruptedException {
final int nodeCount = 4;
final long capacity = 10L * OzoneConsts.GB;
final long used = 2L * OzoneConsts.GB;
@@ -197,11 +193,6 @@ public class TestContainerPlacement {
List<DatanodeDetails> datanodes = HddsTestUtils
.getListOfRegisteredDatanodeDetails(scmNodeManager, nodeCount);
XceiverClientManager xceiverClientManager = null;
- LayoutVersionManager versionManager =
- scmNodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo =
- toLayoutVersionProto(versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
try {
for (DatanodeDetails datanodeDetails : datanodes) {
UUID dnId = datanodeDetails.getUuid();
@@ -217,7 +208,7 @@ public class TestContainerPlacement {
Arrays.asList(report), emptyList());
datanodeInfo.updateStorageReports(
nodeReportProto.getStorageReportList());
- scmNodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ scmNodeManager.processHeartbeat(datanodeDetails);
}
//TODO: wait for heartbeat to be processed
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
index 332d762a4c..09f0dd59b9 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
@@ -41,7 +41,6 @@ import java.util.Arrays;
import java.util.ArrayList;
import static java.util.Collections.singletonList;
-import static
org.apache.hadoop.ozone.container.upgrade.UpgradeUtils.defaultLayoutVersionProto;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -165,7 +164,7 @@ public class TestNodeDecommissionManager {
// Attempt to decommission on dn(9) which has another instance at
// dn(11) with identical ports.
- nodeManager.processHeartbeat(dns.get(9), defaultLayoutVersionProto());
+ nodeManager.processHeartbeat(dns.get(9));
DatanodeDetails duplicatePorts = dns.get(9);
decom.decommissionNodes(singletonList(duplicatePorts.getIpAddress()));
assertEquals(HddsProtos.NodeOperationalState.DECOMMISSIONING,
@@ -237,7 +236,7 @@ public class TestNodeDecommissionManager {
// Now decommission one of the DNs with the duplicate port
DatanodeDetails expectedDN = dns.get(9);
- nodeManager.processHeartbeat(expectedDN, defaultLayoutVersionProto());
+ nodeManager.processHeartbeat(expectedDN);
decom.decommissionNodes(singletonList(
expectedDN.getIpAddress() + ":" + ratisPort));
@@ -287,7 +286,7 @@ public class TestNodeDecommissionManager {
// Attempt to enable maintenance on dn(9) which has another instance at
// dn(11) with identical ports.
- nodeManager.processHeartbeat(dns.get(9), defaultLayoutVersionProto());
+ nodeManager.processHeartbeat(dns.get(9));
DatanodeDetails duplicatePorts = dns.get(9);
decom.startMaintenanceNodes(singletonList(duplicatePorts.getIpAddress()),
100);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
index 930774a54b..56cf936d22 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
@@ -73,7 +73,6 @@ import
org.apache.hadoop.ozone.protocol.commands.DeleteBlocksCommand;
import org.apache.hadoop.ozone.protocol.commands.RegisteredCommand;
import org.apache.hadoop.ozone.protocol.commands.ReplicateContainerCommand;
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
-import org.apache.hadoop.ozone.upgrade.LayoutVersionManager;
import
org.apache.hadoop.ozone.protocol.commands.SetNodeOperationalStateCommand;
import
org.apache.hadoop.security.authentication.client.AuthenticationException;
import org.apache.hadoop.util.Time;
@@ -222,17 +221,12 @@ public class TestSCMNodeManager {
throws IOException, InterruptedException, AuthenticationException {
try (SCMNodeManager nodeManager = createNodeManager(getConf())) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
int registeredNodes = 5;
// Send some heartbeats from different nodes.
for (int x = 0; x < registeredNodes; x++) {
DatanodeDetails datanodeDetails = HddsTestUtils
.createRandomDatanodeAndRegister(nodeManager);
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodeManager.processHeartbeat(datanodeDetails);
}
//TODO: wait for heartbeat to be processed
@@ -379,7 +373,7 @@ public class TestSCMNodeManager {
allNodes);
// node sends incorrect layout.
- nodeManager.processHeartbeat(node, layout);
+ nodeManager.processLayoutVersionReport(node, layout);
// Its pipelines should be closed then removed, meaning there is not
// enough nodes for factor 3 pipelines.
@@ -447,8 +441,10 @@ public class TestSCMNodeManager {
assertPipelineCreationFailsWithNotEnoughNodes(1);
// Heartbeat bad MLV nodes back to healthy.
- nodeManager.processHeartbeat(badMlvNode1, CORRECT_LAYOUT_PROTO);
- nodeManager.processHeartbeat(badMlvNode2, CORRECT_LAYOUT_PROTO);
+ nodeManager.processLayoutVersionReport(badMlvNode1,
CORRECT_LAYOUT_PROTO);
+ nodeManager.processLayoutVersionReport(badMlvNode2,
CORRECT_LAYOUT_PROTO);
+ nodeManager.processHeartbeat(badMlvNode1);
+ nodeManager.processHeartbeat(badMlvNode2);
// After moving out of healthy readonly, pipeline creation should be
// triggered.
@@ -561,14 +557,8 @@ public class TestSCMNodeManager {
SCMNodeManager nodeManager = createNodeManager(conf);
DatanodeDetails datanodeDetails = HddsTestUtils
.createRandomDatanodeAndRegister(nodeManager);
- LayoutVersionManager versionManager =
nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
- nodeManager.close();
-
// These should never be processed.
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodeManager.processHeartbeat(datanodeDetails);
// Let us just wait for 2 seconds to prove that HBs are not processed.
Thread.sleep(2 * 1000);
@@ -591,16 +581,10 @@ public class TestSCMNodeManager {
final int count = 10;
try (SCMNodeManager nodeManager = createNodeManager(conf)) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
-
for (int x = 0; x < count; x++) {
DatanodeDetails datanodeDetails = HddsTestUtils
.createRandomDatanodeAndRegister(nodeManager);
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodeManager.processHeartbeat(datanodeDetails);
}
//TODO: wait for heartbeat to be processed
Thread.sleep(4 * 1000);
@@ -660,12 +644,6 @@ public class TestSCMNodeManager {
DatanodeDetails dn = HddsTestUtils.createRandomDatanodeAndRegister(
nodeManager);
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- final LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
-
long expiry = System.currentTimeMillis() / 1000 + 1000;
nodeManager.setNodeOperationalState(dn,
HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE, expiry);
@@ -673,7 +651,7 @@ public class TestSCMNodeManager {
// If found mismatch, leader SCM fires a SetNodeOperationalStateCommand
// to update the opState persisted in Datanode.
scm.getScmContext().updateLeaderAndTerm(true, 1);
- List<SCMCommand> commands = nodeManager.processHeartbeat(dn, layoutInfo);
+ List<SCMCommand> commands = nodeManager.processHeartbeat(dn);
assertEquals(SetNodeOperationalStateCommand.class,
commands.get(0).getClass());
@@ -682,7 +660,7 @@ public class TestSCMNodeManager {
// If found mismatch, follower SCM update its own opState according
// to the heartbeat, and no SCMCommand will be fired.
scm.getScmContext().updateLeaderAndTerm(false, 2);
- commands = nodeManager.processHeartbeat(dn, layoutInfo);
+ commands = nodeManager.processHeartbeat(dn);
assertEquals(0, commands.size());
@@ -716,11 +694,6 @@ public class TestSCMNodeManager {
try (SCMNodeManager nodeManager = createNodeManager(conf)) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
List<DatanodeDetails> nodeList = createNodeSet(nodeManager, nodeCount);
@@ -728,18 +701,18 @@ public class TestSCMNodeManager {
nodeManager);
// Heartbeat once
- nodeManager.processHeartbeat(staleNode, layoutInfo);
+ nodeManager.processHeartbeat(staleNode);
// Heartbeat all other nodes.
for (DatanodeDetails dn : nodeList) {
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
}
// Wait for 2 seconds .. and heartbeat good nodes again.
Thread.sleep(2 * 1000);
for (DatanodeDetails dn : nodeList) {
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
}
// Wait for 2 seconds, wait a total of 4 seconds to make sure that the
@@ -762,7 +735,7 @@ public class TestSCMNodeManager {
Thread.sleep(1000);
// heartbeat good nodes again.
for (DatanodeDetails dn : nodeList) {
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
}
// 6 seconds is the dead window for this test , so we wait a total of
@@ -821,18 +794,13 @@ public class TestSCMNodeManager {
deadNodeInterval, SECONDS);
try (SCMNodeManager nodeManager = createNodeManager(conf)) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
DatanodeDetails node1 =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
DatanodeDetails node2 =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
- nodeManager.processHeartbeat(node1, layoutInfo);
- nodeManager.processHeartbeat(node2, layoutInfo);
+ nodeManager.processHeartbeat(node1);
+ nodeManager.processHeartbeat(node2);
// Sleep so that heartbeat processing thread gets to run.
Thread.sleep(1000);
@@ -878,7 +846,7 @@ public class TestSCMNodeManager {
assertEquals(2, nodeManager.getNodeCount(NodeStatus.inServiceHealthy()));
// Step 5 : heartbeat for node1
- nodeManager.processHeartbeat(node1, layoutInfo);
+ nodeManager.processHeartbeat(node1);
// Step 6 : wait for health check process to run
Thread.sleep(1000);
@@ -1001,8 +969,6 @@ public class TestSCMNodeManager {
SCMNodeManager nodeManager = new SCMNodeManager(conf,
scmStorageConfig, eventPublisher, new NetworkTopologyImpl(conf),
scmContext, lvm);
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- lvm.getMetadataLayoutVersion(), lvm.getSoftwareLayoutVersion());
DatanodeDetails node1 =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
@@ -1022,7 +988,7 @@ public class TestSCMNodeManager {
assertEquals(5, nodeManager.getTotalDatanodeCommandCount(
node1, SCMCommandProto.Type.deleteBlocksCommand));
- nodeManager.processHeartbeat(node1, layoutInfo,
+ nodeManager.processHeartbeat(node1,
CommandQueueReportProto.newBuilder()
.addCommand(SCMCommandProto.Type.replicateContainerCommand)
.addCount(123)
@@ -1052,7 +1018,7 @@ public class TestSCMNodeManager {
// Send another report missing an earlier entry, and ensure it is not
// still reported as a stale value.
- nodeManager.processHeartbeat(node1, layoutInfo,
+ nodeManager.processHeartbeat(node1,
CommandQueueReportProto.newBuilder()
.addCommand(SCMCommandProto.Type.closeContainerCommand)
.addCount(11)
@@ -1129,7 +1095,7 @@ public class TestSCMNodeManager {
public void testScmCheckForErrorOnNullDatanodeDetails() throws IOException,
AuthenticationException {
try (SCMNodeManager nodeManager = createNodeManager(getConf())) {
NullPointerException npe = assertThrows(NullPointerException.class,
- () -> nodeManager.processHeartbeat(null, null));
+ () -> nodeManager.processHeartbeat(null));
assertThat(npe).hasMessage("Heartbeat is missing DatanodeDetails.");
}
}
@@ -1198,20 +1164,15 @@ public class TestSCMNodeManager {
* Cluster state: Healthy: All nodes are heartbeat-ing like normal.
*/
try (SCMNodeManager nodeManager = createNodeManager(conf)) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
DatanodeDetails healthyNode =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
DatanodeDetails staleNode =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
DatanodeDetails deadNode =
HddsTestUtils.createRandomDatanodeAndRegister(nodeManager);
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
- nodeManager.processHeartbeat(staleNode, layoutInfo);
- nodeManager.processHeartbeat(deadNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
+ nodeManager.processHeartbeat(staleNode);
+ nodeManager.processHeartbeat(deadNode);
// Sleep so that heartbeat processing thread gets to run.
Thread.sleep(500);
@@ -1237,12 +1198,12 @@ public class TestSCMNodeManager {
* the 3 second windows.
*/
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
- nodeManager.processHeartbeat(staleNode, layoutInfo);
- nodeManager.processHeartbeat(deadNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
+ nodeManager.processHeartbeat(staleNode);
+ nodeManager.processHeartbeat(deadNode);
Thread.sleep(1500);
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
Thread.sleep(2 * 1000);
assertEquals(1, nodeManager.getNodeCount(NodeStatus.inServiceHealthy()));
@@ -1263,10 +1224,10 @@ public class TestSCMNodeManager {
* staleNode to move to stale state and deadNode to move to dead state.
*/
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
- nodeManager.processHeartbeat(staleNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
+ nodeManager.processHeartbeat(staleNode);
Thread.sleep(1500);
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
Thread.sleep(2 * 1000);
// 3.5 seconds have elapsed for stale node, so it moves into Stale.
@@ -1298,9 +1259,9 @@ public class TestSCMNodeManager {
* Cluster State : let us heartbeat all the nodes and verify that we get
* back all the nodes in healthy state.
*/
- nodeManager.processHeartbeat(healthyNode, layoutInfo);
- nodeManager.processHeartbeat(staleNode, layoutInfo);
- nodeManager.processHeartbeat(deadNode, layoutInfo);
+ nodeManager.processHeartbeat(healthyNode);
+ nodeManager.processHeartbeat(staleNode);
+ nodeManager.processHeartbeat(deadNode);
Thread.sleep(500);
//Assert all nodes are healthy.
assertEquals(3, nodeManager.getAllNodes().size());
@@ -1319,13 +1280,9 @@ public class TestSCMNodeManager {
private void heartbeatNodeSet(SCMNodeManager manager,
List<DatanodeDetails> list,
int sleepDuration) throws InterruptedException
{
- LayoutVersionManager versionManager = manager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
while (!Thread.currentThread().isInterrupted()) {
for (DatanodeDetails dn : list) {
- manager.processHeartbeat(dn, layoutInfo);
+ manager.processHeartbeat(dn);
}
Thread.sleep(sleepDuration);
}
@@ -1408,16 +1365,10 @@ public class TestSCMNodeManager {
}
};
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
-
// No Thread just one time HBs the node manager, so that these will be
// marked as dead nodes eventually.
for (DatanodeDetails dn : deadNodeList) {
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
}
@@ -1544,11 +1495,6 @@ public class TestSCMNodeManager {
final long remaining = capacity - used;
List<DatanodeDetails> dnList = new ArrayList<>(nodeCount);
try (SCMNodeManager nodeManager = createNodeManager(conf)) {
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
EventQueue eventQueue = (EventQueue) scm.getEventQueue();
for (int x = 0; x < nodeCount; x++) {
@@ -1561,7 +1507,7 @@ public class TestSCMNodeManager {
.createStorageReport(dnId, storagePath, capacity, used, free,
null);
nodeManager.register(dn, HddsTestUtils.createNodeReport(
Arrays.asList(report), emptyList()), null);
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
}
//TODO: wait for EventQueue to be processed
eventQueue.processAll(8000L);
@@ -1653,12 +1599,7 @@ public class TestSCMNodeManager {
}
nodeManager.register(dn, HddsTestUtils.createNodeReport(reports,
emptyList()), null);
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
- nodeManager.processHeartbeat(dn, layoutInfo);
+ nodeManager.processHeartbeat(dn);
//TODO: wait for EventQueue to be processed
eventQueue.processAll(8000L);
@@ -1711,12 +1652,7 @@ public class TestSCMNodeManager {
nodeReportHandler.onMessage(
new NodeReportFromDatanode(datanodeDetails, nodeReportProto),
publisher);
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodeManager.processHeartbeat(datanodeDetails);
Thread.sleep(100);
}
@@ -1791,13 +1727,7 @@ public class TestSCMNodeManager {
foundRemaining = nodeManager.getStats().getRemaining().get();
assertEquals(0, foundRemaining);
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
-
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodeManager.processHeartbeat(datanodeDetails);
// Wait up to 5 seconds so that the dead node becomes healthy
// Verify usage info should be updated.
@@ -1846,14 +1776,9 @@ public class TestSCMNodeManager {
new CloseContainerCommand(1L,
PipelineID.randomId())));
- LayoutVersionManager versionManager =
- nodemanager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
eq.processAll(1000L);
List<SCMCommand> command =
- nodemanager.processHeartbeat(datanodeDetails, layoutInfo);
+ nodemanager.processHeartbeat(datanodeDetails);
// With dh registered, SCM will send create pipeline command to dn
assertThat(command.size()).isGreaterThanOrEqualTo(1);
assertTrue(command.get(0).getClass().equals(
@@ -1983,16 +1908,11 @@ public class TestSCMNodeManager {
Arrays.asList(report), emptyList()),
HddsTestUtils.getRandomPipelineReports());
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = toLayoutVersionProto(
- versionManager.getMetadataLayoutVersion(),
- versionManager.getSoftwareLayoutVersion());
nodeManager.register(datanodeDetails,
HddsTestUtils.createNodeReport(Arrays.asList(report),
emptyList()),
- HddsTestUtils.getRandomPipelineReports(), layoutInfo);
- nodeManager.processHeartbeat(datanodeDetails, layoutInfo);
+ HddsTestUtils.getRandomPipelineReports());
+ nodeManager.processHeartbeat(datanodeDetails);
if (i == 5) {
nodeManager.setNodeOperationalState(datanodeDetails,
HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeMetrics.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeMetrics.java
index 53f20d531e..20c6aa2de3 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeMetrics.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeMetrics.java
@@ -26,8 +26,6 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeType;
-import org.apache.hadoop.hdds.protocol.proto
- .StorageContainerDatanodeProtocolProtos.LayoutVersionProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.NodeReportProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.PipelineReportsProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.StorageReportProto;
@@ -38,7 +36,6 @@ import org.apache.hadoop.hdds.scm.server.SCMStorageConfig;
import org.apache.hadoop.hdds.server.events.EventQueue;
import org.apache.hadoop.hdds.upgrade.HDDSLayoutVersionManager;
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
-import org.apache.hadoop.ozone.upgrade.LayoutVersionManager;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -98,16 +95,8 @@ public class TestSCMNodeMetrics {
@Test
public void testHBProcessing() throws InterruptedException {
long hbProcessed = getCounter("NumHBProcessed");
-
createNodeReport();
-
- LayoutVersionManager versionManager =
nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = LayoutVersionProto.newBuilder()
- .setSoftwareLayoutVersion(versionManager.getSoftwareLayoutVersion())
- .setMetadataLayoutVersion(versionManager.getMetadataLayoutVersion())
- .build();
- nodeManager.processHeartbeat(registeredDatanode, layoutInfo);
-
+ nodeManager.processHeartbeat(registeredDatanode);
assertEquals(hbProcessed + 1, getCounter("NumHBProcessed"),
"NumHBProcessed");
}
@@ -117,17 +106,8 @@ public class TestSCMNodeMetrics {
*/
@Test
public void testHBProcessingFailure() {
-
long hbProcessedFailed = getCounter("NumHBProcessingFailed");
-
- LayoutVersionManager versionManager =
nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = LayoutVersionProto.newBuilder()
- .setSoftwareLayoutVersion(versionManager.getSoftwareLayoutVersion())
- .setMetadataLayoutVersion(versionManager.getMetadataLayoutVersion())
- .build();
- nodeManager.processHeartbeat(MockDatanodeDetails
- .randomDatanodeDetails(), layoutInfo);
-
+ nodeManager.processHeartbeat(MockDatanodeDetails.randomDatanodeDetails());
assertEquals(hbProcessedFailed + 1, getCounter("NumHBProcessingFailed"),
"NumHBProcessingFailed");
}
@@ -252,13 +232,7 @@ public class TestSCMNodeMetrics {
getMetrics(SCMNodeMetrics.class.getSimpleName()));
assertGauge("TotalUsed", 10L,
getMetrics(SCMNodeMetrics.class.getSimpleName()));
-
- LayoutVersionManager versionManager =
nodeManager.getLayoutVersionManager();
- LayoutVersionProto layoutInfo = LayoutVersionProto.newBuilder()
- .setSoftwareLayoutVersion(versionManager.getSoftwareLayoutVersion())
- .setMetadataLayoutVersion(versionManager.getMetadataLayoutVersion())
- .build();
- nodeManager.processHeartbeat(registeredDatanode, layoutInfo);
+ nodeManager.processHeartbeat(registeredDatanode);
sleep(4000);
metricsSource = getMetrics(SCMNodeMetrics.SOURCE_NAME);
assertGauge("InServiceHealthyReadonlyNodes", 0, metricsSource);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestStatisticsUpdate.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestStatisticsUpdate.java
index 8aff3dd28a..0ef28f658d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestStatisticsUpdate.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestStatisticsUpdate.java
@@ -22,8 +22,6 @@ import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto
- .StorageContainerDatanodeProtocolProtos;
import org.apache.hadoop.hdds.protocol.proto
.StorageContainerDatanodeProtocolProtos.StorageReportProto;
import org.apache.hadoop.hdds.protocol.proto
@@ -40,7 +38,6 @@ import
org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.hdds.server.events.EventPublisher;
import org.apache.hadoop.hdds.server.events.EventQueue;
import org.apache.hadoop.ozone.container.common.SCMTestUtils;
-import org.apache.hadoop.ozone.upgrade.LayoutVersionManager;
import
org.apache.hadoop.security.authentication.client.AuthenticationException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -122,19 +119,13 @@ public class TestStatisticsUpdate {
//TODO: Support logic to mark a node as dead in NodeManager.
- LayoutVersionManager versionManager =
nodeManager.getLayoutVersionManager();
- StorageContainerDatanodeProtocolProtos.LayoutVersionProto layoutInfo =
- StorageContainerDatanodeProtocolProtos.LayoutVersionProto.newBuilder()
- .setSoftwareLayoutVersion(versionManager.getSoftwareLayoutVersion())
- .setMetadataLayoutVersion(versionManager.getMetadataLayoutVersion())
- .build();
- nodeManager.processHeartbeat(datanode2, layoutInfo);
+ nodeManager.processHeartbeat(datanode2);
Thread.sleep(1000);
- nodeManager.processHeartbeat(datanode2, layoutInfo);
+ nodeManager.processHeartbeat(datanode2);
Thread.sleep(1000);
- nodeManager.processHeartbeat(datanode2, layoutInfo);
+ nodeManager.processHeartbeat(datanode2);
Thread.sleep(1000);
- nodeManager.processHeartbeat(datanode2, layoutInfo);
+ nodeManager.processHeartbeat(datanode2);
//THEN statistics in SCM should changed.
stat = nodeManager.getStats();
assertEquals(200L, stat.getCapacity().get());
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
index 0a86504335..92a6fd455d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
@@ -371,13 +371,11 @@ public class ReplicationNodeManagerMock implements
NodeManager {
* Send heartbeat to indicate the datanode is alive and doing well.
*
* @param dd - Datanode Details.
- * @param layoutInfo - Layout Version Proto
* @param commandQueueReportProto - Command Queue Report Proto
* @return SCMheartbeat response list
*/
@Override
public List<SCMCommand> processHeartbeat(DatanodeDetails dd,
- LayoutVersionProto layoutInfo,
CommandQueueReportProto commandQueueReportProto) {
return null;
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestStorageContainerManager.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestStorageContainerManager.java
index 3e9d15d490..07787b87f3 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestStorageContainerManager.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestStorageContainerManager.java
@@ -30,7 +30,6 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeType;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerReportsProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.IncrementalContainerReportProto;
@@ -85,7 +84,6 @@ import
org.apache.hadoop.ozone.protocol.commands.CloseContainerCommand;
import org.apache.hadoop.ozone.protocol.commands.CommandForDatanode;
import org.apache.hadoop.ozone.protocol.commands.DeleteBlocksCommand;
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
-import org.apache.hadoop.ozone.upgrade.LayoutVersionManager;
import org.apache.hadoop.security.UserGroupInformation;
import
org.apache.hadoop.security.authentication.client.AuthenticationException;
import org.apache.hadoop.util.ExitUtil;
@@ -514,17 +512,8 @@ public class TestStorageContainerManager {
GenericTestUtils.waitFor(() -> {
NodeManager nodeManager = cluster.getStorageContainerManager()
.getScmNodeManager();
- LayoutVersionManager versionManager =
- nodeManager.getLayoutVersionManager();
- StorageContainerDatanodeProtocolProtos.LayoutVersionProto layoutInfo
- = StorageContainerDatanodeProtocolProtos.LayoutVersionProto
- .newBuilder()
-
.setSoftwareLayoutVersion(versionManager.getSoftwareLayoutVersion())
-
.setMetadataLayoutVersion(versionManager.getMetadataLayoutVersion())
- .build();
List<SCMCommand> commands = nodeManager.processHeartbeat(
- nodeManager.getNodes(NodeStatus.inServiceHealthy()).get(0),
- layoutInfo);
+ nodeManager.getNodes(NodeStatus.inServiceHealthy()).get(0));
if (commands != null) {
for (SCMCommand cmd : commands) {
if (cmd.getType() == SCMCommandProto.Type.deleteBlocksCommand) {
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconNodeManager.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconNodeManager.java
index 2db8586161..ab919b7d97 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconNodeManager.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconNodeManager.java
@@ -220,12 +220,11 @@ public class ReconNodeManager extends SCMNodeManager {
* Send heartbeat to indicate the datanode is alive and doing well.
*
* @param datanodeDetails - DatanodeDetailsProto.
- * @param layoutInfo - Layout Version Proto
* @return SCMheartbeat response.
*/
@Override
public List<SCMCommand> processHeartbeat(DatanodeDetails datanodeDetails,
- LayoutVersionProto layoutInfo, CommandQueueReportProto queueReport) {
+ CommandQueueReportProto queueReport) {
List<SCMCommand> cmds = new ArrayList<>();
long currentTime = Time.now();
if (needUpdate(datanodeDetails, currentTime)) {
@@ -237,8 +236,7 @@ public class ReconNodeManager extends SCMNodeManager {
}
// Update heartbeat map with current time
datanodeHeartbeatMap.put(datanodeDetails.getUuid(), Time.now());
- cmds.addAll(super.processHeartbeat(datanodeDetails,
- layoutInfo, queueReport));
+ cmds.addAll(super.processHeartbeat(datanodeDetails, queueReport));
return cmds.stream()
.filter(c -> ALLOWED_COMMANDS.contains(c.getType()))
.collect(toList());
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
index 80ec025f91..99bb482cb5 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
@@ -22,7 +22,6 @@ import static
org.apache.hadoop.hdds.protocol.MockDatanodeDetails.randomDatanode
import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.DECOMMISSIONING;
import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.IN_SERVICE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_NAMES;
-import static
org.apache.hadoop.ozone.container.upgrade.UpgradeUtils.defaultLayoutVersionProto;
import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_METADATA_DIRS;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -138,8 +137,7 @@ public class TestReconNodeManager {
// Upon processing the heartbeat, the illegal command should be filtered
out
List<SCMCommand> returnedCmds =
- reconNodeManager.processHeartbeat(datanodeDetails,
- defaultLayoutVersionProto());
+ reconNodeManager.processHeartbeat(datanodeDetails);
assertEquals(1, returnedCmds.size());
assertEquals(SCMCommandProto.Type.reregisterCommand,
returnedCmds.get(0).getType());
@@ -148,8 +146,7 @@ public class TestReconNodeManager {
datanodeDetails.setPersistedOpState(
HddsProtos.NodeOperationalState.DECOMMISSIONED);
datanodeDetails.setPersistedOpStateExpiryEpochSec(12345L);
- reconNodeManager.processHeartbeat(datanodeDetails,
- defaultLayoutVersionProto());
+ reconNodeManager.processHeartbeat(datanodeDetails);
// Check both persistedOpState and NodeStatus#operationalState
assertEquals(HddsProtos.NodeOperationalState.DECOMMISSIONED,
dnDetails.getPersistedOpState());
@@ -238,8 +235,7 @@ public class TestReconNodeManager {
datanodeDetails.setHostName("hostname2");
// Upon processing the heartbeat, the illegal command should be filtered
out
List<SCMCommand> returnedCmds =
- reconNodeManager.processHeartbeat(datanodeDetails,
- defaultLayoutVersionProto());
+ reconNodeManager.processHeartbeat(datanodeDetails);
assertEquals(1, returnedCmds.size());
assertEquals(SCMCommandProto.Type.reregisterCommand,
returnedCmds.get(0).getType());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]