This is an automated email from the ASF dual-hosted git repository.

adoroszlai 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 c50a81b42d HDDS-9470. Improve thread names in Recon. (#5456)
c50a81b42d is described below

commit c50a81b42d12e16efb8399e1bdcbc818174f0277
Author: Devesh Kumar Singh <[email protected]>
AuthorDate: Wed Oct 18 23:17:18 2023 +0530

    HDDS-9470. Improve thread names in Recon. (#5456)
---
 .../org/apache/hadoop/ozone/recon/ReconUtils.java  | 11 +++++++++++
 .../hadoop/ozone/recon/scm/ReconScmTask.java       |  2 +-
 .../scm/ReconStorageContainerManagerFacade.java    | 23 +++++++++++-----------
 .../spi/impl/OzoneManagerServiceProviderImpl.java  | 13 ++++++++++--
 .../hadoop/ozone/recon/tasks/NSSummaryTask.java    |  5 ++++-
 .../ozone/recon/tasks/ReconTaskControllerImpl.java |  5 ++++-
 .../hadoop/ozone/recon/api/TestEndpoints.java      |  8 ++++++--
 .../ozone/recon/api/TestOpenContainerCount.java    |  7 +++++++
 .../ozone/recon/api/TestTriggerDBSyncEndpoint.java |  8 +++++++-
 .../hadoop/ozone/recon/common/CommonUtils.java     | 10 ++++++++++
 .../impl/TestOzoneManagerServiceProviderImpl.java  | 15 +++++++++++---
 11 files changed, 84 insertions(+), 23 deletions(-)

diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
index 7876eff25d..0a83088a0a 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
@@ -34,6 +34,9 @@ import com.google.inject.Singleton;
 import org.apache.hadoop.hdds.HddsConfigKeys;
 import org.apache.hadoop.hdds.HddsUtils;
 import org.apache.hadoop.hdds.conf.ConfigurationSource;
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.scm.ha.SCMNodeDetails;
+import org.apache.hadoop.hdds.utils.HddsServerUtil;
 import org.apache.hadoop.hdfs.web.URLConnectionFactory;
 import org.apache.hadoop.io.IOUtils;
 
@@ -342,4 +345,12 @@ public class ReconUtils {
     }
     return index;
   }
+
+  public SCMNodeDetails getReconNodeDetails(OzoneConfiguration conf) {
+    SCMNodeDetails.Builder builder = new SCMNodeDetails.Builder();
+    builder.setSCMNodeId("Recon");
+    builder.setDatanodeProtocolServerAddress(
+        HddsServerUtil.getReconDataNodeBindAddress(conf));
+    return builder.build();
+  }
 }
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconScmTask.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconScmTask.java
index df21c2158e..7c070c7d2b 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconScmTask.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconScmTask.java
@@ -55,7 +55,7 @@ public abstract class ReconScmTask {
     if (!isRunning()) {
       LOG.info("Starting {} Thread.", getTaskName());
       running = true;
-      taskThread = new Thread(this::run);
+      taskThread = new Thread(this::run, "Recon-" + getTaskName());
       taskThread.setName(getTaskName());
       taskThread.setDaemon(true);
       taskThread.start();
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
index 64dd8cee82..1c72d990b3 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
@@ -37,6 +37,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.inject.Singleton;
 import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
@@ -80,7 +81,6 @@ import org.apache.hadoop.hdds.scm.server.SCMStorageConfig;
 import org.apache.hadoop.hdds.server.events.EventQueue;
 import 
org.apache.hadoop.hdds.server.events.FixedThreadPoolWithAffinityExecutor;
 import org.apache.hadoop.hdds.upgrade.HDDSLayoutVersionManager;
-import org.apache.hadoop.hdds.utils.HddsServerUtil;
 import org.apache.hadoop.hdds.utils.IOUtils;
 import org.apache.hadoop.hdds.utils.db.DBCheckpoint;
 import org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition;
@@ -159,6 +159,7 @@ public class ReconStorageContainerManagerFacade
   private ScheduledExecutorService scheduler;
 
   private AtomicBoolean isSyncDataFromSCMRunning;
+  private final String threadNamePrefix;
 
   // To Do :- Refactor the constructor in a separate JIRA
   @Inject
@@ -172,8 +173,9 @@ public class ReconStorageContainerManagerFacade
       ReconContainerMetadataManager reconContainerMetadataManager,
       ReconUtils reconUtils,
       ReconSafeModeManager safeModeManager) throws IOException {
-    reconNodeDetails = getReconNodeDetails(conf);
-    this.eventQueue = new EventQueue();
+    reconNodeDetails = reconUtils.getReconNodeDetails(conf);
+    this.threadNamePrefix = reconNodeDetails.threadNamePrefix();
+    this.eventQueue = new EventQueue(threadNamePrefix);
     eventQueue.setSilent(true);
     this.scmContext = new SCMContext.Builder()
         .setIsPreCheckComplete(true)
@@ -283,7 +285,8 @@ public class ReconStorageContainerManagerFacade
     List<BlockingQueue<ContainerReport>> queues
         = ScmUtils.initContainerReportQueue(ozoneConfiguration);
     List<ThreadPoolExecutor> executors
-        = FixedThreadPoolWithAffinityExecutor.initializeExecutorPool(queues);
+        = FixedThreadPoolWithAffinityExecutor.initializeExecutorPool(
+        threadNamePrefix, queues);
     Map<String, FixedThreadPoolWithAffinityExecutor> reportExecutorMap
         = new ConcurrentHashMap<>();
     FixedThreadPoolWithAffinityExecutor<ContainerReportFromDatanode,
@@ -349,13 +352,6 @@ public class ReconStorageContainerManagerFacade
     return reconScmConfiguration;
   }
 
-  private SCMNodeDetails getReconNodeDetails(OzoneConfiguration conf) {
-    SCMNodeDetails.Builder builder = new SCMNodeDetails.Builder();
-    builder.setDatanodeProtocolServerAddress(
-        HddsServerUtil.getReconDataNodeBindAddress(conf));
-    return builder.build();
-  }
-
   /**
    * Start the Recon SCM subsystems.
    */
@@ -366,7 +362,10 @@ public class ReconStorageContainerManagerFacade
           "Recon ScmDatanodeProtocol RPC server",
           getDatanodeProtocolServer().getDatanodeRpcAddress()));
     }
