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

jialiang pushed a commit to branch upgrade/jdk-spring-dependencies
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to 
refs/heads/upgrade/jdk-spring-dependencies by this push:
     new ab38d0fa32 Ambari-26211: Fix TaskActionScheduler test failed (#3861)
ab38d0fa32 is described below

commit ab38d0fa323552cf6b29baa525f8f17aa298dbdf
Author: jialiang <[email protected]>
AuthorDate: Wed Oct 30 11:01:45 2024 +0800

    Ambari-26211: Fix TaskActionScheduler test failed (#3861)
    
    * AMBARI-26211: Fix TaskActionScheduler test failed
---
 Jenkinsfile                                        |  2 +-
 .../server/actionmanager/TestActionScheduler.java  | 21 ++---
 .../checks/HostsRepositoryVersionCheckTest.java    |  4 +-
 .../ambari/server/checks/ServicesUpCheckTest.java  |  4 +-
 .../BlueprintConfigurationProcessorTest.java       |  2 +
 .../security/ldap/AmbariLdapDataPopulatorTest.java |  2 +
 .../upgrade/orchestrate/UpgradeHelperTest.java     | 94 +++++++++++++---------
 7 files changed, 78 insertions(+), 51 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 3080789340..4cea9715f1 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -117,7 +117,7 @@ pipeline {
         }
         stage('Ambari Server JTests') {
             steps {
-                sh 'mvn -am test -pl ambari-server -DskipPythonTests 
-Dmaven.test.failure.ignore -Dmaven.artifact.threads=10 -Drat.skip'
+                sh 'mvn -am test -pl ambari-server -DskipPythonTests  
-Dmaven.artifact.threads=10 -Drat.skip'
             }
         }
     }
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
index 33268cc2ef..17d8ce9a7d 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
@@ -24,6 +24,7 @@ import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Matchers.anyCollectionOf;
@@ -426,7 +427,7 @@ public class TestActionScheduler {
     ServiceComponentHost sch = mock(ServiceComponentHost.class);
     UnitOfWork unitOfWork = mock(UnitOfWork.class);
     AgentCommandsPublisher agentCommandsPublisher = 
mock(AgentCommandsPublisher.class);
-    when(fsm.getCluster(anyString())).thenReturn(oneClusterMock);
+    when(fsm.getCluster(nullable(String.class))).thenReturn(oneClusterMock);
     when(oneClusterMock.getService(anyString())).thenReturn(serviceObj);
     when(serviceObj.getServiceComponent(anyString())).thenReturn(scomp);
     when(scomp.getServiceComponentHost(anyString())).thenReturn(sch);
@@ -475,7 +476,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.TIMEDOUT);
         return null;
       }
-    }).when(db).timeoutHostRole(anyString(), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(false));
+    }).when(db).timeoutHostRole(nullable(String.class), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(false));
 
 
     //Small action timeout to test rescheduling
@@ -526,7 +527,7 @@ public class TestActionScheduler {
     ServiceComponentHost sch = mock(ServiceComponentHost.class);
     UnitOfWork unitOfWork = mock(UnitOfWork.class);
     AgentCommandsPublisher agentCommandsPublisher = 
mock(AgentCommandsPublisher.class);
-    when(fsm.getCluster(anyString())).thenReturn(oneClusterMock);
+    when(fsm.getCluster(nullable(String.class))).thenReturn(oneClusterMock);
     when(oneClusterMock.getService(anyString())).thenReturn(serviceObj);
     when(serviceObj.getServiceComponent(anyString())).thenReturn(scomp);
     when(scomp.getServiceComponentHost(anyString())).thenReturn(sch);
@@ -566,7 +567,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.ABORTED);
         return null;
       }
-    }).when(db).timeoutHostRole(anyString(), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(true));
+    }).when(db).timeoutHostRole(nullable(String.class), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(true));
 
     //Small action timeout to test rescheduling
     AmbariEventPublisher aep = 
