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]