You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/05/31 20:13:12 UTC
[41/50] [abbrv] ambari git commit: AMBARI-21114 - Fix Unit Test
Failures From Prior Patch/Service Upgrade Commits (jonathanhurley)
http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
index b228988..cfb7726 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
@@ -182,7 +182,7 @@ public class UpgradeHelper {
* {@link StageWrapperBuilder} has finished building out all of the stages.
*/
@Inject
- private Provider<ConfigHelper> m_configHelperProvider;
+ Provider<ConfigHelper> m_configHelperProvider;
@Inject
private Provider<AmbariMetaInfo> m_ambariMetaInfoProvider;
@@ -203,7 +203,7 @@ public class UpgradeHelper {
* Used to get configurations by service name.
*/
@Inject
- private ServiceConfigDAO m_serviceConfigDAO;
+ ServiceConfigDAO m_serviceConfigDAO;
/**
* Get right Upgrade Pack, depends on stack, direction and upgrade type
http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
index f79b1c2..a631448 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
@@ -17,8 +17,13 @@
*/
package org.apache.ambari.server.controller.internal;
-import java.util.ArrayList;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.junit.Assert.assertEquals;
+
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
@@ -28,7 +33,6 @@ import org.apache.ambari.server.actionmanager.HostRoleCommandFactory;
import org.apache.ambari.server.actionmanager.HostRoleCommandFactoryImpl;
import org.apache.ambari.server.actionmanager.RequestFactory;
import org.apache.ambari.server.actionmanager.StageFactory;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.controller.AbstractRootServiceResponseFactory;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.KerberosHelper;
@@ -38,8 +42,10 @@ import org.apache.ambari.server.hooks.HookService;
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.dao.ServiceConfigDAO;
+import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
-import org.apache.ambari.server.orm.entities.StackEntity;
+import org.apache.ambari.server.orm.entities.ServiceConfigEntity;
import org.apache.ambari.server.scheduler.ExecutionScheduler;
import org.apache.ambari.server.security.authorization.Users;
import org.apache.ambari.server.stack.StackManagerFactory;
@@ -50,10 +56,12 @@ import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.state.ConfigFactory;
import org.apache.ambari.server.state.ConfigHelper;
import org.apache.ambari.server.state.DesiredConfig;
+import org.apache.ambari.server.state.RepositoryType;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.ServiceComponentFactory;
import org.apache.ambari.server.state.ServiceComponentHostFactory;
import org.apache.ambari.server.state.ServiceFactory;
-import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.UpgradeContext;
import org.apache.ambari.server.state.UpgradeContextFactory;
@@ -63,7 +71,7 @@ import org.apache.ambari.server.state.scheduler.RequestExecutionFactory;
import org.apache.ambari.server.state.stack.OsFamily;
import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.upgrade.Direction;
-import org.apache.ambari.server.state.stack.upgrade.Grouping;
+import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.easymock.Capture;
import org.easymock.EasyMock;
import org.easymock.EasyMockSupport;
@@ -73,14 +81,14 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.security.crypto.password.PasswordEncoder;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.assistedinject.FactoryModuleBuilder;
-import junit.framework.Assert;
-
/**
* Tests that
* {@link UpgradeResourceProvider#applyStackAndProcessConfigurations(String, Cluster, String, Direction, UpgradePack, String)}
@@ -88,19 +96,13 @@ import junit.framework.Assert;
*/
public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
- private static final StackId s_currentStackId = new StackId("HDP-2.4");
- private static final StackId s_targetStackId = new StackId("HDP-2.5");
-
private Injector m_injector;
- private AmbariMetaInfo m_ambariMetaInfoMock;
/**
* @throws Exception
*/
@Before
public void before() throws Exception {
- m_ambariMetaInfoMock = createNiceMock(AmbariMetaInfo.class);
-
MockModule mockModule = new MockModule();
// create an injector which will inject the mocks
@@ -120,14 +122,14 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
* accidentally.
* <p/>
*
- * HDP 2.4 defaults
+ * HDP 2.1 defaults
* <ul>
* <li>foo-site/foo-property-1</li>
* <li>foo-site/foo-property-2</li>
* <li>bar-site/bar-property-1</li>
* </ul>
*
- * HDP 2.5 defaults
+ * HDP 2.2 defaults
* <ul>
* <li>foo-site/foo-property-1</li>
* <li>foo-site/foo-property-2</li>
@@ -135,7 +137,7 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
* <li>bar-site/bar-property-2</li>
* </ul>
*
- * CURRENT 2.4 configs
+ * CURRENT 2.1 configs
* <ul>
* <li>foo-site/foo-property-1</li>
* <li>foo-site/foo-property-99</li>
@@ -146,132 +148,144 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
*
* The final merged configurations should detect that {{foo-property-2}}
* exists in both stacks but is not in the current configs and was therefore
- * purposefully removed. It shoudl also detect that {{bar-property-20}} was
+ * purposefully removed. It shoudl also detect that {{bar-property-2}} was
* added in the new stack and should be added in.
*
* @throws Exception
*/
@Test
public void testMergedConfigurationsDoNotAddExplicitelyRemovedProperties() throws Exception {
- Cluster cluster = createNiceMock(Cluster.class);
- RepositoryVersionEntity repositoryVersionEntity = createNiceMock(RepositoryVersionEntity.class);
- UpgradePack upgradePack = createNiceMock(UpgradePack.class);
- StackEntity targetStack = createNiceMock(StackEntity.class);
- StackId targetStackId = createNiceMock(StackId.class);
+ RepositoryVersionEntity repoVersion211 = createNiceMock(RepositoryVersionEntity.class);
+ RepositoryVersionEntity repoVersion220 = createNiceMock(RepositoryVersionEntity.class);
+
+ StackId stack211 = new StackId("HDP-2.1.1");
+ StackId stack220 = new StackId("HDP-2.2.0");
+
+ String version211 = "2.1.1.0-1234";
+ String version220 = "2.2.0.0-1234";
+
+ expect(repoVersion211.getStackId()).andReturn(stack211).atLeastOnce();
+ expect(repoVersion211.getVersion()).andReturn(version211).atLeastOnce();
+
+ expect(repoVersion220.getStackId()).andReturn(stack220).atLeastOnce();
+ expect(repoVersion220.getVersion()).andReturn(version220).atLeastOnce();
+
+ Map<String, Map<String, String>> stack211Configs = new HashMap<>();
+ Map<String, String> stack211FooType = new HashMap<>();
+ Map<String, String> stack211BarType = new HashMap<>();
+ stack211Configs.put("foo-site", stack211FooType);
+ stack211Configs.put("bar-site", stack211BarType);
+ stack211FooType.put("foo-property-1", "stack-211-original");
+ stack211FooType.put("foo-property-2", "stack-211-original");
+ stack211BarType.put("bar-property-1", "stack-211-original");
+
+ Map<String, Map<String, String>> stack220Configs = new HashMap<>();
+ Map<String, String> stack220FooType = new HashMap<>();
+ Map<String, String> stack220BarType = new HashMap<>();
+ stack220Configs.put("foo-site", stack220FooType);
+ stack220Configs.put("bar-site", stack220BarType);
+ stack220FooType.put("foo-property-1", "stack-220-original");
+ stack220FooType.put("foo-property-2", "stack-220-original");
+ stack220BarType.put("bar-property-1", "stack-220-original");
+ stack220BarType.put("bar-property-2", "stack-220-original");
+
+ Map<String, String> existingFooType = new HashMap<>();
+ Map<String, String> existingBarType = new HashMap<>();
+
+ ClusterConfigEntity fooConfigEntity = createNiceMock(ClusterConfigEntity.class);
+ ClusterConfigEntity barConfigEntity = createNiceMock(ClusterConfigEntity.class);
+
+ expect(fooConfigEntity.getType()).andReturn("foo-site");
+ expect(barConfigEntity.getType()).andReturn("bar-site");
+
+ Config fooConfig = createNiceMock(Config.class);
+ Config barConfig = createNiceMock(Config.class);
+
+ existingFooType.put("foo-property-1", "my-foo-property-1");
+ existingBarType.put("bar-property-1", "stack-211-original");
+
+ expect(fooConfig.getType()).andReturn("foo-site").atLeastOnce();
+ expect(barConfig.getType()).andReturn("bar-site").atLeastOnce();
+ expect(fooConfig.getProperties()).andReturn(existingFooType);
+ expect(barConfig.getProperties()).andReturn(existingBarType);
+
+ Map<String, DesiredConfig> desiredConfigurations = new HashMap<>();
+ desiredConfigurations.put("foo-site", null);
+ desiredConfigurations.put("bar-site", null);
+
+ Service zookeeper = createNiceMock(Service.class);
+ expect(zookeeper.getName()).andReturn("ZOOKEEPER").atLeastOnce();
+ expect(zookeeper.getServiceComponents()).andReturn(
+ new HashMap<String, ServiceComponent>()).once();
+ zookeeper.setDesiredRepositoryVersion(repoVersion220);
+ expectLastCall().once();
- String version = "2.5.0.0-1234";
+ Cluster cluster = createNiceMock(Cluster.class);
+ expect(cluster.getCurrentStackVersion()).andReturn(stack211).atLeastOnce();
+ expect(cluster.getDesiredStackVersion()).andReturn(stack220);
+ expect(cluster.getDesiredConfigs()).andReturn(desiredConfigurations);
+ expect(cluster.getDesiredConfigByType("foo-site")).andReturn(fooConfig);
+ expect(cluster.getDesiredConfigByType("bar-site")).andReturn(barConfig);
+ expect(cluster.getService("ZOOKEEPER")).andReturn(zookeeper);
+ expect(cluster.getDesiredConfigByType("foo-type")).andReturn(fooConfig);
+ expect(cluster.getDesiredConfigByType("bar-type")).andReturn(barConfig);
- // mocks which were bound previously
- AmbariManagementController amc = m_injector.getInstance(AmbariManagementController.class);
- AmbariMetaInfo ambariMetaInfo = m_injector.getInstance(AmbariMetaInfo.class);
ConfigHelper configHelper = m_injector.getInstance(ConfigHelper.class);
- RepositoryVersionDAO repositoryVersionDAO = m_injector.getInstance(RepositoryVersionDAO.class);
-
- EasyMock.expect(amc.getConfigHelper()).andReturn(configHelper);
-
- EasyMock.expect(cluster.getCurrentStackVersion()).andReturn(s_currentStackId);
- EasyMock.expect(cluster.getDesiredStackVersion()).andReturn(s_targetStackId);
-
- EasyMock.expect(targetStack.getStackName()).andReturn("HDP").anyTimes();
- EasyMock.expect(targetStack.getStackVersion()).andReturn("2.5").anyTimes();
- EasyMock.expect(targetStackId.getStackName()).andReturn("HDP").atLeastOnce();
- EasyMock.expect(targetStackId.getStackVersion()).andReturn("2.5").atLeastOnce();
-
- EasyMock.expect(repositoryVersionEntity.getStackId()).andReturn(targetStackId).atLeastOnce();
- EasyMock.expect(repositoryVersionEntity.getStack()).andReturn(targetStack).atLeastOnce();
- EasyMock.expect(repositoryVersionEntity.getVersion()).andReturn(version).atLeastOnce();
- EasyMock.expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", version)).andReturn(
- repositoryVersionEntity);
-
- EasyMock.expect(upgradePack.getGroups(Direction.UPGRADE)).andReturn(new ArrayList<Grouping>());
-
- EasyMock.expect(ambariMetaInfo.getServices("HDP", "2.5")).andReturn(
- new HashMap<String, ServiceInfo>());
-
- // config helper mocks (the heart of this test)
- Map<String, Map<String, String>> oldStackDefaultConfigurationsByType = new HashMap<>();
- oldStackDefaultConfigurationsByType.put("foo-type", new HashMap<String, String>());
- oldStackDefaultConfigurationsByType.get("foo-type").put("foo-property-1", "foo-value-1");
- oldStackDefaultConfigurationsByType.get("foo-type").put("foo-property-2", "foo-value-2");
- oldStackDefaultConfigurationsByType.put("bar-type", new HashMap<String, String>());
- oldStackDefaultConfigurationsByType.get("bar-type").put("bar-property-1", "bar-value-1");
-
- Map<String, Map<String, String>> newConfigurationsByType = new HashMap<>();
- newConfigurationsByType.put("foo-type", new HashMap<String, String>());
- newConfigurationsByType.get("foo-type").put("foo-property-1", "foo-value-1");
- newConfigurationsByType.get("foo-type").put("foo-property-2", "foo-value-2");
- newConfigurationsByType.put("bar-type", new HashMap<String, String>());
- newConfigurationsByType.get("bar-type").put("bar-property-1", "bar-value-1");
- newConfigurationsByType.get("bar-type").put("bar-property-20", "bar-value-20");
-
- // HDP 2.4 configs
- EasyMock.expect(configHelper.getDefaultProperties(EasyMock.eq(s_currentStackId),
- EasyMock.anyString())).andReturn(oldStackDefaultConfigurationsByType);
-
- // HDP 2.5 configs
- EasyMock.expect(configHelper.getDefaultProperties(EasyMock.eq(s_targetStackId),
- EasyMock.anyString())).andReturn(newConfigurationsByType);
-
- // CURRENT HDP 2.4 configs
- Config currentClusterConfigFoo = createNiceMock(Config.class);
- Config currentClusterConfigBar = createNiceMock(Config.class);
-
- Map<String, String> existingPropertiesFoo = new HashMap<>();
- existingPropertiesFoo.put("foo-property-1", "foo-value-1");
- existingPropertiesFoo.put("foo-property-99", "foo-value-99");
- EasyMock.expect(currentClusterConfigFoo.getProperties()).andReturn(existingPropertiesFoo);
-
- Map<String, String> existingPropertiesBar = new HashMap<>();
- existingPropertiesBar.put("bar-property-1", "bar-value-1");
- existingPropertiesBar.put("bar-property-99", "bar-value-99");
- EasyMock.expect(currentClusterConfigBar.getProperties()).andReturn(existingPropertiesBar);
-
- EasyMock.expect(cluster.getDesiredConfigByType("foo-type")).andReturn(currentClusterConfigFoo);
- EasyMock.expect(cluster.getDesiredConfigByType("bar-type")).andReturn(currentClusterConfigBar);
-
- // desired configs
- Map<String, DesiredConfig> existingDesiredConfigurationsByType = new HashMap<>();
- existingDesiredConfigurationsByType.put("foo-type", null);
- existingDesiredConfigurationsByType.put("bar-type", null);
- EasyMock.expect(cluster.getDesiredConfigs()).andReturn(existingDesiredConfigurationsByType);
-
- // we need to know what configs are being created, so capture them
- Capture<Map<String, Map<String, String>>> capturedArgument = EasyMock.newCapture();
+
+ expect(configHelper.getDefaultProperties(stack211, "ZOOKEEPER")).andReturn(
+ stack211Configs).anyTimes();
+
+ expect(configHelper.getDefaultProperties(stack220, "ZOOKEEPER")).andReturn(
+ stack220Configs).anyTimes();
+
+ Capture<Map<String, Map<String, String>>> expectedConfigurationsCapture = EasyMock.newCapture();
+
configHelper.createConfigTypes(EasyMock.anyObject(Cluster.class),
- EasyMock.anyObject(AmbariManagementController.class),
- EasyMock.anyObject(StackId.class),
- EasyMock.capture(capturedArgument),
- EasyMock.anyString(), EasyMock.anyString());
-
- EasyMock.expectLastCall();
-
- UpgradeContext upgradeContext = createNiceMock(UpgradeContext.class);
- EasyMock.expect(upgradeContext.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- EasyMock.expect(upgradeContext.getCluster()).andReturn(cluster).anyTimes();
- EasyMock.expect(upgradeContext.getDirection()).andReturn(Direction.UPGRADE).anyTimes();
- EasyMock.expect(upgradeContext.getUpgradePack()).andReturn(upgradePack).anyTimes();
- EasyMock.expect(upgradeContext.getRepositoryVersion()).andReturn(repositoryVersionEntity).anyTimes();
- EasyMock.expect(upgradeContext.getTargetRepositoryVersion(EasyMock.anyString())).andReturn(repositoryVersionEntity).anyTimes();
+ EasyMock.anyObject(AmbariManagementController.class), EasyMock.anyObject(StackId.class),
+ EasyMock.capture(expectedConfigurationsCapture), EasyMock.anyObject(String.class),
+ EasyMock.anyObject(String.class));
+
+ expectLastCall().once();
+
+ // mock the service config DAO and replay it
+ ServiceConfigEntity zookeeperServiceConfig = createNiceMock(ServiceConfigEntity.class);
+ expect(zookeeperServiceConfig.getClusterConfigEntities()).andReturn(
+ Lists.newArrayList(fooConfigEntity, barConfigEntity));
+
+ ServiceConfigDAO serviceConfigDAOMock = m_injector.getInstance(ServiceConfigDAO.class);
+ List<ServiceConfigEntity> latestServiceConfigs = Lists.newArrayList(zookeeperServiceConfig);
+ expect(serviceConfigDAOMock.getLastServiceConfigsForService(EasyMock.anyLong(),
+ eq("ZOOKEEPER"))).andReturn(latestServiceConfigs).once();
+
+ UpgradeContext context = createNiceMock(UpgradeContext.class);
+ expect(context.getCluster()).andReturn(cluster).atLeastOnce();
+ expect(context.getType()).andReturn(UpgradeType.ROLLING).atLeastOnce();
+ expect(context.getDirection()).andReturn(Direction.UPGRADE).atLeastOnce();
+ expect(context.getRepositoryVersion()).andReturn(repoVersion220).anyTimes();
+ expect(context.getSupportedServices()).andReturn(Sets.newHashSet("ZOOKEEPER")).atLeastOnce();
+ expect(context.getSourceRepositoryVersion(EasyMock.anyString())).andReturn(repoVersion211).atLeastOnce();
+ expect(context.getTargetRepositoryVersion(EasyMock.anyString())).andReturn(repoVersion220).atLeastOnce();
+ expect(context.getRepositoryType()).andReturn(RepositoryType.STANDARD).anyTimes();
+ expect(context.getHostRoleCommandFactory()).andStubReturn(m_injector.getInstance(HostRoleCommandFactory.class));
+ expect(context.getRoleGraphFactory()).andStubReturn(m_injector.getInstance(RoleGraphFactory.class));
+
replayAll();
UpgradeHelper upgradeHelper = m_injector.getInstance(UpgradeHelper.class);
- upgradeHelper.updateDesiredRepositoriesAndConfigs(upgradeContext);
-
- // assertion time!
- Map<String, Map<String, String>> mergedConfigurations = capturedArgument.getValue();
- Map<String, String> mergedFooSite = mergedConfigurations.get("foo-type");
- Map<String, String> mergedBarSite = mergedConfigurations.get("bar-type");
-
- // foo-site validation
- Assert.assertEquals("foo-value-1", mergedFooSite.get("foo-property-1"));
- Assert.assertEquals("foo-value-99", mergedFooSite.get("foo-property-99"));
- Assert.assertFalse(mergedFooSite.containsKey("foo-property-2"));
-
- // bar-site validation
- Assert.assertEquals("bar-value-1", mergedBarSite.get("bar-property-1"));
- Assert.assertEquals("bar-value-20", mergedBarSite.get("bar-property-20"));
- Assert.assertEquals("bar-value-99", mergedBarSite.get("bar-property-99"));
- Assert.assertEquals(3, mergedBarSite.size());
+ upgradeHelper.updateDesiredRepositoriesAndConfigs(context);
+
+ Map<String, Map<String, String>> expectedConfigurations = expectedConfigurationsCapture.getValue();
+ Map<String, String> expectedFooType = expectedConfigurations.get("foo-site");
+ Map<String, String> expectedBarType = expectedConfigurations.get("bar-site");
+
+ // As the upgrade pack did not have any Flume updates, its configs should
+ // not be updated.
+ assertEquals(2, expectedConfigurations.size());
+
+ assertEquals("my-foo-property-1", expectedFooType.get("foo-property-1"));
+ assertEquals(null, expectedFooType.get("foo-property-2"));
+ assertEquals("stack-220-original", expectedBarType.get("bar-property-1"));
+ assertEquals("stack-220-original", expectedBarType.get("bar-property-2"));
}
@@ -282,7 +296,6 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
*/
@Override
public void configure(Binder binder) {
- binder.bind(AmbariMetaInfo.class).toInstance(m_ambariMetaInfoMock);
binder.bind(Clusters.class).toInstance(createNiceMock(Clusters.class));
binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
binder.bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
@@ -311,6 +324,7 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
binder.bind(RepositoryVersionDAO.class).toInstance(createNiceMock(RepositoryVersionDAO.class));
binder.bind(HookContextFactory.class).toInstance(createMock(HookContextFactory.class));
binder.bind(HookService.class).toInstance(createMock(HookService.class));
+ binder.bind(ServiceConfigDAO.class).toInstance(createNiceMock(ServiceConfigDAO.class));
binder.install(new FactoryModuleBuilder().build(UpgradeContextFactory.class));
binder.bind(HostRoleCommandFactory.class).to(HostRoleCommandFactoryImpl.class);
http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
index 04773bc..f63f706 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
@@ -17,7 +17,6 @@
*/
package org.apache.ambari.server.controller.internal;
-import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
@@ -47,7 +46,6 @@ import org.apache.ambari.server.actionmanager.HostRoleCommand;
import org.apache.ambari.server.actionmanager.HostRoleStatus;
import org.apache.ambari.server.actionmanager.Stage;
import org.apache.ambari.server.agent.ExecutionCommand.KeyNames;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.audit.AuditLogger;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.controller.AmbariManagementController;
@@ -87,7 +85,6 @@ import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.state.ConfigFactory;
import org.apache.ambari.server.state.ConfigHelper;
-import org.apache.ambari.server.state.DesiredConfig;
import org.apache.ambari.server.state.Host;
import org.apache.ambari.server.state.HostState;
import org.apache.ambari.server.state.Service;
@@ -97,14 +94,13 @@ import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.UpgradeContext;
import org.apache.ambari.server.state.UpgradeHelper;
import org.apache.ambari.server.state.UpgradeState;
-import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.upgrade.Direction;
import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.apache.ambari.server.topology.TopologyManager;
import org.apache.ambari.server.utils.StageUtils;
import org.apache.ambari.server.view.ViewRegistry;
-import org.easymock.Capture;
import org.easymock.EasyMock;
+import org.easymock.EasyMockSupport;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -125,7 +121,7 @@ import com.google.inject.util.Modules;
/**
* UpgradeResourceDefinition tests.
*/
-public class UpgradeResourceProviderTest {
+public class UpgradeResourceProviderTest extends EasyMockSupport {
private UpgradeDAO upgradeDao = null;
private RequestDAO requestDao = null;
@@ -135,7 +131,6 @@ public class UpgradeResourceProviderTest {
private AmbariManagementController amc;
private ConfigHelper configHelper;
private StackDAO stackDAO;
- private AmbariMetaInfo ambariMetaInfo;
private TopologyManager topologyManager;
private ConfigFactory configFactory;
private HostRoleCommandDAO hrcDAO;
@@ -144,6 +139,12 @@ public class UpgradeResourceProviderTest {
RepositoryVersionEntity repoVersionEntity2111;
RepositoryVersionEntity repoVersionEntity2200;
+ /**
+ * Creates a single host cluster with ZOOKEEPER_SERVER and ZOOKEEPER_CLIENT on
+ * {@link #repoVersionEntity2110}.
+ *
+ * @throws Exception
+ */
@Before
public void before() throws Exception {
SecurityContextHolder.getContext().setAuthentication(
@@ -162,19 +163,18 @@ public class UpgradeResourceProviderTest {
EasyMock.anyString())).andReturn(
new HashMap<String, Map<String, String>>()).anyTimes();
-
- EasyMock.replay(configHelper);
+ replay(configHelper);
InMemoryDefaultTestModule module = new InMemoryDefaultTestModule();
// create an injector which will inject the mocks
- injector = Guice.createInjector(Modules.override(module).with(new MockModule()));
+ injector = Guice.createInjector(
+ Modules.override(module).with(new MockModule()));
H2DatabaseCleaner.resetSequences(injector);
injector.getInstance(GuiceJpaInitializer.class);
amc = injector.getInstance(AmbariManagementController.class);
- ambariMetaInfo = injector.getInstance(AmbariMetaInfo.class);
configFactory = injector.getInstance(ConfigFactory.class);
Field field = AmbariServer.class.getDeclaredField("clusterController");
@@ -187,7 +187,7 @@ public class UpgradeResourceProviderTest {
repoVersionDao = injector.getInstance(RepositoryVersionDAO.class);
hrcDAO = injector.getInstance(HostRoleCommandDAO.class);
- AmbariEventPublisher publisher = createNiceMock(AmbariEventPublisher.class);
+ AmbariEventPublisher publisher = EasyMock.createNiceMock(AmbariEventPublisher.class);
replay(publisher);
ViewRegistry.initInstance(new ViewRegistry(publisher));
@@ -591,11 +591,6 @@ public class UpgradeResourceProviderTest {
Cluster cluster = clusters.getCluster("c1");
Service service = cluster.getService("ZOOKEEPER");
- // this should get skipped
- ServiceComponent component = service.getServiceComponent("ZOOKEEPER_SERVER");
- ServiceComponentHost sch = component.addServiceComponentHost("h2");
- sch.setVersion(repoVersionEntity2200.getVersion());
-
// start out with 0 (sanity check)
List<UpgradeEntity> upgrades = upgradeDao.findUpgrades(cluster.getClusterId());
assertEquals(0, upgrades.size());
@@ -616,10 +611,32 @@ public class UpgradeResourceProviderTest {
upgradeEntity.setUpgradeType(UpgradeType.ROLLING);
upgradeEntity.setRequestEntity(requestEntity);
+ UpgradeHistoryEntity history = new UpgradeHistoryEntity();
+ history.setUpgrade(upgradeEntity);
+ history.setFromRepositoryVersion(service.getDesiredRepositoryVersion());
+ history.setTargetRepositoryVersion(repoVersionEntity2200);
+ history.setServiceName(service.getName());
+ history.setComponentName("ZOKKEEPER_SERVER");
+ upgradeEntity.addHistory(history);
+
+ history = new UpgradeHistoryEntity();
+ history.setUpgrade(upgradeEntity);
+ history.setFromRepositoryVersion(service.getDesiredRepositoryVersion());
+ history.setTargetRepositoryVersion(repoVersionEntity2200);
+ history.setServiceName(service.getName());
+ history.setComponentName("ZOKKEEPER_CLIENT");
+ upgradeEntity.addHistory(history);
+
upgradeDao.create(upgradeEntity);
upgrades = upgradeDao.findUpgrades(cluster.getClusterId());
assertEquals(1, upgrades.size());
+ // push a ZK server foward to the new repo version, leaving the old one on
+ // the old version
+ ServiceComponent component = service.getServiceComponent("ZOOKEEPER_SERVER");
+ ServiceComponentHost sch = component.addServiceComponentHost("h2");
+ sch.setVersion(repoVersionEntity2200.getVersion());
+
UpgradeEntity lastUpgrade = upgradeDao.findLastUpgradeForCluster(cluster.getClusterId(), Direction.UPGRADE);
assertNotNull(lastUpgrade);
@@ -645,10 +662,11 @@ public class UpgradeResourceProviderTest {
List<UpgradeGroupEntity> upgradeGroups = downgrade.getUpgradeGroups();
assertEquals(3, upgradeGroups.size());
+ // the ZK restart group should only have 3 entries since the ZK server on h1
+ // didn't get upgraded
UpgradeGroupEntity group = upgradeGroups.get(1);
assertEquals("ZOOKEEPER", group.getName());
- assertEquals(4, group.getItems().size());
-
+ assertEquals(3, group.getItems().size());
}
@@ -1036,7 +1054,7 @@ public class UpgradeResourceProviderTest {
@Test
public void testCreateCrossStackUpgrade() throws Exception {
Cluster cluster = clusters.getCluster("c1");
- StackId oldStack = cluster.getDesiredStackVersion();
+ StackId oldStack = repoVersionEntity2110.getStackId();
for (Service s : cluster.getServices().values()) {
assertEquals(oldStack, s.getDesiredStackId());
@@ -1054,6 +1072,7 @@ public class UpgradeResourceProviderTest {
Config config = configFactory.createNew(cluster, "zoo.cfg", "abcdefg", Collections.singletonMap("a", "b"), null);
cluster.addDesiredConfig("admin", Collections.singleton(config));
+ // create the upgrade across major versions
Map<String, Object> requestProps = new HashMap<>();
requestProps.put(UpgradeResourceProvider.UPGRADE_CLUSTER_NAME, "c1");
requestProps.put(UpgradeResourceProvider.UPGRADE_REPO_VERSION_ID, String.valueOf(repoVersionEntity2200.getId()));
@@ -1062,7 +1081,6 @@ public class UpgradeResourceProviderTest {
requestProps.put(UpgradeResourceProvider.UPGRADE_DIRECTION, Direction.UPGRADE.name());
ResourceProvider upgradeResourceProvider = createProvider(amc);
-
Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProps), null);
upgradeResourceProvider.createResources(request);
@@ -1080,10 +1098,6 @@ public class UpgradeResourceProviderTest {
assertTrue(cluster.getDesiredConfigs().containsKey("zoo.cfg"));
- StackId newStack = cluster.getDesiredStackVersion();
-
- assertFalse(oldStack.equals(newStack));
-
for (Service s : cluster.getServices().values()) {
assertEquals(repoVersionEntity2200, s.getDesiredRepositoryVersion());
@@ -1094,135 +1108,6 @@ public class UpgradeResourceProviderTest {
}
/**
- * Tests merging configurations between existing and new stack values on
- * upgrade.
- *
- * @throws Exception
- */
- @Test
- public void testMergeConfigurations() throws Exception {
- RepositoryVersionEntity repoVersion211 = createNiceMock(RepositoryVersionEntity.class);
- RepositoryVersionEntity repoVersion220 = createNiceMock(RepositoryVersionEntity.class);
-
- StackId stack211 = new StackId("HDP-2.1.1");
- StackId stack220 = new StackId("HDP-2.2.0");
-
- String version211 = "2.1.1.0-1234";
- String version220 = "2.2.0.0-1234";
-
- EasyMock.expect(repoVersion211.getStackId()).andReturn(stack211).atLeastOnce();
- EasyMock.expect(repoVersion211.getVersion()).andReturn(version211).atLeastOnce();
-
- EasyMock.expect(repoVersion220.getStackId()).andReturn(stack220).atLeastOnce();
- EasyMock.expect(repoVersion220.getVersion()).andReturn(version220).atLeastOnce();
-
- Map<String, Map<String, String>> stack211Configs = new HashMap<>();
- Map<String, String> stack211FooType = new HashMap<>();
- Map<String, String> stack211BarType = new HashMap<>();
- Map<String, String> stack211BazType = new HashMap<>();
- stack211Configs.put("foo-site", stack211FooType);
- stack211Configs.put("bar-site", stack211BarType);
- stack211Configs.put("baz-site", stack211BazType);
- stack211FooType.put("1", "one");
- stack211FooType.put("11", "one-one");
- stack211BarType.put("2", "two");
- stack211BazType.put("3", "three");
-
- Map<String, Map<String, String>> stack220Configs = new HashMap<>();
- Map<String, String> stack220FooType = new HashMap<>();
- Map<String, String> stack220BazType = new HashMap<>();
- Map<String, String> stack220FlumeEnvType = new HashMap<>();
- stack220Configs.put("foo-site", stack220FooType);
- stack220Configs.put("baz-site", stack220BazType);
- stack220Configs.put("flume-env", stack220FlumeEnvType);
- stack220FooType.put("1", "one-new");
- stack220FooType.put("111", "one-one-one");
- stack220BazType.put("3", "three-new");
- stack220FlumeEnvType.put("flume_env_key", "flume-env-value");
-
- Map<String, String> clusterFooType = new HashMap<>();
- Map<String, String> clusterBarType = new HashMap<>();
- Map<String, String> clusterBazType = new HashMap<>();
-
- Config fooConfig = EasyMock.createNiceMock(Config.class);
- Config barConfig = EasyMock.createNiceMock(Config.class);
- Config bazConfig = EasyMock.createNiceMock(Config.class);
-
- clusterFooType.put("1", "one");
- clusterFooType.put("11", "one-one");
- clusterBarType.put("2", "two");
- clusterBazType.put("3", "three-changed");
-
- expect(fooConfig.getProperties()).andReturn(clusterFooType);
- expect(barConfig.getProperties()).andReturn(clusterBarType);
- expect(bazConfig.getProperties()).andReturn(clusterBazType);
-
- Map<String, DesiredConfig> desiredConfigurations = new HashMap<>();
- desiredConfigurations.put("foo-site", null);
- desiredConfigurations.put("bar-site", null);
- desiredConfigurations.put("baz-site", null);
-
- Cluster cluster = EasyMock.createNiceMock(Cluster.class);
- expect(cluster.getCurrentStackVersion()).andReturn(stack211).atLeastOnce();
- expect(cluster.getDesiredStackVersion()).andReturn(stack220);
- expect(cluster.getDesiredConfigs()).andReturn(desiredConfigurations);
- expect(cluster.getDesiredConfigByType("foo-site")).andReturn(fooConfig);
- expect(cluster.getDesiredConfigByType("bar-site")).andReturn(barConfig);
- expect(cluster.getDesiredConfigByType("baz-site")).andReturn(bazConfig);
-
- // setup the config helper for placeholder resolution
- EasyMock.reset(configHelper);
-
- expect(
- configHelper.getDefaultProperties(EasyMock.eq(stack211), EasyMock.anyString())).andReturn(
- stack211Configs).anyTimes();
-
- expect(
- configHelper.getDefaultProperties(EasyMock.eq(stack220), EasyMock.anyString())).andReturn(
- stack220Configs).anyTimes();
-
- Capture<Map<String, Map<String, String>>> expectedConfigurationsCapture = EasyMock.newCapture();
-
- configHelper.createConfigTypes(EasyMock.anyObject(Cluster.class),
- EasyMock.anyObject(AmbariManagementController.class),
- EasyMock.anyObject(StackId.class),
- EasyMock.capture(expectedConfigurationsCapture),
- EasyMock.anyObject(String.class), EasyMock.anyObject(String.class));
-
- EasyMock.expectLastCall().once();
-
- EasyMock.replay(configHelper, cluster, fooConfig, barConfig, bazConfig);
-
- Map<String, UpgradePack> upgradePacks = ambariMetaInfo.getUpgradePacks("HDP", "2.1.1");
- UpgradePack upgradePack = upgradePacks.get("upgrade_to_new_stack");
-
- UpgradeContext upgradeContext = EasyMock.createNiceMock(UpgradeContext.class);
- EasyMock.expect(upgradeContext.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- EasyMock.expect(upgradeContext.getCluster()).andReturn(cluster).anyTimes();
- EasyMock.expect(upgradeContext.getDirection()).andReturn(Direction.UPGRADE).anyTimes();
- EasyMock.expect(upgradeContext.getUpgradePack()).andReturn(upgradePack).anyTimes();
- EasyMock.expect(upgradeContext.getRepositoryVersion()).andReturn(repoVersion211).anyTimes();
- EasyMock.expect(upgradeContext.getTargetRepositoryVersion(EasyMock.anyString())).andReturn(repoVersion220).anyTimes();
-
- Map<String, Map<String, String>> expectedConfigurations = expectedConfigurationsCapture.getValue();
- Map<String, String> expectedFooType = expectedConfigurations.get("foo-site");
- Map<String, String> expectedBarType = expectedConfigurations.get("bar-site");
- Map<String, String> expectedBazType = expectedConfigurations.get("baz-site");
-
- // As the upgrade pack did not have any Flume updates, its configs should not be updated.
- assertFalse(expectedConfigurations.containsKey("flume-env"));
-
- // the really important values are one-new and three-changed; one-new
- // indicates that the new stack value is changed since it was not customized
- // while three-changed represents that the customized value was preserved
- // even though the stack value changed
- assertEquals("one-new", expectedFooType.get("1"));
- assertEquals("one-one", expectedFooType.get("11"));
- assertEquals("two", expectedBarType.get("2"));
- assertEquals("three-changed", expectedBazType.get("3"));
- }
-
- /**
* @param amc
* @return the provider
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
index f306d69..54b16a9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
@@ -18,7 +18,6 @@
package org.apache.ambari.server.serveraction.upgrades;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -47,12 +46,14 @@ import org.apache.ambari.server.controller.ServiceConfigVersionResponse;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
import org.apache.ambari.server.orm.dao.HostDAO;
import org.apache.ambari.server.orm.dao.HostVersionDAO;
import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.ambari.server.orm.dao.RequestDAO;
import org.apache.ambari.server.orm.dao.StackDAO;
import org.apache.ambari.server.orm.dao.UpgradeDAO;
+import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
import org.apache.ambari.server.orm.entities.HostVersionEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.orm.entities.RequestEntity;
@@ -74,6 +75,7 @@ import org.apache.ambari.server.state.ServiceComponentHostFactory;
import org.apache.ambari.server.state.ServiceFactory;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.State;
+import org.apache.ambari.server.state.UpgradeState;
import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.apache.ambari.server.utils.EventBusSynchronizer;
@@ -139,6 +141,9 @@ public class UpgradeActionTest {
@Inject
private ConfigFactory configFactory;
+ @Inject
+ private HostComponentStateDAO hostComponentStateDAO;
+
private RepositoryVersionEntity repositoryVersion2110;
private RepositoryVersionEntity repositoryVersion2111;
private RepositoryVersionEntity repositoryVersion2201;
@@ -417,9 +422,29 @@ public class UpgradeActionTest {
finalizeUpgradeAction.setExecutionCommand(executionCommand);
finalizeUpgradeAction.setHostRoleCommand(hostRoleCommand);
+ // this should fail since the host versions have not moved to current
CommandReport report = finalizeUpgradeAction.execute(null);
- assertNotNull(report);
+ assertEquals(HostRoleStatus.FAILED.name(), report.getStatus());
+
+ List<HostVersionEntity> hostVersions = hostVersionDAO.findHostVersionByClusterAndRepository(
+ cluster.getClusterId(), repositoryVersion2111);
+
+ for (HostVersionEntity hostVersion : hostVersions) {
+ hostVersion.setState(RepositoryVersionState.CURRENT);
+ }
+
+ report = finalizeUpgradeAction.execute(null);
assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
+
+ hostVersions = hostVersionDAO.findHostVersionByClusterAndRepository(cluster.getClusterId(),
+ repositoryVersion2111);
+
+ for (HostVersionEntity hostVersion : hostVersions) {
+ Collection<HostComponentStateEntity> hostComponentStates = hostComponentStateDAO.findByHost(hostVersion.getHostName());
+ for (HostComponentStateEntity hostComponentStateEntity: hostComponentStates) {
+ assertEquals(UpgradeState.NONE, hostComponentStateEntity.getUpgradeState());
+ }
+ }
}
/**
@@ -472,218 +497,6 @@ public class UpgradeActionTest {
assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
}
- @Test
- public void testFinalizeUpgradeAcrossStacks() throws Exception {
- StackId sourceStack = HDP_21_STACK;
- StackId targetStack = HDP_22_STACK;
- String sourceRepo = HDP_2_1_1_0;
- String targetRepo = HDP_2_2_0_1;
- String hostName = "h1";
-
- makeCrossStackUpgradeClusterAndSourceRepo(sourceStack, sourceRepo, hostName);
- makeCrossStackUpgradeTargetRepo(targetStack, targetRepo, hostName);
-
- Cluster cluster = clusters.getCluster(clusterName);
-
- // setup the cluster for the upgrade across stacks
- cluster.setCurrentStackVersion(sourceStack);
- cluster.setDesiredStackVersion(targetStack);
-
- createUpgrade(cluster, repositoryVersion2201);
-
- Map<String, String> commandParams = new HashMap<>();
- ExecutionCommand executionCommand = new ExecutionCommand();
- executionCommand.setCommandParams(commandParams);
- executionCommand.setClusterName(clusterName);
-
- HostRoleCommand hostRoleCommand = hostRoleCommandFactory.create(null, null, null, null);
-
- hostRoleCommand.setExecutionCommandWrapper(new ExecutionCommandWrapper(executionCommand));
-
- finalizeUpgradeAction.setExecutionCommand(executionCommand);
- finalizeUpgradeAction.setHostRoleCommand(hostRoleCommand);
-
- CommandReport report = finalizeUpgradeAction.execute(null);
- assertNotNull(report);
- assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
-
- StackId currentStackId = cluster.getCurrentStackVersion();
- StackId desiredStackId = cluster.getDesiredStackVersion();
-
- // verify current/desired stacks are updated to the new stack
- assertEquals(desiredStackId, currentStackId);
- assertEquals(targetStack, currentStackId);
- assertEquals(targetStack, desiredStackId);
- }
-
- /**
- * Tests some of the action items are completed when finalizing downgrade
- * across stacks (HDP 2.2 -> HDP 2.3).
- *
- * @throws Exception
- */
- @Test
- public void testFinalizeDowngradeAcrossStacks() throws Exception {
- StackId sourceStack = HDP_21_STACK;
- StackId targetStack = HDP_22_STACK;
- String sourceRepo = HDP_2_1_1_0;
- String targetRepo = HDP_2_2_0_1;
- String hostName = "h1";
-
- makeCrossStackUpgradeClusterAndSourceRepo(sourceStack, sourceRepo, hostName);
- Cluster cluster = clusters.getCluster(clusterName);
-
- // install HDFS with some components
- Service service = installService(cluster, "HDFS");
- addServiceComponent(cluster, service, "NAMENODE");
- addServiceComponent(cluster, service, "DATANODE");
- createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", "h1");
- createNewServiceComponentHost(cluster, "HDFS", "DATANODE", "h1");
-
- makeCrossStackUpgradeTargetRepo(targetStack, targetRepo, hostName);
-
- createUpgrade(cluster, repositoryVersion2201);
-
- // create some configs
- createConfigs(cluster);
-
- // setup the cluster for the upgrade across stacks
- cluster.setCurrentStackVersion(sourceStack);
- cluster.setDesiredStackVersion(targetStack);
-
- // now that the desired version is set, we can create some new configs in
- // the new stack version
- createConfigs(cluster);
-
- // verify we have configs in both HDP stacks
- cluster = clusters.getCluster(clusterName);
- Collection<Config> configs = cluster.getAllConfigs();
- assertEquals(8, configs.size());
-
- Map<String, String> commandParams = new HashMap<>();
- ExecutionCommand executionCommand = new ExecutionCommand();
- executionCommand.setCommandParams(commandParams);
- executionCommand.setClusterName(clusterName);
-
- HostRoleCommand hostRoleCommand = hostRoleCommandFactory.create(null, null, null, null);
-
- hostRoleCommand.setExecutionCommandWrapper(new ExecutionCommandWrapper(executionCommand));
-
- HostVersionDAO dao = m_injector.getInstance(HostVersionDAO.class);
-
- List<HostVersionEntity> hosts = dao.findByClusterStackAndVersion(clusterName, targetStack, targetRepo);
- assertFalse(hosts.isEmpty());
- for (HostVersionEntity hve : hosts) {
- assertTrue(hve.getState() == RepositoryVersionState.INSTALLED);
- }
-
- finalizeUpgradeAction.setExecutionCommand(executionCommand);
- finalizeUpgradeAction.setHostRoleCommand(hostRoleCommand);
-
- CommandReport report = finalizeUpgradeAction.execute(null);
- assertNotNull(report);
- assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
-
- StackId currentStackId = cluster.getCurrentStackVersion();
- StackId desiredStackId = cluster.getDesiredStackVersion();
-
- // verify current/desired stacks are back to normal
- assertEquals(desiredStackId, currentStackId);
- assertEquals(sourceStack, currentStackId);
- assertEquals(sourceStack, desiredStackId);
-
- // verify we have configs in only 1 stack
- cluster = clusters.getCluster(clusterName);
- configs = cluster.getAllConfigs();
- assertEquals(4, configs.size());
-
- hosts = dao.findByClusterStackAndVersion(clusterName, targetStack, targetRepo);
- assertFalse(hosts.isEmpty());
- for (HostVersionEntity hve : hosts) {
- assertTrue(hve.getState() == RepositoryVersionState.INSTALLED);
- }
- }
-
- /**
- * Tests that finalization can occur when the cluster state is
- * {@link RepositoryVersionState#UPGRADING} if all of the hosts and components
- * are reporting correct versions and states.
- *
- * @throws Exception
- */
- @Test
- public void testFinalizeUpgradeWithClusterStateInconsistencies() throws Exception {
- StackId sourceStack = HDP_21_STACK;
- StackId targetStack = HDP_22_STACK;
- String sourceRepo = HDP_2_1_1_0;
- String targetRepo = HDP_2_2_0_1;
- String hostName = "h1";
-
- makeCrossStackUpgradeClusterAndSourceRepo(sourceStack, sourceRepo, hostName);
-
- Cluster cluster = clusters.getCluster(clusterName);
-
- Service service = installService(cluster, "HDFS");
- addServiceComponent(cluster, service, "NAMENODE");
- addServiceComponent(cluster, service, "DATANODE");
- createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", "h1");
- createNewServiceComponentHost(cluster, "HDFS", "DATANODE", "h1");
-
- makeCrossStackUpgradeTargetRepo(targetStack, targetRepo, hostName);
- // create some configs
- createConfigs(cluster);
-
- // setup the cluster for the upgrade across stacks
- cluster.setCurrentStackVersion(sourceStack);
- cluster.setDesiredStackVersion(targetStack);
-
- createUpgrade(cluster, repositoryVersion2201);
-
- // set the SCH versions to the new stack so that the finalize action is
- // happy
- cluster.getServiceComponentHosts("HDFS", "NAMENODE").get(0).setVersion(targetRepo);
- cluster.getServiceComponentHosts("HDFS", "DATANODE").get(0).setVersion(targetRepo);
-
- // inject an unhappy path where the cluster repo version is still UPGRADING
- // even though all of the hosts are UPGRADED
-
-
- // verify the conditions for the test are met properly
- List<HostVersionEntity> hostVersions = hostVersionDAO.findByClusterStackAndVersion(clusterName, HDP_22_STACK, targetRepo);
-
- assertTrue(hostVersions.size() > 0);
- for (HostVersionEntity hostVersion : hostVersions) {
- assertEquals(RepositoryVersionState.INSTALLED, hostVersion.getState());
- }
-
- // now finalize and ensure we can transition from UPGRADING to UPGRADED
- // automatically before CURRENT
- Map<String, String> commandParams = new HashMap<>();
- ExecutionCommand executionCommand = new ExecutionCommand();
- executionCommand.setCommandParams(commandParams);
- executionCommand.setClusterName(clusterName);
-
- HostRoleCommand hostRoleCommand = hostRoleCommandFactory.create(null, null, null, null);
-
- hostRoleCommand.setExecutionCommandWrapper(new ExecutionCommandWrapper(executionCommand));
-
- finalizeUpgradeAction.setExecutionCommand(executionCommand);
- finalizeUpgradeAction.setHostRoleCommand(hostRoleCommand);
-
- CommandReport report = finalizeUpgradeAction.execute(null);
- assertNotNull(report);
- assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
-
- StackId currentStackId = cluster.getCurrentStackVersion();
- StackId desiredStackId = cluster.getDesiredStackVersion();
-
- // verify current/desired stacks are updated to the new stack
- assertEquals(desiredStackId, currentStackId);
- assertEquals(targetStack, currentStackId);
- assertEquals(targetStack, desiredStackId);
- }
-
-
private ServiceComponentHost createNewServiceComponentHost(Cluster cluster, String svc,
String svcComponent, String hostName) throws AmbariException {
Assert.assertNotNull(cluster.getConfigGroups());
http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
index 24c529d..cab1c8d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
@@ -17,7 +17,9 @@
*/
package org.apache.ambari.server.state;
+import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -50,7 +52,10 @@ import org.apache.ambari.server.controller.ConfigurationRequest;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.ServiceConfigDAO;
+import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
+import org.apache.ambari.server.orm.entities.ServiceConfigEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
import org.apache.ambari.server.stack.HostsType;
@@ -80,6 +85,7 @@ import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.apache.ambari.server.utils.EventBusSynchronizer;
import org.easymock.Capture;
import org.easymock.EasyMock;
+import org.easymock.EasyMockSupport;
import org.easymock.IAnswer;
import org.junit.After;
import org.junit.Before;
@@ -94,13 +100,14 @@ import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
+import com.google.inject.Provider;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import com.google.inject.util.Modules;
/**
* Tests the {@link UpgradeHelper} class
*/
-public class UpgradeHelperTest {
+public class UpgradeHelperTest extends EasyMockSupport {
private static final StackId STACK_ID_HDP_211 = new StackId("HDP-2.1.1");
private static final StackId STACK_ID_HDP_220 = new StackId("HDP-2.2.0");
@@ -460,7 +467,7 @@ public class UpgradeHelperTest {
// use a "real" master host resolver here so that we can actually test MM
MasterHostResolver masterHostResolver = new MasterHostResolver(cluster, null, context);
- EasyMock.expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
+ expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
replay(context);
List<UpgradeGroupHolder> groups = m_upgradeHelper.createSequence(upgrade, context);
@@ -1560,7 +1567,7 @@ public class UpgradeHelperTest {
UpgradeType.HOST_ORDERED, repositoryVersion2110);
MasterHostResolver resolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(resolver).anyTimes();
+ expect(context.getResolver()).andReturn(resolver).anyTimes();
replay(context);
HostsType ht = resolver.getMasterAndHosts("ZOOKEEPER", "ZOOKEEPER_SERVER");
@@ -1635,7 +1642,7 @@ public class UpgradeHelperTest {
// use a "real" master host resolver here so that we can actually test MM
MasterHostResolver mhr = new MockMasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(mhr).anyTimes();
+ expect(context.getResolver()).andReturn(mhr).anyTimes();
replay(context);
@@ -1704,7 +1711,7 @@ public class UpgradeHelperTest {
// use a "real" master host resolver here so that we can actually test MM
MasterHostResolver mhr = new BadMasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(mhr).anyTimes();
+ expect(context.getResolver()).andReturn(mhr).anyTimes();
replay(context);
HostsType ht = mhr.getMasterAndHosts("HDFS", "NAMENODE");
@@ -1842,7 +1849,7 @@ public class UpgradeHelperTest {
// use a "real" master host resolver here so that we can actually test MM
MasterHostResolver masterHostResolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
+ expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
replay(context);
List<UpgradeGroupHolder> groups = m_upgradeHelper.createSequence(upgradePack, context);
@@ -1858,7 +1865,7 @@ public class UpgradeHelperTest {
// use a "real" master host resolver here so that we can actually test MM
masterHostResolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
+ expect(context.getResolver()).andReturn(masterHostResolver).anyTimes();
replay(context);
groups = m_upgradeHelper.createSequence(upgradePack, context);
@@ -2124,7 +2131,7 @@ public class UpgradeHelperTest {
UpgradeType.HOST_ORDERED, repoVersion220);
MasterHostResolver resolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(resolver).anyTimes();
+ expect(context.getResolver()).andReturn(resolver).anyTimes();
replay(context);
@@ -2168,7 +2175,7 @@ public class UpgradeHelperTest {
repoVersion211);
resolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(resolver).anyTimes();
+ expect(context.getResolver()).andReturn(resolver).anyTimes();
replay(context);
groups = m_upgradeHelper.createSequence(upgradePack, context);
@@ -2185,7 +2192,7 @@ public class UpgradeHelperTest {
repoVersion211);
resolver = new MasterHostResolver(c, m_configHelper, context);
- EasyMock.expect(context.getResolver()).andReturn(resolver).anyTimes();
+ expect(context.getResolver()).andReturn(resolver).anyTimes();
replay(context);
groups = m_upgradeHelper.createSequence(upgradePack, context);
@@ -2243,6 +2250,182 @@ public class UpgradeHelperTest {
}
/**
+ * Tests merging configurations between existing and new stack values on
+ * upgrade.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testMergeConfigurations() throws Exception {
+ RepositoryVersionEntity repoVersion211 = createNiceMock(RepositoryVersionEntity.class);
+ RepositoryVersionEntity repoVersion220 = createNiceMock(RepositoryVersionEntity.class);
+
+ StackId stack211 = new StackId("HDP-2.1.1");
+ StackId stack220 = new StackId("HDP-2.2.0");
+
+ String version211 = "2.1.1.0-1234";
+ String version220 = "2.2.0.0-1234";
+
+ expect(repoVersion211.getStackId()).andReturn(stack211).atLeastOnce();
+ expect(repoVersion211.getVersion()).andReturn(version211).atLeastOnce();
+
+ expect(repoVersion220.getStackId()).andReturn(stack220).atLeastOnce();
+ expect(repoVersion220.getVersion()).andReturn(version220).atLeastOnce();
+
+ Map<String, Map<String, String>> stack211Configs = new HashMap<>();
+ Map<String, String> stack211FooType = new HashMap<>();
+ Map<String, String> stack211BarType = new HashMap<>();
+ Map<String, String> stack211BazType = new HashMap<>();
+ stack211Configs.put("foo-site", stack211FooType);
+ stack211Configs.put("bar-site", stack211BarType);
+ stack211Configs.put("baz-site", stack211BazType);
+ stack211FooType.put("1", "one");
+ stack211FooType.put("1A", "one-A");
+ stack211BarType.put("2", "two");
+ stack211BazType.put("3", "three");
+
+ Map<String, Map<String, String>> stack220Configs = new HashMap<>();
+ Map<String, String> stack220FooType = new HashMap<>();
+ Map<String, String> stack220BazType = new HashMap<>();
+ stack220Configs.put("foo-site", stack220FooType);
+ stack220Configs.put("baz-site", stack220BazType);
+ stack220FooType.put("1", "one-new");
+ stack220FooType.put("1A1", "one-A-one");
+ stack220BazType.put("3", "three-new");
+
+ Map<String, String> existingFooType = new HashMap<>();
+ Map<String, String> existingBarType = new HashMap<>();
+ Map<String, String> existingBazType = new HashMap<>();
+
+ ClusterConfigEntity fooConfigEntity = createNiceMock(ClusterConfigEntity.class);
+ ClusterConfigEntity barConfigEntity = createNiceMock(ClusterConfigEntity.class);
+ ClusterConfigEntity bazConfigEntity = createNiceMock(ClusterConfigEntity.class);
+
+ expect(fooConfigEntity.getType()).andReturn("foo-site");
+ expect(barConfigEntity.getType()).andReturn("bar-site");
+ expect(bazConfigEntity.getType()).andReturn("baz-site");
+
+ Config fooConfig = createNiceMock(Config.class);
+ Config barConfig = createNiceMock(Config.class);
+ Config bazConfig = createNiceMock(Config.class);
+
+ existingFooType.put("1", "one");
+ existingFooType.put("1A", "one-A");
+ existingBarType.put("2", "two");
+ existingBazType.put("3", "three-changed");
+
+ expect(fooConfig.getType()).andReturn("foo-site").atLeastOnce();
+ expect(barConfig.getType()).andReturn("bar-site").atLeastOnce();
+ expect(bazConfig.getType()).andReturn("baz-site").atLeastOnce();
+ expect(fooConfig.getProperties()).andReturn(existingFooType);
+ expect(barConfig.getProperties()).andReturn(existingBarType);
+ expect(bazConfig.getProperties()).andReturn(existingBazType);
+
+ Map<String, DesiredConfig> desiredConfigurations = new HashMap<>();
+ desiredConfigurations.put("foo-site", null);
+ desiredConfigurations.put("bar-site", null);
+ desiredConfigurations.put("baz-site", null);
+
+ Service zookeeper = createNiceMock(Service.class);
+ expect(zookeeper.getName()).andReturn("ZOOKEEPER").atLeastOnce();
+ expect(zookeeper.getServiceComponents()).andReturn(
+ new HashMap<String, ServiceComponent>()).once();
+ zookeeper.setDesiredRepositoryVersion(repoVersion220);
+ expectLastCall().once();
+
+ Cluster cluster = createNiceMock(Cluster.class);
+ expect(cluster.getCurrentStackVersion()).andReturn(stack211).atLeastOnce();
+ expect(cluster.getDesiredStackVersion()).andReturn(stack220);
+ expect(cluster.getDesiredConfigs()).andReturn(desiredConfigurations);
+ expect(cluster.getDesiredConfigByType("foo-site")).andReturn(fooConfig);
+ expect(cluster.getDesiredConfigByType("bar-site")).andReturn(barConfig);
+ expect(cluster.getDesiredConfigByType("baz-site")).andReturn(bazConfig);
+ expect(cluster.getService("ZOOKEEPER")).andReturn(zookeeper);
+ expect(cluster.getDesiredConfigByType("foo-type")).andReturn(fooConfig);
+ expect(cluster.getDesiredConfigByType("bar-type")).andReturn(barConfig);
+ expect(cluster.getDesiredConfigByType("baz-type")).andReturn(bazConfig);
+
+ // setup the config helper for placeholder resolution
+ @SuppressWarnings("unchecked")
+ Provider<ConfigHelper> configHelperProvider = EasyMock.createNiceMock(Provider.class);
+ ConfigHelper configHelper = EasyMock.createNiceMock(ConfigHelper.class);
+
+ expect(configHelperProvider.get()).andStubReturn(configHelper);
+
+ expect(configHelper.getDefaultProperties(stack211, "ZOOKEEPER")).andReturn(
+ stack211Configs).anyTimes();
+
+ expect(configHelper.getDefaultProperties(stack220, "ZOOKEEPER")).andReturn(
+ stack220Configs).anyTimes();
+
+ Capture<Map<String, Map<String, String>>> expectedConfigurationsCapture = EasyMock.newCapture();
+
+ configHelper.createConfigTypes(EasyMock.anyObject(Cluster.class),
+ EasyMock.anyObject(AmbariManagementController.class), EasyMock.anyObject(StackId.class),
+ EasyMock.capture(expectedConfigurationsCapture), EasyMock.anyObject(String.class),
+ EasyMock.anyObject(String.class));
+
+ expectLastCall().once();
+ EasyMock.replay(configHelperProvider, configHelper);
+
+ // mock the service config DAO and replay it
+ ServiceConfigEntity zookeeperServiceConfig = createNiceMock(ServiceConfigEntity.class);
+ expect(zookeeperServiceConfig.getClusterConfigEntities()).andReturn(
+ Lists.newArrayList(fooConfigEntity, barConfigEntity, bazConfigEntity));
+
+ ServiceConfigDAO serviceConfigDAOMock;
+ serviceConfigDAOMock = EasyMock.createNiceMock(ServiceConfigDAO.class);
+
+ List<ServiceConfigEntity> latestServiceConfigs = Lists.newArrayList(zookeeperServiceConfig);
+ expect(serviceConfigDAOMock.getLastServiceConfigsForService(EasyMock.anyLong(),
+ eq("ZOOKEEPER"))).andReturn(latestServiceConfigs).once();
+
+ replay(serviceConfigDAOMock);
+
+ Map<String, UpgradePack> upgradePacks = ambariMetaInfo.getUpgradePacks("HDP", "2.1.1");
+ UpgradePack upgradePack = upgradePacks.get("upgrade_to_new_stack");
+
+ UpgradeContext context = createNiceMock(UpgradeContext.class);
+ expect(context.getCluster()).andReturn(cluster).atLeastOnce();
+ expect(context.getType()).andReturn(UpgradeType.ROLLING).atLeastOnce();
+ expect(context.getDirection()).andReturn(Direction.UPGRADE).atLeastOnce();
+ expect(context.getRepositoryVersion()).andReturn(repoVersion220).anyTimes();
+ expect(context.getSupportedServices()).andReturn(Sets.newHashSet("ZOOKEEPER")).atLeastOnce();
+ expect(context.getSourceRepositoryVersion(EasyMock.anyString())).andReturn(repoVersion211).atLeastOnce();
+ expect(context.getTargetRepositoryVersion(EasyMock.anyString())).andReturn(repoVersion220).atLeastOnce();
+ expect(context.getRepositoryType()).andReturn(RepositoryType.STANDARD).anyTimes();
+ expect(context.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
+ expect(context.getHostRoleCommandFactory()).andStubReturn(injector.getInstance(HostRoleCommandFactory.class));
+ expect(context.getRoleGraphFactory()).andStubReturn(injector.getInstance(RoleGraphFactory.class));
+ expect(context.getUpgradePack()).andReturn(upgradePack).atLeastOnce();
+
+ replayAll();
+
+ UpgradeHelper upgradeHelper = injector.getInstance(UpgradeHelper.class);
+ upgradeHelper.m_serviceConfigDAO = serviceConfigDAOMock;
+ upgradeHelper.m_configHelperProvider = configHelperProvider;
+ upgradeHelper.updateDesiredRepositoriesAndConfigs(context);
+
+ Map<String, Map<String, String>> expectedConfigurations = expectedConfigurationsCapture.getValue();
+ Map<String, String> expectedFooType = expectedConfigurations.get("foo-site");
+ Map<String, String> expectedBarType = expectedConfigurations.get("bar-site");
+ Map<String, String> expectedBazType = expectedConfigurations.get("baz-site");
+
+ // As the upgrade pack did not have any Flume updates, its configs should
+ // not be updated.
+ assertEquals(3, expectedConfigurations.size());
+
+ // the really important values are one-new and three-changed; one-new
+ // indicates that the new stack value is changed since it was not customized
+ // while three-changed represents that the customized value was preserved
+ // even though the stack value changed
+ assertEquals("one-new", expectedFooType.get("1"));
+ assertEquals("one-A", expectedFooType.get("1A"));
+ assertEquals("two", expectedBarType.get("2"));
+ assertEquals("three-changed", expectedBazType.get("3"));
+ }
+
+ /**
* @param cluster
* @param direction
* @param type
@@ -2304,19 +2487,21 @@ public class UpgradeHelperTest {
UpgradeType type, RepositoryVersionEntity repositoryVersion, final RepositoryType repositoryType,
Set<String> services, MasterHostResolver resolver, boolean replay) {
UpgradeContext context = EasyMock.createNiceMock(UpgradeContext.class);
- EasyMock.expect(context.getCluster()).andReturn(cluster).anyTimes();
- EasyMock.expect(context.getType()).andReturn(type).anyTimes();
- EasyMock.expect(context.getDirection()).andReturn(direction).anyTimes();
- EasyMock.expect(context.getRepositoryVersion()).andReturn(repositoryVersion).anyTimes();
- EasyMock.expect(context.getSupportedServices()).andReturn(services).anyTimes();
- EasyMock.expect(context.getRepositoryType()).andReturn(repositoryType).anyTimes();
- EasyMock.expect(context.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- EasyMock.expect(context.getHostRoleCommandFactory()).andStubReturn(injector.getInstance(HostRoleCommandFactory.class));
- EasyMock.expect(context.getRoleGraphFactory()).andStubReturn(injector.getInstance(RoleGraphFactory.class));
+ expect(context.getCluster()).andReturn(cluster).anyTimes();
+ expect(context.getType()).andReturn(type).anyTimes();
+ expect(context.getDirection()).andReturn(direction).anyTimes();
+ expect(context.getRepositoryVersion()).andReturn(repositoryVersion).anyTimes();
+ expect(context.getSupportedServices()).andReturn(services).anyTimes();
+ expect(context.getRepositoryType()).andReturn(repositoryType).anyTimes();
+ expect(context.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
+ expect(context.getHostRoleCommandFactory()).andStubReturn(
+ injector.getInstance(HostRoleCommandFactory.class));
+ expect(context.getRoleGraphFactory()).andStubReturn(
+ injector.getInstance(RoleGraphFactory.class));
// only set this if supplied
if (null != resolver) {
- EasyMock.expect(context.getResolver()).andReturn(resolver).anyTimes();
+ expect(context.getResolver()).andReturn(resolver).anyTimes();
}
final Map<String, RepositoryVersionEntity> targetRepositoryVersions = new HashMap<>();
@@ -2325,7 +2510,7 @@ public class UpgradeHelperTest {
}
final Capture<String> repoVersionServiceName = EasyMock.newCapture();
- EasyMock.expect(
+ expect(
context.getTargetRepositoryVersion(EasyMock.capture(repoVersionServiceName))).andAnswer(
new IAnswer<RepositoryVersionEntity>() {
@Override
@@ -2335,7 +2520,7 @@ public class UpgradeHelperTest {
}).anyTimes();
final Capture<String> serviceNameSupported = EasyMock.newCapture();
- EasyMock.expect(context.isServiceSupported(EasyMock.capture(serviceNameSupported))).andAnswer(
+ expect(context.isServiceSupported(EasyMock.capture(serviceNameSupported))).andAnswer(
new IAnswer<Boolean>() {
@Override
public Boolean answer() {
@@ -2349,7 +2534,7 @@ public class UpgradeHelperTest {
final Capture<String> serviceDisplayNameArg2 = EasyMock.newCapture();
context.setServiceDisplay(EasyMock.capture(serviceDisplayNameArg1), EasyMock.capture(serviceDisplayNameArg2));
- EasyMock.expectLastCall().andAnswer(
+ expectLastCall().andAnswer(
new IAnswer<Object>() {
@Override
public Object answer() {
@@ -2367,7 +2552,7 @@ public class UpgradeHelperTest {
context.setComponentDisplay(EasyMock.capture(componentDisplayNameArg1),
EasyMock.capture(componentDisplayNameArg2), EasyMock.capture(componentDisplayNameArg3));
- EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
+ expectLastCall().andAnswer(new IAnswer<Object>() {
@Override
public Object answer() {
componentNames.put(
@@ -2378,7 +2563,7 @@ public class UpgradeHelperTest {
}).anyTimes();
final Capture<String> getServiceDisplayArgument1 = EasyMock.newCapture();
- EasyMock.expect(
+ expect(
context.getServiceDisplay(EasyMock.capture(getServiceDisplayArgument1))).andAnswer(
new IAnswer<String>() {
@Override
@@ -2389,7 +2574,7 @@ public class UpgradeHelperTest {
final Capture<String> getComponentDisplayArgument1 = EasyMock.newCapture();
final Capture<String> getComponentDisplayArgument2 = EasyMock.newCapture();
- EasyMock.expect(context.getComponentDisplay(EasyMock.capture(getComponentDisplayArgument1),
+ expect(context.getComponentDisplay(EasyMock.capture(getComponentDisplayArgument1),
EasyMock.capture(getComponentDisplayArgument2))).andAnswer(new IAnswer<String>() {
@Override
public String answer() {
@@ -2399,7 +2584,7 @@ public class UpgradeHelperTest {
}).anyTimes();
final Capture<UpgradeScope> isScopedCapture = EasyMock.newCapture();
- EasyMock.expect(context.isScoped(EasyMock.capture(isScopedCapture))).andStubAnswer(
+ expect(context.isScoped(EasyMock.capture(isScopedCapture))).andStubAnswer(
new IAnswer<Boolean>() {
@Override
public Boolean answer() throws Throwable {