EasyMock.createNiceMock(AmbariEventPublisher.class);
@@ -624,7 +625,7 @@ public class TestActionScheduler {
 
     UnitOfWork unitOfWork = mock(UnitOfWork.class);
     AgentCommandsPublisher agentCommandsPublisher = 
mock(AgentCommandsPublisher.class);
-    when(fsm.getCluster(anyString())).thenReturn(oneClusterMock);
+    when(fsm.getCluster(nullable(String.class))).thenReturn(oneClusterMock);
     when(oneClusterMock.getService(anyString())).thenReturn(serviceObj);
     when(serviceObj.getServiceComponent(anyString())).thenReturn(scomp);
     when(serviceObj.getCluster()).thenReturn(oneClusterMock);
@@ -657,7 +658,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.ABORTED);
         return null;
       }
-    }).when(db).timeoutHostRole(anyString(), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(true));
+    }).when(db).timeoutHostRole(nullable(String.class), anyLong(), anyLong(), 
anyString(), anyBoolean(), eq(true));
 
     doAnswer(new Answer<Collection<HostRoleCommandEntity>>() {
       @Override
@@ -782,7 +783,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.valueOf(commandReport.getStatus()));
         return null;
       }
-    }).when(db).updateHostRoleState(anyString(), anyLong(), anyLong(), 
anyString(), any(CommandReport.class));
+    }).when(db).updateHostRoleState(nullable(String.class), anyLong(), 
anyLong(), anyString(), any(CommandReport.class));
 
     doAnswer(new Answer<HostRoleCommand>() {
       @Override
@@ -944,7 +945,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.valueOf(commandReport.getStatus()));
         return null;
       }
-    }).when(db).updateHostRoleState(anyString(), anyLong(), anyLong(), 
anyString(), any(CommandReport.class));
+    }).when(db).updateHostRoleState(nullable(String.class), anyLong(), 
anyLong(), anyString(), any(CommandReport.class));
 
     doAnswer(new Answer<HostRoleCommand>() {
       @Override
@@ -1160,7 +1161,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.valueOf(commandReport.getStatus()));
         return null;
       }
