sreejasahithi commented on code in PR #10169:
URL: https://github.com/apache/ozone/pull/10169#discussion_r3186504597
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/PipelineSyncTask.java:
##########
@@ -109,13 +110,14 @@ protected void runTask() throws IOException,
NodeNotFoundException {
*/
private void syncOperationalStateOnDeadNodes()
throws IOException, NodeNotFoundException {
- List<DatanodeDetails> deadNodesOnRecon = nodeManager.getNodes(null, DEAD);
+ final Set<String> deadNodesOnRecon = nodeManager.getNodes(null,
DEAD).stream()
+ .map(info -> info.getID().getID())
+ .collect(Collectors.toSet());
if (!deadNodesOnRecon.isEmpty()) {
List<Node> scmNodes = scmClient.getNodes();
List<Node> filteredScmNodes = scmNodes.stream()
- .filter(n -> deadNodesOnRecon.contains(
- DatanodeDetails.getFromProtoBuf(n.getNodeID())))
+ .filter(n -> deadNodesOnRecon.contains(n.getNodeID().getUuid()))
Review Comment:
n.getNodeID().getUuid() reads the deprecated string uuid field
instead we could use something like
`.filter(n ->
deadNodesOnRecon.contains(DatanodeID.fromProto(n.getNodeID().getId()).getID()))`
##########
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java:
##########
@@ -678,9 +677,9 @@ public List<HddsProtos.Node> queryNode(
}
try {
List<HddsProtos.Node> result = new ArrayList<>();
- for (DatanodeDetails node : queryNode(opState, state)) {
+ for (DatanodeDetails node : scm.getScmNodeManager().getNodes(opState,
state)) {
NodeStatus ns = scm.getScmNodeManager().getNodeStatus(node);
- DatanodeInfo datanodeInfo =
scm.getScmNodeManager().getDatanodeInfo(node);
+ DatanodeInfo datanodeInfo = node instanceof DatanodeInfo ?
(DatanodeInfo) node : null;
Review Comment:
why do we need instanceof check here, we already know that getNodes returns
DatanodeInfo?
##########
hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java:
##########
@@ -428,9 +431,11 @@ public DatanodeUsageInfo getUsageInfo(DatanodeDetails
datanodeDetails) {
return new DatanodeUsageInfo(datanodeDetails, stat);
}
- @Override
@Nullable
public DatanodeInfo getDatanodeInfo(DatanodeDetails dd) {
+ if (dd instanceof DatanodeInfo) {
+ return (DatanodeInfo) dd;
+ }
Review Comment:
This is method is public but only used by MockNodeManager.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]