Revert "AMBARI-21893 : NameNode Heap Usage (Daily) metric alert status flips to UNKNOWN intermittently when AMS HTTPS is enabled. (avijayan)"
This reverts commit 01e8e50a216c3494a00a53626eb7386be1cb5ebc. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c69b750b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c69b750b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c69b750b Branch: refs/heads/branch-2.6 Commit: c69b750bde1c6964bda4894898d28495c6370221 Parents: 559ee93 Author: Aravindan Vijayan <avija...@hortonworks.com> Authored: Tue Sep 12 19:41:16 2017 -0700 Committer: Aravindan Vijayan <avija...@hortonworks.com> Committed: Tue Sep 12 19:41:16 2017 -0700 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog260.java | 29 -------- .../0.1.0/configuration/ams-ssl-client.xml | 9 +++ .../AMBARI_METRICS/0.1.0/package/scripts/ams.py | 10 ++- .../0.1.0/package/scripts/params.py | 10 +-- .../server/upgrade/UpgradeCatalog260Test.java | 70 +------------------- 5 files changed, 19 insertions(+), 109 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/c69b750b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java index 426fe63..9e145c0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java @@ -19,7 +19,6 @@ package org.apache.ambari.server.upgrade; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,7 +27,6 @@ import javax.persistence.EntityManager; import javax.persistence.Query; import org.apache.ambari.server.AmbariException; -import org.apache.ambari.server.controller.AmbariManagementController; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.dao.ArtifactDAO; import org.apache.ambari.server.orm.entities.ArtifactEntity; @@ -123,8 +121,6 @@ public class UpgradeCatalog260 extends AbstractUpgradeCatalog { public static final String HOST_COMPONENT_STATE = "hostcomponentstate"; private static final String CORE_SITE = "core-site"; - public static final String AMS_SSL_CLIENT = "ams-ssl-client"; - public static final String METRIC_TRUSTSTORE_ALIAS = "ssl.client.truststore.alias"; /** * Logger. */ @@ -398,7 +394,6 @@ public class UpgradeCatalog260 extends AbstractUpgradeCatalog { removeSupersetFromDruid(); ensureZeppelinProxyUserConfigs(); updateKerberosDescriptorArtifacts(); - updateAmsConfigs(); } /** @@ -550,28 +545,4 @@ public class UpgradeCatalog260 extends AbstractUpgradeCatalog { } } } - - protected void updateAmsConfigs() throws AmbariException { - AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class); - Clusters clusters = ambariManagementController.getClusters(); - if (clusters != null) { - Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters); - if (clusterMap != null && !clusterMap.isEmpty()) { - for (final Cluster cluster : clusterMap.values()) { - - - Config amsSslClient = cluster.getDesiredConfigByType(AMS_SSL_CLIENT); - if (amsSslClient != null) { - Map<String, String> amsSslClientProperties = amsSslClient.getProperties(); - - if (amsSslClientProperties.containsKey(METRIC_TRUSTSTORE_ALIAS)) { - LOG.info("Removing " + METRIC_TRUSTSTORE_ALIAS + " from " + AMS_SSL_CLIENT); - removeConfigurationPropertiesFromCluster(cluster, AMS_SSL_CLIENT, Collections.singleton(METRIC_TRUSTSTORE_ALIAS)); - } - - } - } - } - } - } } http://git-wip-us.apache.org/repos/asf/ambari/blob/c69b750b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-ssl-client.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-ssl-client.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-ssl-client.xml index d75bba2..cac39de 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-ssl-client.xml +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-ssl-client.xml @@ -39,4 +39,13 @@ </value-attributes> <on-ambari-upgrade add="true"/> </property> + <property> + <name>ssl.client.truststore.alias</name> + <value></value> + <description>Alias used to create certificate for AMS. (Default is hostname)</description> + <value-attributes> + <empty-value-valid>true</empty-value-valid> + </value-attributes> + <on-ambari-upgrade add="true"/> + </property> </configuration> http://git-wip-us.apache.org/repos/asf/ambari/blob/c69b750b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py index 88ac15f..4672501 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py @@ -459,12 +459,10 @@ def export_ca_certs(dir_path): truststore_p12 = os.path.join(tmpdir,'truststore.p12') if (params.metric_truststore_type.lower() == 'jks'): - if not params.metric_truststore_alias: - for alias in params.metric_truststore_alias_list: - # Convert truststore from JKS to PKCS12 - cmd = format("{sudo} {java64_home}/bin/keytool -importkeystore -srckeystore {metric_truststore_path} -destkeystore {truststore_p12} -srcalias " + alias + " -deststoretype PKCS12 -srcstorepass {metric_truststore_password} -deststorepass {metric_truststore_password}") - Execute(cmd, - ) + # Convert truststore from JKS to PKCS12 + cmd = format("{sudo} {java64_home}/bin/keytool -importkeystore -srckeystore {metric_truststore_path} -destkeystore {truststore_p12} -srcalias {metric_truststore_alias} -deststoretype PKCS12 -srcstorepass {metric_truststore_password} -deststorepass {metric_truststore_password}") + Execute(cmd, + ) truststore = truststore_p12 # Export all CA certificates from the truststore to the conf directory http://git-wip-us.apache.org/repos/asf/ambari/blob/c69b750b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py index f7fd545..071882b 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py @@ -94,15 +94,11 @@ else: metric_truststore_path= default("/configurations/ams-ssl-client/ssl.client.truststore.location", "") metric_truststore_type= default("/configurations/ams-ssl-client/ssl.client.truststore.type", "") metric_truststore_password= default("/configurations/ams-ssl-client/ssl.client.truststore.password", "") +metric_truststore_alias = default("/configurations/ams-ssl-client/ssl.client.truststore.alias", None) +if not metric_truststore_alias: + metric_truststore_alias = metric_collector_host metric_truststore_ca_certs='ca.pem' -metric_truststore_alias_list = [] -for host in ams_collector_hosts.split(","): - metric_truststore_alias = default("/configurations/ams-ssl-client/{host}.ssl.client.truststore.alias", None) - if not metric_truststore_alias: - metric_truststore_alias = host - metric_truststore_alias_list.append(metric_truststore_alias) - agent_cache_dir = config['hostLevelParams']['agentCacheDir'] service_package_folder = config['commandParams']['service_package_folder'] stack_name = default("/hostLevelParams/stack_name", None) http://git-wip-us.apache.org/repos/asf/ambari/blob/c69b750b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java index 38ec46b..db6ebc1 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java @@ -23,7 +23,6 @@ import static org.easymock.EasyMock.anyString; import static org.easymock.EasyMock.capture; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.createMockBuilder; -import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.eq; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; @@ -31,7 +30,6 @@ import static org.easymock.EasyMock.newCapture; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.reset; import static org.easymock.EasyMock.verify; -import static org.junit.Assert.assertTrue; import java.io.File; import java.net.URL; @@ -42,19 +40,16 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.persistence.EntityManager; -import com.google.common.collect.Maps; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.actionmanager.ActionManager; import org.apache.ambari.server.configuration.Configuration; 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; @@ -71,9 +66,7 @@ import org.apache.ambari.server.state.kerberos.KerberosDescriptorFactory; import org.apache.ambari.server.state.kerberos.KerberosServiceDescriptor; import org.apache.ambari.server.state.stack.OsFamily; import org.easymock.Capture; -import org.easymock.EasyMock; import org.easymock.EasyMockRunner; -import org.easymock.EasyMockSupport; import org.easymock.Mock; import org.easymock.MockType; import org.junit.After; @@ -486,8 +479,8 @@ public class UpgradeCatalog260Test { } public void verifyGetCurrentVersionID(Capture<String[]> scdcaptureKey, Capture<String[]> scdcaptureValue) { - assertTrue(Arrays.equals(scdcaptureKey.getValue(), new String[]{UpgradeCatalog260.STATE_COLUMN})); - assertTrue(Arrays.equals(scdcaptureValue.getValue(), new String[]{UpgradeCatalog260.CURRENT})); + Assert.assertTrue(Arrays.equals(scdcaptureKey.getValue(), new String[]{UpgradeCatalog260.STATE_COLUMN})); + Assert.assertTrue(Arrays.equals(scdcaptureValue.getValue(), new String[]{UpgradeCatalog260.CURRENT})); } public void expectUpdateServiceComponentDesiredStateTable(Capture<DBColumnInfo> scdstadd1, Capture<DBColumnInfo> scdstalter1, Capture<DBColumnInfo> scdstadd2, Capture<DBColumnInfo> scdstalter2) throws SQLException { @@ -630,7 +623,7 @@ public class UpgradeCatalog260Test { verify(clusters, cluster, zeppelinEnvConf, coreSiteConf, coreSiteConfNew, controller); - assertTrue(captureCoreSiteConfProperties.hasCaptured()); + Assert.assertTrue(captureCoreSiteConfProperties.hasCaptured()); Assert.assertEquals("existing_value", captureCoreSiteConfProperties.getValue().get("hadoop.proxyuser.zeppelin_user.hosts")); Assert.assertEquals("*", captureCoreSiteConfProperties.getValue().get("hadoop.proxyuser.zeppelin_user.groups")); } @@ -678,61 +671,4 @@ public class UpgradeCatalog260Test { Assert.assertNull(kerberosDescriptorUpdated.getService("RANGER_KMS").getComponent("RANGER_KMS_SERVER").getIdentity("/smokeuser")); } - - @Test - public void testUpdateAmsConfigs() throws Exception{ - - Map<String, String> oldProperties = new HashMap<String, String>() { - { - put("ssl.client.truststore.location", "/some/location"); - put("ssl.client.truststore.alias", "test_alias"); - } - }; - Map<String, String> newProperties = new HashMap<String, String>() { - { - put("ssl.client.truststore.location", "/some/location"); - } - }; - - EasyMockSupport easyMockSupport = new EasyMockSupport(); - - Clusters clusters = easyMockSupport.createNiceMock(Clusters.class); - final Cluster cluster = easyMockSupport.createNiceMock(Cluster.class); - Config mockAmsSslClient = easyMockSupport.createNiceMock(Config.class); - - expect(clusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{ - put("normal", cluster); - }}).once(); - expect(cluster.getDesiredConfigByType("ams-ssl-client")).andReturn(mockAmsSslClient).atLeastOnce(); - expect(mockAmsSslClient.getProperties()).andReturn(oldProperties).anyTimes(); - - Injector injector = easyMockSupport.createNiceMock(Injector.class); - expect(injector.getInstance(Gson.class)).andReturn(null).anyTimes(); - expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).anyTimes(); - - replay(injector, clusters, mockAmsSslClient, 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> propertiesCapture = EasyMock.newCapture(); - - expect(injector2.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes(); - expect(controller.getClusters()).andReturn(clusters).anyTimes(); - expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(propertiesCapture), anyString(), - anyObject(Map.class))).andReturn(createNiceMock(Config.class)).once(); - - replay(controller, injector2); - new UpgradeCatalog260(injector2).updateAmsConfigs(); - easyMockSupport.verifyAll(); - - Map<String, String> updatedProperties = propertiesCapture.getValue(); - assertTrue(Maps.difference(newProperties, updatedProperties).areEqual()); - } - }