-    }).when(db).updateHostRoleState(anyString(), anyLong(), anyLong(), 
anyString(), any(CommandReport.class));
+    }).when(db).updateHostRoleState(nullable(String.class), anyLong(), 
anyLong(), anyString(), any(CommandReport.class));
 
     doAnswer(new Answer<HostRoleCommand>() {
       @Override
@@ -2426,7 +2427,7 @@ public class TestActionScheduler {
         command.setStatus(HostRoleStatus.valueOf(commandReport.getStatus()));
         return null;
       }
-    }).when(db).updateHostRoleState(anyString(), anyLong(), anyLong(), 
anyString(), any(CommandReport.class));
+    }).when(db).updateHostRoleState(nullable(String.class), anyLong(), 
anyLong(), anyString(), any(CommandReport.class));
 
     doAnswer(new Answer<List<HostRoleCommand>>() {
       @Override
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
index e7639de9e5..99ce6047df 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
@@ -53,6 +53,8 @@ import org.mockito.runners.MockitoJUnitRunner;
 
 import com.google.inject.Provider;
 
+import static org.mockito.ArgumentMatchers.nullable;
+
 /**
  * Unit tests for HostsRepositoryVersionCheck
  *
@@ -185,7 +187,7 @@ public class HostsRepositoryVersionCheckTest {
     Mockito.when(
         hostVersionDAO.findByClusterStackVersionAndHost(Mockito.anyString(),
             Mockito.any(StackId.class), Mockito.anyString(),
-            Mockito.anyString())).thenReturn(hostVersion);
+            nullable(String.class))).thenReturn(hostVersion);
 
     check = hostsRepositoryVersionCheck.perform(request);
     Assert.assertEquals(UpgradeCheckStatus.PASS, check.getStatus());
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java
index bb3dc6be23..35170a0f79 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java
@@ -61,6 +61,8 @@ import org.powermock.modules.junit4.PowerMockRunner;
 
 import com.google.inject.Provider;
 
+import static org.mockito.ArgumentMatchers.nullable;
+
 
 /**
  * Unit tests for ServicesUpCheck
@@ -191,7 +193,7 @@ public class ServicesUpCheckTest {
     Mockito.when(cluster.getService("AMBARI_METRICS")).thenReturn(amsService);
 
     Mockito.when(ambariMetaInfo.getComponent(Mockito.anyString(), 
Mockito.anyString(),
-        Mockito.anyString(), Mockito.anyString())).thenAnswer(new 
Answer<ComponentInfo>() {
+            nullable(String.class), Mockito.anyString())).thenAnswer(new 
Answer<ComponentInfo>() {
       @Override
       public ComponentInfo answer(InvocationOnMock invocation) throws 
Throwable {
         ComponentInfo anyInfo = Mockito.mock(ComponentInfo.class);
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
index 71afb42c2e..3683012d22 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
@@ -91,6 +91,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
@@ -107,6 +108,7 @@ import com.google.common.collect.Sets;
  */
 @RunWith(PowerMockRunner.class)
 @PrepareForTest(AmbariServer.class)
+@PowerMockIgnore({"org.apache.logging.log4j.*","org.slf4j.*"})
 public class BlueprintConfigurationProcessorTest extends EasyMockSupport {
 
   private static final Configuration EMPTY_CONFIG = new 
Configuration(emptyMap(), emptyMap());
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
index 4bdc354550..6a9defba2f 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
@@ -69,6 +69,7 @@ import org.easymock.IAnswer;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.springframework.ldap.control.PagedResultsCookie;
@@ -86,6 +87,7 @@ import com.google.inject.Provider;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest(AmbariLdapUtils.class)
+@PowerMockIgnore({"org.apache.logging.log4j.*","org.slf4j.*"})
 public class AmbariLdapDataPopulatorTest {
   public static class AmbariLdapDataPopulatorTestInstance extends 
TestAmbariLdapDataPopulator {
     public 
AmbariLdapDataPopulatorTestInstance(Provider<AmbariLdapConfiguration> 
configurationProvider, Users users) {
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/stack/upgrade/orchestrate/UpgradeHelperTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/stack/upgrade/orchestrate/UpgradeHelperTest.java
index a0975872a7..cfdf7607f9 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/stack/upgrade/orchestrate/UpgradeHelperTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/stack/upgrade/orchestrate/UpgradeHelperTest.java
@@ -122,15 +122,13 @@ import org.apache.ambari.spi.RepositoryType;
 import org.apache.ambari.spi.upgrade.OrchestrationOptions;
 import org.apache.ambari.spi.upgrade.UpgradeType;
 import org.apache.commons.io.FileUtils;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.IAnswer;
+import org.easymock.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.mockito.ArgumentMatcher;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 import com.google.common.collect.ImmutableMap;
@@ -2549,7 +2547,6 @@ public class UpgradeHelperTest extends EasyMockSupport {
     }
   }
 
-
   /**
    * Tests merging configurations between existing and new stack values on
    * upgrade.
@@ -2735,12 +2732,12 @@ public class UpgradeHelperTest extends EasyMockSupport {
     ConfigFactory cf = injector.getInstance(ConfigFactory.class);
 
     Config clusterEnv = cf.createNew(cluster, "cluster-env", "version1",
-        ImmutableMap.<String, String>builder().put("a", "b").build(),
-        Collections.emptyMap());
+            ImmutableMap.<String, String>builder().put("a", "b").build(),
+            Collections.emptyMap());
 
     Config zooCfg = cf.createNew(cluster, "zoo.cfg", "version1",
-        ImmutableMap.<String, String>builder().put("c", "d").build(),
-        Collections.emptyMap());
+            ImmutableMap.<String, String>builder().put("c", "d").build(),
+            Collections.emptyMap());
 
     cluster.addDesiredConfig("admin", Sets.newHashSet(clusterEnv, zooCfg));
 
@@ -2748,25 +2745,8 @@ public class UpgradeHelperTest extends EasyMockSupport {
     stackMap.put("cluster-env", new HashMap<>());
     stackMap.put("hive-site", new HashMap<>());
 
-    final Map<String, String> clusterEnvMap = new HashMap<>();
-
-    Capture<Cluster> captureCluster = Capture.newInstance();
-    Capture<StackId> captureStackId = Capture.newInstance();
-    Capture<AmbariManagementController> captureAmc = Capture.newInstance();
-
-    Capture<Map<String, Map<String, String>>> cap = Capture.newInstance();
-
-    /*Capture<Map<String, Map<String, String>>> cap = new Capture<Map<String, 
Map<String, String>>>() {
-      @Override
-      public void setValue(Map<String, Map<String, String>> value) {
-        if (value.containsKey("cluster-env")) {
-          clusterEnvMap.putAll(value.get("cluster-env"));
-        }
-      }
-    };*/
-
-    Capture<String> captureUsername = Capture.newInstance();
-    Capture<String> captureNote = Capture.newInstance();
+    final ClusterEnvWrapper clusterEnvWrapper = new ClusterEnvWrapper();
+    System.out.println("Initial clusterEnvMap: " + 
clusterEnvWrapper.getClusterEnvMap()); // Debug print
 
     EasyMock.reset(m_configHelper);
     expect(m_configHelper.getDefaultProperties(oldStack, 
"HIVE")).andReturn(stackMap).atLeastOnce();
@@ -2774,14 +2754,13 @@ public class UpgradeHelperTest extends EasyMockSupport {
     expect(m_configHelper.getDefaultProperties(oldStack, 
"ZOOKEEPER")).andReturn(stackMap).atLeastOnce();
     expect(m_configHelper.getDefaultProperties(newStack, 
"ZOOKEEPER")).andReturn(stackMap).atLeastOnce();
     expect(m_configHelper.createConfigTypes(
-        EasyMock.capture(captureCluster),
-        EasyMock.capture(captureStackId),
-        EasyMock.capture(captureAmc),
-        EasyMock.capture(cap),
-
-        EasyMock.capture(captureUsername),
-        EasyMock.capture(captureNote))).andReturn(true);
-
+            EasyMock.anyObject(Cluster.class),
+            EasyMock.anyObject(StackId.class),
+            EasyMock.anyObject(AmbariManagementController.class),
+            eqClusterEnv(clusterEnvWrapper),
+            EasyMock.anyString(),
+            EasyMock.anyString()
+    )).andReturn(true);
     replay(m_configHelper);
 
     RepositoryVersionEntity repoVersionEntity = 
helper.getOrCreateRepositoryVersion(new StackId("HDP-2.5.0"), "2.5.0-1234");
@@ -2798,14 +2777,53 @@ public class UpgradeHelperTest extends EasyMockSupport {
     UpgradeHelper upgradeHelper = injector.getInstance(UpgradeHelper.class);
     upgradeHelper.updateDesiredRepositoriesAndConfigs(context);
 
-    assertNotNull(clusterEnvMap);
-    assertTrue(clusterEnvMap.containsKey("a"));
+    assertEquals("b",clusterEnvWrapper.getClusterEnvMap().get("a"));
 
+    assertTrue(clusterEnvWrapper.getClusterEnvMap().containsKey("a"));
     // Do stacks cleanup
     stackManagerMock.invalidateCurrentPaths();
     ambariMetaInfo.init();
   }
 
+  // Custom matcher for cluster-env map
+  private static Map<String, Map<String, String>> eqClusterEnv(final 
ClusterEnvWrapper wrapper) {
+    EasyMock.reportMatcher(new IArgumentMatcher() {
+      @Override
+      public boolean matches(Object argument) {
+        if (argument instanceof Map) {
+          Map<String, Map<String, String>> map = (Map<String, Map<String, 
String>>) argument;
+          if (map.containsKey("cluster-env")) {
+            wrapper.updateClusterEnvMap(map.get("cluster-env"));
+            return true;
+          }
+        }
+        return false;
+      }
+
+      @Override
+      public void appendTo(StringBuffer buffer) {
+        buffer.append("eqClusterEnv(");
+        buffer.append(wrapper);
+        buffer.append(")");
+      }
+    });
+    return null;
+  }
+
+  // Custom wrapper class to hold and update clusterEnvMap
+  private static class ClusterEnvWrapper {
+    private final Map<String, String> clusterEnvMap = new HashMap<>();
+
+    public void updateClusterEnvMap(Map<String, String> newMap) {
+      clusterEnvMap.putAll(newMap);
+    }
+
+    public Map<String, String> getClusterEnvMap() {
+      return clusterEnvMap;
+    }
+  }
+
+
   @Test
   public void testSequentialServiceChecks() throws Exception {
     Map<String, UpgradePack> upgrades = ambariMetaInfo.getUpgradePacks("HDP", 
"2.1.1");


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

Reply via email to