http://git-wip-us.apache.org/repos/asf/ambari/blob/af1bf85c/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java
----------------------------------------------------------------------
diff --git
a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java
b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java
deleted file mode 100644
index ff859f0..0000000
---
a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ambari.server.upgrade;
-
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.anyString;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.createMockBuilder;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.createStrictMock;
-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.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.persistence.EntityManager;
-
-import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.actionmanager.ActionManager;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.AmbariManagementControllerImpl;
-import org.apache.ambari.server.controller.KerberosHelper;
-import org.apache.ambari.server.controller.MaintenanceStateHelper;
-import org.apache.ambari.server.orm.DBAccessor;
-import org.apache.ambari.server.orm.GuiceJpaInitializer;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
-import org.apache.ambari.server.orm.dao.StackDAO;
-import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
-import org.apache.ambari.server.orm.entities.StackEntity;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.Config;
-import org.apache.ambari.server.state.StackId;
-import org.apache.ambari.server.state.stack.OsFamily;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.google.common.collect.Maps;
-import com.google.gson.Gson;
-import com.google.inject.AbstractModule;
-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.persist.PersistService;
-
-import junit.framework.Assert;
-
-public class UpgradeCatalog221Test {
- private static Injector injector;
- private static Provider<EntityManager> entityManagerProvider =
createStrictMock(Provider.class);
- private static EntityManager entityManager =
createNiceMock(EntityManager.class);
- private static UpgradeCatalogHelper upgradeCatalogHelper;
- private static StackEntity desiredStackEntity;
-
- @BeforeClass
- public static void init() {
- reset(entityManagerProvider);
- expect(entityManagerProvider.get()).andReturn(entityManager).anyTimes();
- replay(entityManagerProvider);
- injector = Guice.createInjector(new InMemoryDefaultTestModule());
- injector.getInstance(GuiceJpaInitializer.class);
-
- upgradeCatalogHelper = injector.getInstance(UpgradeCatalogHelper.class);
- // inject AmbariMetaInfo to ensure that stacks get populated in the DB
- injector.getInstance(AmbariMetaInfo.class);
- // load the stack entity
- StackDAO stackDAO = injector.getInstance(StackDAO.class);
- desiredStackEntity = stackDAO.find("HDP", "2.2.0");
- }
-
- @AfterClass
- public static void tearDown() {
- injector.getInstance(PersistService.class).stop();
- }
-
- @Test
- public void testExecuteDDLUpdates() throws Exception{
- final DBAccessor dbAccessor = createNiceMock(DBAccessor.class);
-
- dbAccessor.createIndex(eq("idx_stage_request_id"), eq("stage"),
eq("request_id"));
- expectLastCall().once();
- dbAccessor.createIndex(eq("idx_hrc_request_id"), eq("host_role_command"),
eq("request_id"));
- expectLastCall().once();
- dbAccessor.createIndex(eq("idx_rsc_request_id"),
eq("role_success_criteria"), eq("request_id"));
- expectLastCall().once();
-
- Capture<DBAccessor.DBColumnInfo> capturedHostGroupComponentProvisionColumn
= EasyMock.newCapture();
- dbAccessor.addColumn(eq("hostgroup_component"),
capture(capturedHostGroupComponentProvisionColumn));
- expectLastCall().once();
-
-
- replay(dbAccessor);
- Module module = new Module() {
- @Override
- public void configure(Binder binder) {
- binder.bind(DBAccessor.class).toInstance(dbAccessor);
- binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
- binder.bind(EntityManager.class).toInstance(entityManager);
- }
- };
-
- Injector injector = Guice.createInjector(module);
- UpgradeCatalog221 upgradeCatalog221 =
injector.getInstance(UpgradeCatalog221.class);
- upgradeCatalog221.executeDDLUpdates();
-
- // verify that the column was added for provision_action to the
hostgroup_component table
- assertEquals("Incorrect column name added", "provision_action",
capturedHostGroupComponentProvisionColumn.getValue().getName());
- assertNull("Incorrect default value added",
capturedHostGroupComponentProvisionColumn.getValue().getDefaultValue());
- assertEquals("Incorrect column type added", String.class,
capturedHostGroupComponentProvisionColumn.getValue().getType());
- assertEquals("Incorrect column length added", 255,
capturedHostGroupComponentProvisionColumn.getValue().getLength().intValue());
- assertTrue("Incorrect column nullable state added",
capturedHostGroupComponentProvisionColumn.getValue().isNullable());
-
-
- verify(dbAccessor);
- }
-
- @Test
- public void testExecuteDMLUpdates() throws Exception {
- Method addNewConfigurationsFromXml =
AbstractUpgradeCatalog.class.getDeclaredMethod("addNewConfigurationsFromXml");
- Method updateAlerts =
UpgradeCatalog221.class.getDeclaredMethod("updateAlerts");
- Method updateOozieConfigs =
UpgradeCatalog221.class.getDeclaredMethod("updateOozieConfigs");
- Method updateTezConfigs =
UpgradeCatalog221.class.getDeclaredMethod("updateTezConfigs");
- Method updateRangerKmsDbksConfigs =
UpgradeCatalog221.class.getDeclaredMethod("updateRangerKmsDbksConfigs");
- Method updateAMSConfigs =
UpgradeCatalog221.class.getDeclaredMethod("updateAMSConfigs");
-
- UpgradeCatalog221 upgradeCatalog221 =
createMockBuilder(UpgradeCatalog221.class)
- .addMockedMethod(addNewConfigurationsFromXml)
- .addMockedMethod(updateAlerts)
- .addMockedMethod(updateOozieConfigs)
- .addMockedMethod(updateTezConfigs)
- .addMockedMethod(updateRangerKmsDbksConfigs)
- .addMockedMethod(updateAMSConfigs)
- .createMock();
-
- upgradeCatalog221.addNewConfigurationsFromXml();
- expectLastCall().once();
- upgradeCatalog221.updateAlerts();
- expectLastCall().once();
- upgradeCatalog221.updateOozieConfigs();
- expectLastCall().once();
- upgradeCatalog221.updateTezConfigs();
- expectLastCall().once();
- upgradeCatalog221.updateRangerKmsDbksConfigs();
- expectLastCall().once();
- upgradeCatalog221.updateAMSConfigs();
- expectLastCall().once();
-
-
- replay(upgradeCatalog221);
-
- upgradeCatalog221.executeDMLUpdates();
-
- verify(upgradeCatalog221);
- }
-
- @Test
- public void test_AddCheckCommandTimeoutParam_ParamsNotAvailable() {
-
- UpgradeCatalog221 upgradeCatalog221 = new UpgradeCatalog221(injector);
- String inputSource = "{ \"path\" : \"test_path\", \"type\" : \"SCRIPT\"}";
- String expectedSource =
"{\"path\":\"test_path\",\"type\":\"SCRIPT\",\"parameters\":[{\"name\":\"check.command.timeout\",\"display_name\":\"Check
command timeout\",\"value\":60.0,\"type\":\"NUMERIC\",\"description\":\"The
maximum time before check command will be killed by
timeout\",\"units\":\"seconds\"}]}";
-
- String result = upgradeCatalog221.addCheckCommandTimeoutParam(inputSource);
- Assert.assertEquals(result, expectedSource);
- }
-
- @Test
- public void test_AddCheckCommandTimeoutParam_ParamsAvailable() {
-
- UpgradeCatalog221 upgradeCatalog221 = new UpgradeCatalog221(injector);
- String inputSource =
"{\"path\":\"test_path\",\"type\":\"SCRIPT\",\"parameters\":[{\"name\":\"test\",\"display_name\":\"Test\",\"value\":10.0,\"type\":\"test\",\"description\":\"test\",\"units\":\"test\"}]}";
- String expectedSource =
"{\"path\":\"test_path\",\"type\":\"SCRIPT\",\"parameters\":[{\"name\":\"test\",\"display_name\":\"Test\",\"value\":10.0,\"type\":\"test\",\"description\":\"test\",\"units\":\"test\"},{\"name\":\"check.command.timeout\",\"display_name\":\"Check
command timeout\",\"value\":60.0,\"type\":\"NUMERIC\",\"description\":\"The
maximum time before check command will be killed by
timeout\",\"units\":\"seconds\"}]}";
-
- String result = upgradeCatalog221.addCheckCommandTimeoutParam(inputSource);
- Assert.assertEquals(result, expectedSource);
- }
-
- @Test
- public void test_AddCheckCommandTimeoutParam_NeededParamAlreadyAdded() {
-
- UpgradeCatalog221 upgradeCatalog221 = new UpgradeCatalog221(injector);
- String inputSource =
"{\"path\":\"test_path\",\"type\":\"SCRIPT\",\"parameters\":[{\"display_name\":\"Test\",\"value\":10.0,\"type\":\"test\",\"description\":\"test\",\"units\":\"test\"},{\"name\":\"check.command.timeout\",\"display_name\":\"Check
command timeout\",\"value\":60.0,\"type\":\"NUMERIC\",\"description\":\"The
maximum time before check command will be killed by
timeout\",\"units\":\"seconds\"}]}";
- String expectedSource =
"{\"path\":\"test_path\",\"type\":\"SCRIPT\",\"parameters\":[{\"display_name\":\"Test\",\"value\":10.0,\"type\":\"test\",\"description\":\"test\",\"units\":\"test\"},{\"name\":\"check.command.timeout\",\"display_name\":\"Check
command timeout\",\"value\":60.0,\"type\":\"NUMERIC\",\"description\":\"The
maximum time before check command will be killed by
timeout\",\"units\":\"seconds\"}]}";
-
- String result = upgradeCatalog221.addCheckCommandTimeoutParam(inputSource);
- Assert.assertEquals(result, expectedSource);
- }
-
- @Test
- public void testUpdateOozieConfigs() throws Exception {
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- final AmbariManagementController mockAmbariManagementController =
easyMockSupport.createNiceMock(AmbariManagementController.class);
- final Clusters mockClusters =
easyMockSupport.createStrictMock(Clusters.class);
- final Cluster mockClusterExpected =
easyMockSupport.createNiceMock(Cluster.class);
-
- final Config oozieSiteConf = easyMockSupport.createNiceMock(Config.class);
- final Map<String, String> propertiesOozieSite = new HashMap<String,
String>() {{
- put("oozie.service.HadoopAccessorService.hadoop.configurations",
"*=/etc/hadoop/conf");
- }};
-
- final Injector mockInjector = Guice.createInjector(new AbstractModule() {
- @Override
- protected void configure() {
-
bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
- bind(Clusters.class).toInstance(mockClusters);
- bind(EntityManager.class).toInstance(entityManager);
-
- bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
- bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
- }
- });
-
-
expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
- expect(mockClusters.getClusters()).andReturn(new HashMap<String,
Cluster>() {{
- put("normal", mockClusterExpected);
- }}).atLeastOnce();
-
expect(mockClusterExpected.getDesiredConfigByType("oozie-site")).andReturn(oozieSiteConf).atLeastOnce();
-
expect(oozieSiteConf.getProperties()).andReturn(propertiesOozieSite).once();
-
- UpgradeCatalog221 upgradeCatalog221 =
createMockBuilder(UpgradeCatalog221.class)
- .withConstructor(Injector.class)
- .withArgs(mockInjector)
- .addMockedMethod("updateConfigurationPropertiesForCluster",
Cluster.class, String.class,
- Map.class, boolean.class, boolean.class)
- .createMock();
-
upgradeCatalog221.updateConfigurationPropertiesForCluster(mockClusterExpected,
"oozie-site",
-
Collections.singletonMap("oozie.service.HadoopAccessorService.hadoop.configurations",
"*={{hadoop_conf_dir}}"),
- true, false);
- expectLastCall().once();
-
- easyMockSupport.replayAll();
- replay(upgradeCatalog221);
- upgradeCatalog221.updateOozieConfigs();
- easyMockSupport.verifyAll();
- }
-
- @Test
- public void testUpdateTezConfigs() throws Exception {
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- final AmbariManagementController mockAmbariManagementController =
easyMockSupport.createNiceMock(AmbariManagementController.class);
- final Clusters mockClusters =
easyMockSupport.createStrictMock(Clusters.class);
- final Cluster mockClusterExpected =
easyMockSupport.createNiceMock(Cluster.class);
-
- final Config tezSiteConf = easyMockSupport.createNiceMock(Config.class);
- final Map<String, String> propertiesTezSite = new HashMap<String,
String>() {{
- put("tez.counters.max", "2000");
- put("tez.counters.max.groups", "1000");
- }};
-
- StackId stackId = new StackId("HDP","2.3");
-
- final Injector mockInjector = Guice.createInjector(new AbstractModule() {
- @Override
- protected void configure() {
-
bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
- bind(Clusters.class).toInstance(mockClusters);
- bind(EntityManager.class).toInstance(entityManager);
-
- bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
- bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
- }
- });
-
-
expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
- expect(mockClusters.getClusters()).andReturn(new HashMap<String,
Cluster>() {{
- put("normal", mockClusterExpected);
- }}).atLeastOnce();
-
-
-
expect(mockClusterExpected.getDesiredConfigByType("tez-site")).andReturn(tezSiteConf).atLeastOnce();
- expect(tezSiteConf.getProperties()).andReturn(propertiesTezSite).once();
-
expect(mockClusterExpected.getCurrentStackVersion()).andReturn(stackId).once();
-
- UpgradeCatalog221 upgradeCatalog221 =
createMockBuilder(UpgradeCatalog221.class)
- .withConstructor(Injector.class)
- .withArgs(mockInjector)
- .addMockedMethod("updateConfigurationPropertiesForCluster",
Cluster.class, String.class,
- Map.class, boolean.class, boolean.class)
- .createMock();
- Map<String, String> updates = new HashMap<>();
- updates.put("tez.counters.max", "10000");
- updates.put("tez.counters.max.groups", "3000");
-
upgradeCatalog221.updateConfigurationPropertiesForCluster(mockClusterExpected,
"tez-site",
- updates, true, false);
- expectLastCall().once();
-
- }
-
- @Test
- public void testUpdateRangerKmsDbksConfigs() throws Exception {
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- final AmbariManagementController mockAmbariManagementController =
easyMockSupport.createNiceMock(AmbariManagementController.class);
- final Clusters mockClusters =
easyMockSupport.createStrictMock(Clusters.class);
- final Cluster mockClusterExpected =
easyMockSupport.createNiceMock(Cluster.class);
-
- final Map<String, String> propertiesRangerKmsDbConfigs = new HashMap<>();
- propertiesRangerKmsDbConfigs.put("DB_FLAVOR", "MYSQL");
- propertiesRangerKmsDbConfigs.put("db_host", "localhost");
- propertiesRangerKmsDbConfigs.put("db_name", "testdb");
-
- final Config mockrangerKmsDbConfigs =
easyMockSupport.createNiceMock(Config.class);
-
- final Injector mockInjector = Guice.createInjector(new AbstractModule() {
- @Override
- protected void configure() {
-
bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
- bind(Clusters.class).toInstance(mockClusters);
- bind(EntityManager.class).toInstance(entityManager);
-
- bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
- bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
- }
- });
-
-
expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
- expect(mockClusters.getClusters()).andReturn(new HashMap<String,
Cluster>() {{
- put("normal", mockClusterExpected);
- }}).atLeastOnce();
-
-
expect(mockClusterExpected.getDesiredConfigByType("kms-properties")).andReturn(mockrangerKmsDbConfigs).atLeastOnce();
-
expect(mockrangerKmsDbConfigs.getProperties()).andReturn(propertiesRangerKmsDbConfigs).times(3);
-
- easyMockSupport.replayAll();
-
mockInjector.getInstance(UpgradeCatalog221.class).updateRangerKmsDbksConfigs();
- easyMockSupport.verifyAll();
-
- }
-
- @Test
- public void testUpdateAmsHbaseSiteConfigs() throws Exception {
-
- Map<String, String> clusterEnvProperties = new HashMap<>();
- Map<String, String> amsHbaseSecuritySite = new HashMap<>();
- Map<String, String> newPropertiesAmsHbaseSite = new HashMap<>();
-
- //Unsecure
- amsHbaseSecuritySite.put("zookeeper.znode.parent", "/ams-hbase-unsecure");
- newPropertiesAmsHbaseSite.put("zookeeper.znode.parent",
"/ams-hbase-unsecure");
- testAmsHbaseSiteUpdates(new HashMap<String, String>(),
- newPropertiesAmsHbaseSite,
- amsHbaseSecuritySite,
- clusterEnvProperties);
-
- //Secure
- amsHbaseSecuritySite.put("zookeeper.znode.parent", "/ams-hbase-secure");
- newPropertiesAmsHbaseSite.put("zookeeper.znode.parent",
"/ams-hbase-secure");
- testAmsHbaseSiteUpdates(new HashMap<String, String>(),
- newPropertiesAmsHbaseSite,
- amsHbaseSecuritySite,
- clusterEnvProperties);
-
- //Unsecure with empty value
- clusterEnvProperties.put("security_enabled", "false");
- amsHbaseSecuritySite.put("zookeeper.znode.parent", "");
- newPropertiesAmsHbaseSite.put("zookeeper.znode.parent",
"/ams-hbase-unsecure");
- testAmsHbaseSiteUpdates(new HashMap<String, String>(),
- newPropertiesAmsHbaseSite,
- amsHbaseSecuritySite,
- clusterEnvProperties);
-
- //Secure with /hbase value
- clusterEnvProperties.put("security_enabled", "true");
- amsHbaseSecuritySite.put("zookeeper.znode.parent", "/hbase");
- newPropertiesAmsHbaseSite.put("zookeeper.znode.parent",
"/ams-hbase-secure");
- testAmsHbaseSiteUpdates(new HashMap<String, String>(),
- newPropertiesAmsHbaseSite,
- amsHbaseSecuritySite,
- clusterEnvProperties);
-
- // Test zookeeper client port set to default
- amsHbaseSecuritySite.put("hbase.zookeeper.property.clientPort", "61181");
- newPropertiesAmsHbaseSite.put("hbase.zookeeper.property.clientPort",
"{{zookeeper_clientPort}}");
-
testAmsHbaseSiteUpdates(Collections.singletonMap("hbase.zookeeper.property.clientPort",
"61181"),
- newPropertiesAmsHbaseSite,
- amsHbaseSecuritySite,
- clusterEnvProperties);
- }
-
- private void testAmsHbaseSiteUpdates(Map<String, String>
oldPropertiesAmsHbaseSite,
- Map<String, String>
newPropertiesAmsHbaseSite,
- Map<String, String>
amsHbaseSecuritySiteProperties,
- Map<String, String>
clusterEnvProperties ) throws AmbariException {
-
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- Clusters clusters = easyMockSupport.createNiceMock(Clusters.class);
- final Cluster cluster = easyMockSupport.createNiceMock(Cluster.class);
- expect(clusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
- put("normal", cluster);
- }}).once();
-
- Config mockAmsHbaseSite = easyMockSupport.createNiceMock(Config.class);
-
expect(cluster.getDesiredConfigByType("ams-hbase-site")).andReturn(mockAmsHbaseSite).atLeastOnce();
-
expect(mockAmsHbaseSite.getProperties()).andReturn(oldPropertiesAmsHbaseSite).times(2);
-
- Config mockAmsHbaseSecuritySite =
easyMockSupport.createNiceMock(Config.class);
-
expect(cluster.getDesiredConfigByType("ams-hbase-security-site")).andReturn(mockAmsHbaseSecuritySite).anyTimes();
-
expect(mockAmsHbaseSecuritySite.getProperties()).andReturn(amsHbaseSecuritySiteProperties).anyTimes();
-
- Config clusterEnv = easyMockSupport.createNiceMock(Config.class);
-
expect(cluster.getDesiredConfigByType("cluster-env")).andReturn(clusterEnv).anyTimes();
-
expect(clusterEnv.getProperties()).andReturn(clusterEnvProperties).anyTimes();
-
- Injector injector = easyMockSupport.createNiceMock(Injector.class);
- expect(injector.getInstance(Gson.class)).andReturn(null).anyTimes();
-
expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).anyTimes();
-
expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)).anyTimes();
-
- replay(injector, clusters, mockAmsHbaseSite, mockAmsHbaseSecuritySite,
clusterEnv, cluster);
-
- AmbariManagementControllerImpl controller =
createMockBuilder(AmbariManagementControllerImpl.class)
- .addMockedMethod("createConfiguration")
- .addMockedMethod("getClusters", new Class[] { })
- .addMockedMethod("createConfig")
- .withConstructor(createNiceMock(ActionManager.class), clusters, injector)
- .createNiceMock();
-
- Injector injector2 = easyMockSupport.createNiceMock(Injector.class);
- Capture<Map<String, String>> propertiesCapture = EasyMock.newCapture();
-
-
expect(injector2.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes();
- expect(controller.getClusters()).andReturn(clusters).anyTimes();
- expect(controller.createConfig(anyObject(Cluster.class),
anyObject(StackId.class), anyString(), capture(propertiesCapture), anyString(),
- EasyMock.<Map<String, Map<String,
String>>>anyObject())).andReturn(createNiceMock(Config.class)).anyTimes();
-
- replay(controller, injector2);
- new UpgradeCatalog221(injector2).updateAMSConfigs();
- easyMockSupport.verifyAll();
-
- Map<String, String> updatedProperties = propertiesCapture.getValue();
- // Test zookeeper tick time setting
- String tickTime =
updatedProperties.remove("hbase.zookeeper.property.tickTime");
- assertEquals("6000", tickTime);
- assertTrue(Maps.difference(newPropertiesAmsHbaseSite,
updatedProperties).areEqual());
- }
-
- @Test
- public void testUpdateAmsHbaseSecuritySiteConfigs() throws Exception{
-
- Map<String, String> oldPropertiesAmsHbaseSecuritySite = new
HashMap<String, String>() {
- {
- put("zookeeper.znode.parent", "/ams-hbase-secure");
- }
- };
-
- Map<String, String> newPropertiesAmsHbaseSecuritySite = new HashMap<>();
-
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- Clusters clusters = easyMockSupport.createNiceMock(Clusters.class);
- final Cluster cluster = easyMockSupport.createNiceMock(Cluster.class);
- Config mockAmsHbaseSecuritySite =
easyMockSupport.createNiceMock(Config.class);
-
- expect(clusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
- put("normal", cluster);
- }}).once();
-
-
expect(cluster.getDesiredConfigByType("ams-hbase-security-site")).andReturn(mockAmsHbaseSecuritySite).atLeastOnce();
-
expect(mockAmsHbaseSecuritySite.getProperties()).andReturn(oldPropertiesAmsHbaseSecuritySite).times(2);
-
- Injector injector = easyMockSupport.createNiceMock(Injector.class);
- expect(injector.getInstance(Gson.class)).andReturn(null).anyTimes();
-
expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).anyTimes();
-
expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)).anyTimes();
-
- replay(injector, clusters, mockAmsHbaseSecuritySite, cluster);
-
- AmbariManagementControllerImpl controller =
createMockBuilder(AmbariManagementControllerImpl.class)
- .addMockedMethod("createConfiguration")
- .addMockedMethod("getClusters", new Class[] { })
- .addMockedMethod("createConfig")
- .withConstructor(createNiceMock(ActionManager.class), clusters, injector)
- .createNiceMock();
-
- Injector injector2 = easyMockSupport.createNiceMock(Injector.class);
- Capture<Map<String, String>> propertiesCapture = EasyMock.newCapture();
-
-
expect(injector2.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes();
- expect(controller.getClusters()).andReturn(clusters).anyTimes();
- expect(controller.createConfig(anyObject(Cluster.class),
anyObject(StackId.class), anyString(), capture(propertiesCapture), anyString(),
- EasyMock.<Map<String, Map<String,
String>>>anyObject())).andReturn(createNiceMock(Config.class)).once();
-
- replay(controller, injector2);
- new UpgradeCatalog221(injector2).updateAMSConfigs();
- easyMockSupport.verifyAll();
-
- Map<String, String> updatedProperties = propertiesCapture.getValue();
- assertTrue(Maps.difference(newPropertiesAmsHbaseSecuritySite,
updatedProperties).areEqual());
-
- }
-
- @Test
- public void testUpdateAmsHbaseEnvContent() throws NoSuchMethodException,
InvocationTargetException, IllegalAccessException {
- Method updateAmsHbaseEnvContent =
UpgradeCatalog221.class.getDeclaredMethod("updateAmsHbaseEnvContent",
String.class);
- UpgradeCatalog221 upgradeCatalog221 = new UpgradeCatalog221(injector);
- String oldContent = "some_content\n" +
- "{% if security_enabled %}\n" +
- "export HBASE_OPTS=\"$HBASE_OPTS
-Djava.security.auth.login.config={{client_jaas_config_file}}
-Dzookeeper.sasl.client.username={{zk_servicename}}\"\n" +
- "export HBASE_MASTER_OPTS=\"$HBASE_MASTER_OPTS
-Djava.security.auth.login.config={{master_jaas_config_file}}
-Dzookeeper.sasl.client.username={{zk_servicename}}\"\n" +
- "export HBASE_REGIONSERVER_OPTS=\"$HBASE_REGIONSERVER_OPTS
-Djava.security.auth.login.config={{regionserver_jaas_config_file}}
-Dzookeeper.sasl.client.username={{zk_servicename}}\"\n" +
- "export HBASE_ZOOKEEPER_OPTS=\"$HBASE_ZOOKEEPER_OPTS
-Djava.security.auth.login.config={{ams_zookeeper_jaas_config_file}}
-Dzookeeper.sasl.client.username={{zk_servicename}}\"\n" +
- "{% endif %}";
-
- String expectedContent = "some_content\n" +
- "{% if security_enabled %}\n" +
- "export HBASE_OPTS=\"$HBASE_OPTS
-Djava.security.auth.login.config={{client_jaas_config_file}}\"\n" +
- "export HBASE_MASTER_OPTS=\"$HBASE_MASTER_OPTS
-Djava.security.auth.login.config={{master_jaas_config_file}}\"\n" +
- "export HBASE_REGIONSERVER_OPTS=\"$HBASE_REGIONSERVER_OPTS
-Djava.security.auth.login.config={{regionserver_jaas_config_file}}\"\n" +
- "export HBASE_ZOOKEEPER_OPTS=\"$HBASE_ZOOKEEPER_OPTS
-Djava.security.auth.login.config={{ams_zookeeper_jaas_config_file}}\"\n" +
- "{% endif %}";
-
- String result = (String)
updateAmsHbaseEnvContent.invoke(upgradeCatalog221, oldContent);
- Assert.assertEquals(expectedContent, result);
- }
-
- @Test
- public void testUpdateAmsEnvContent() throws NoSuchMethodException,
InvocationTargetException, IllegalAccessException
- {
- Method updateAmsEnvContent =
UpgradeCatalog221.class.getDeclaredMethod("updateAmsEnvContent", String.class);
- UpgradeCatalog221 upgradeCatalog221 = new UpgradeCatalog221(injector);
- String oldContent = "some_content\n" +
- "# AMS Collector options\n" +
- "export
AMS_COLLECTOR_OPTS=\"-Djava.library.path=/usr/lib/ams-hbase/lib/hadoop-native\"\n"
+
- "{% if security_enabled %}\n" +
- "export AMS_COLLECTOR_OPTS=\"$AMS_COLLECTOR_OPTS
-Djava.security.auth.login.config={{ams_collector_jaas_config_file}} " +
- "-Dzookeeper.sasl.client.username={{zk_servicename}}\"\n" +
- "{% endif %}";
-
- String expectedContent = "some_content\n" +
- "# AMS Collector options\n" +
- "export
AMS_COLLECTOR_OPTS=\"-Djava.library.path=/usr/lib/ams-hbase/lib/hadoop-native\"\n"
+
- "{% if security_enabled %}\n" +
- "export AMS_COLLECTOR_OPTS=\"$AMS_COLLECTOR_OPTS
-Djava.security.auth.login.config={{ams_collector_jaas_config_file}}\"\n" +
- "{% endif %}";
-
- String result = (String) updateAmsEnvContent.invoke(upgradeCatalog221,
oldContent);
- Assert.assertEquals(expectedContent, result);
- }
-
- @Test
- public void testUpdateAlertDefinitions() {
- EasyMockSupport easyMockSupport = new EasyMockSupport();
- long clusterId = 1;
-
- final AmbariManagementController mockAmbariManagementController =
easyMockSupport.createNiceMock(AmbariManagementController.class);
- final AlertDefinitionDAO mockAlertDefinitionDAO =
easyMockSupport.createNiceMock(AlertDefinitionDAO.class);
- final Clusters mockClusters =
easyMockSupport.createStrictMock(Clusters.class);
- final Cluster mockClusterExpected =
easyMockSupport.createNiceMock(Cluster.class);
- final AlertDefinitionEntity mockAmsZookeeperProcessAlertDefinitionEntity =
easyMockSupport.createNiceMock(AlertDefinitionEntity.class);
-
- final Injector mockInjector = Guice.createInjector(new AbstractModule() {
- @Override
- protected void configure() {
-
bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
- bind(Clusters.class).toInstance(mockClusters);
- bind(EntityManager.class).toInstance(entityManager);
- bind(AlertDefinitionDAO.class).toInstance(mockAlertDefinitionDAO);
- bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
- bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
- }
- });
-
-
expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
- expect(mockClusters.getClusters()).andReturn(new HashMap<String,
Cluster>() {{
- put("normal", mockClusterExpected);
- }}).atLeastOnce();
-
- expect(mockClusterExpected.getClusterId()).andReturn(clusterId).anyTimes();
-
- expect(mockAlertDefinitionDAO.findByName(eq(clusterId),
eq("ams_metrics_collector_zookeeper_server_process")))
- .andReturn(mockAmsZookeeperProcessAlertDefinitionEntity).atLeastOnce();
-
-
mockAlertDefinitionDAO.remove(mockAmsZookeeperProcessAlertDefinitionEntity);
- expectLastCall().once();
-
- easyMockSupport.replayAll();
- mockInjector.getInstance(UpgradeCatalog221.class).updateAlerts();
- easyMockSupport.verifyAll();
- }
-}