-    scheduler = Executors.newScheduledThreadPool(1);
+    scheduler = Executors.newScheduledThreadPool(1,
+        new ThreadFactoryBuilder().setNameFormat(threadNamePrefix +
+                "SyncSCMContainerInfo-%d")
+            .build());
     boolean isSCMSnapshotEnabled = ozoneConfiguration.getBoolean(
         ReconServerConfigKeys.OZONE_RECON_SCM_SNAPSHOT_ENABLED,
         ReconServerConfigKeys.OZONE_RECON_SCM_SNAPSHOT_ENABLED_DEFAULT);
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
index 32370d0e84..8d744dd776 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
@@ -28,9 +28,11 @@ import java.nio.file.Paths;
 import java.util.List;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.hadoop.hdds.utils.db.RocksDatabase;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedWriteBatch;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedWriteOptions;
@@ -115,6 +117,8 @@ public class OzoneManagerServiceProviderImpl
   private int deltaUpdateLoopLimit;
 
   private AtomicBoolean isSyncDataFromOMRunning;
+  private final String threadNamePrefix;
+  private ThreadFactory threadFactory;
 
   /**
    * OM Snapshot related task names.
@@ -196,6 +200,11 @@ public class OzoneManagerServiceProviderImpl
     this.deltaUpdateLimit = deltaUpdateLimits;
     this.deltaUpdateLoopLimit = deltaUpdateLoopLimits;
     this.isSyncDataFromOMRunning = new AtomicBoolean();
+    this.threadNamePrefix =
+        reconUtils.getReconNodeDetails(configuration).threadNamePrefix();
+    this.threadFactory =
+        new ThreadFactoryBuilder().setNameFormat(threadNamePrefix + 
"SyncOM-%d")
+            .build();
   }
 
   public void registerOMDBTasks() {
@@ -228,7 +237,7 @@ public class OzoneManagerServiceProviderImpl
   @Override
   public void start() {
     LOG.info("Starting Ozone Manager Service Provider.");
-    scheduler = Executors.newScheduledThreadPool(1);
+    scheduler = Executors.newScheduledThreadPool(1, threadFactory);
     registerOMDBTasks();
     try {
       omMetadataManager.start(configuration);
@@ -280,7 +289,7 @@ public class OzoneManagerServiceProviderImpl
       // setting the initialDelay to 0, which triggers an OM DB sync
       // immediately.
       stopSyncDataFromOMThread();
-      scheduler = Executors.newScheduledThreadPool(1);
+      scheduler = Executors.newScheduledThreadPool(1, threadFactory);
       startSyncDataFromOM(0L);
       return true;
     } else {
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/NSSummaryTask.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/NSSummaryTask.java
index 6adf71586f..61cc8ad10c 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/NSSummaryTask.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/NSSummaryTask.java
@@ -17,6 +17,7 @@
  */
 
 package org.apache.hadoop.ozone.recon.tasks;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -123,7 +124,9 @@ public class NSSummaryTask implements ReconOmTask {
 
     List<Future<Boolean>> results;
     ExecutorService executorService = Executors
-        .newFixedThreadPool(2);
+        .newFixedThreadPool(2,
+            new ThreadFactoryBuilder().setNameFormat("NSSummaryTask - %d")
+                .build());
     try {
       results = executorService.invokeAll(tasks);
       for (int i = 0; i < results.size(); i++) {
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java
index 38d8709beb..6440509585 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java
@@ -34,6 +34,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.om.OMMetadataManager;
@@ -219,7 +220,9 @@ public class ReconTaskControllerImpl implements 
ReconTaskController {
   @Override
   public synchronized void start() {
     LOG.info("Starting Recon Task Controller.");
-    executorService = Executors.newFixedThreadPool(threadCount);
+    executorService = Executors.newFixedThreadPool(threadCount,
+        new ThreadFactoryBuilder().setNameFormat("ReconTaskThread-%d")
+            .build());
   }
 
   @Override
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
index 5d2b47d0d3..f0303800ab 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
@@ -67,6 +67,7 @@ import 
org.apache.hadoop.ozone.recon.api.types.DatanodeMetadata;
 import org.apache.hadoop.ozone.recon.api.types.DatanodesResponse;
 import org.apache.hadoop.ozone.recon.api.types.PipelineMetadata;
 import org.apache.hadoop.ozone.recon.api.types.PipelinesResponse;
+import org.apache.hadoop.ozone.recon.common.CommonUtils;
 import org.apache.hadoop.ozone.recon.persistence.AbstractReconSqlDBTest;
 import org.apache.hadoop.ozone.recon.persistence.ContainerHealthSchemaManager;
 import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
@@ -163,6 +164,7 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
   private ReconUtils reconUtilsMock;
 
   private ContainerHealthSchemaManager containerHealthSchemaManager;
+  private CommonUtils commonUtils;
 
   private void initializeInjector() throws Exception {
     reconOMMetadataManager = getTestReconOmMetadataManager(
@@ -204,7 +206,6 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
     when(mockScmServiceProvider
         .getExistContainerWithPipelinesInBatch(containerIDs))
         .thenReturn(cpw);
-
     InputStream inputStream =
         Thread.currentThread().getContextClassLoader().getResourceAsStream(
             PROMETHEUS_TEST_RESPONSE_FILE);
@@ -217,7 +218,9 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
         anyString(), anyBoolean())).thenReturn(urlConnectionMock);
     when(reconUtilsMock.getReconDbDir(any(OzoneConfiguration.class),
         anyString())).thenReturn(GenericTestUtils.getRandomizedTestDir());
-
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
     ReconTestInjector reconTestInjector =
         new ReconTestInjector.Builder(temporaryFolder)
             .withReconSqlDb()
@@ -274,6 +277,7 @@ public class TestEndpoints extends AbstractReconSqlDBTest {
   public void setUp() throws Exception {
     // The following setup runs only once
     if (!isSetupDone) {
+      commonUtils = new CommonUtils();
       initializeInjector();
       isSetupDone = true;
     }
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
index 5f3ca2b25d..7e362a67d5 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.ozone.recon.ReconTestInjector;
 import org.apache.hadoop.ozone.recon.ReconUtils;
 import org.apache.hadoop.ozone.recon.api.types.DatanodeMetadata;
 import org.apache.hadoop.ozone.recon.api.types.DatanodesResponse;
+import org.apache.hadoop.ozone.recon.common.CommonUtils;
 import org.apache.hadoop.ozone.recon.persistence.ContainerHealthSchemaManager;
 import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
 import org.apache.hadoop.ozone.recon.scm.ReconStorageContainerManagerFacade;
@@ -113,6 +114,7 @@ public class TestOpenContainerCount {
   private List<Long> containerIDs;
 
   private List<ContainerWithPipeline> cpw;
+  private CommonUtils commonUtils;
 
   private void initializeInjector() throws Exception {
     reconOMMetadataManager = getTestReconOmMetadataManager(
@@ -155,6 +157,7 @@ public class TestOpenContainerCount {
               .thenReturn(containerWithPipeline);
       containerIDs.add(i);
       cpw.add(containerWithPipeline);
+      commonUtils = new CommonUtils();
     }
 
     // Open 5 containers on pipeline 2
@@ -180,6 +183,7 @@ public class TestOpenContainerCount {
             .thenReturn(cpw);
 
     reconUtilsMock = mock(ReconUtils.class);
+
     HttpURLConnection urlConnectionMock = mock(HttpURLConnection.class);
     when(urlConnectionMock.getResponseCode())
             .thenReturn(HttpServletResponse.SC_OK);
@@ -187,6 +191,9 @@ public class TestOpenContainerCount {
             anyString(), anyBoolean())).thenReturn(urlConnectionMock);
     when(reconUtilsMock.getReconDbDir(any(OzoneConfiguration.class),
         anyString())).thenReturn(GenericTestUtils.getRandomizedTestDir());
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
 
     ReconTestInjector reconTestInjector =
             new ReconTestInjector.Builder(temporaryFolder)
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestTriggerDBSyncEndpoint.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestTriggerDBSyncEndpoint.java
index cffe73bea5..51da2243d1 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestTriggerDBSyncEndpoint.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestTriggerDBSyncEndpoint.java
@@ -29,6 +29,7 @@ import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
 import org.apache.hadoop.ozone.recon.MetricsServiceProviderFactory;
 import org.apache.hadoop.ozone.recon.ReconTestInjector;
 import org.apache.hadoop.ozone.recon.ReconUtils;
+import org.apache.hadoop.ozone.recon.common.CommonUtils;
 import org.apache.hadoop.ozone.recon.persistence.ContainerHealthSchemaManager;
 import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
 import org.apache.hadoop.ozone.recon.scm.ReconStorageContainerManagerFacade;
@@ -71,6 +72,7 @@ public class TestTriggerDBSyncEndpoint {
   @Rule
   public TemporaryFolder temporaryFolder = new TemporaryFolder();
   private ReconTestInjector reconTestInjector;
+  private CommonUtils commonUtils;
 
   @Before
   public void setUp() throws IOException, AuthenticationException {
@@ -80,7 +82,7 @@ public class TestTriggerDBSyncEndpoint {
     configuration.set(OZONE_RECON_DB_DIR,
         temporaryFolder.newFolder().getAbsolutePath());
     configuration.set(OZONE_OM_ADDRESS_KEY, "localhost:9862");
-
+    commonUtils = new CommonUtils();
     OzoneManagerProtocol ozoneManagerProtocol
         = mock(OzoneManagerProtocol.class);
     when(ozoneManagerProtocol.getDBUpdates(any(OzoneManagerProtocolProtos
@@ -92,6 +94,7 @@ public class TestTriggerDBSyncEndpoint {
         = getTestReconOmMetadataManager(omMetadataManager,
         temporaryFolder.newFolder());
 
+
     ReconUtils reconUtilsMock = mock(ReconUtils.class);
     DBCheckpoint checkpoint = omMetadataManager.getStore()
         .getCheckpoint(true);
@@ -102,6 +105,9 @@ public class TestTriggerDBSyncEndpoint {
     }
     when(reconUtilsMock.makeHttpCall(any(), anyString(), anyBoolean()))
         .thenReturn(httpURLConnectionMock);
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
 
     ReconTaskController reconTaskController = mock(ReconTaskController.class);
     when(reconTaskController.getReconTaskStatusDao())
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
index fe1b29c94f..80ab5337cf 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/common/CommonUtils.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.ozone.recon.common;
 
 import org.apache.hadoop.hdds.protocol.StorageType;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
+import org.apache.hadoop.hdds.scm.ha.SCMNodeDetails;
 import org.apache.hadoop.ozone.OzoneAcl;
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.om.helpers.BucketLayout;
@@ -37,6 +38,7 @@ import org.junit.Assert;
 
 import javax.ws.rs.core.Response;
 
+import java.net.InetSocketAddress;
 import java.util.Collections;
 import java.util.HashMap;
 
@@ -222,4 +224,12 @@ public class CommonUtils {
         ((KeyObjectDBInfo) keyResObj.getObjectDBInfo()).
             getReplicationConfig().getReplicationType());
   }
+
+  public SCMNodeDetails getReconNodeDetails() {
+    SCMNodeDetails.Builder builder = new SCMNodeDetails.Builder();
+    builder.setSCMNodeId("Recon");
+    builder.setDatanodeProtocolServerAddress(
+        InetSocketAddress.createUnresolved("127.0.0.1", 9888));
+    return builder.build();
+  }
 }
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
index 03badcdb17..e93073cbd0 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
@@ -66,6 +66,7 @@ import org.apache.hadoop.ozone.om.helpers.DBUpdates;
 import org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
 import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
 import org.apache.hadoop.ozone.recon.ReconUtils;
+import org.apache.hadoop.ozone.recon.common.CommonUtils;
 import org.apache.hadoop.ozone.recon.metrics.OzoneManagerSyncMetrics;
 import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
 import org.apache.hadoop.ozone.recon.tasks.OMDBUpdatesHandler;
@@ -93,6 +94,7 @@ public class TestOzoneManagerServiceProviderImpl {
 
   private OzoneConfiguration configuration;
   private OzoneManagerProtocol ozoneManagerProtocol;
+  private CommonUtils commonUtils;
 
   @Before
   public void setUp() throws Exception {
@@ -103,6 +105,7 @@ public class TestOzoneManagerServiceProviderImpl {
         temporaryFolder.newFolder().getAbsolutePath());
     configuration.set("ozone.om.address", "localhost:9862");
     ozoneManagerProtocol = getMockOzoneManagerClient(new DBUpdates());
+    commonUtils = new CommonUtils();
   }
 
   @Test
@@ -126,7 +129,9 @@ public class TestOzoneManagerServiceProviderImpl {
     when(httpURLConnectionMock.getInputStream()).thenReturn(inputStream);
     when(reconUtilsMock.makeHttpCall(any(), anyString(), anyBoolean()))
         .thenReturn(httpURLConnectionMock);
-
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
     ReconTaskController reconTaskController = getMockTaskController();
 
     OzoneManagerServiceProviderImpl ozoneManagerServiceProvider =
@@ -169,7 +174,9 @@ public class TestOzoneManagerServiceProviderImpl {
     when(httpURLConnectionMock1.getInputStream()).thenReturn(inputStream1);
     when(reconUtilsMock.makeHttpCall(any(), anyString(), anyBoolean()))
         .thenReturn(httpURLConnectionMock1);
-
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
     ReconTaskController reconTaskController = getMockTaskController();
 
     OzoneManagerServiceProviderImpl ozoneManagerServiceProvider1 =
@@ -231,7 +238,9 @@ public class TestOzoneManagerServiceProviderImpl {
     when(httpURLConnectionMock.getInputStream()).thenReturn(fileInputStream);
     when(reconUtilsMock.makeHttpCall(any(), anyString(), anyBoolean()))
         .thenReturn(httpURLConnectionMock);
-
+    when(reconUtilsMock.getReconNodeDetails(
+        any(OzoneConfiguration.class))).thenReturn(
+        commonUtils.getReconNodeDetails());
     ReconOMMetadataManager reconOMMetadataManager =
         mock(ReconOMMetadataManager.class);
     ReconTaskController reconTaskController = getMockTaskController();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to