Repository: ambari Updated Branches: refs/heads/branch-2.5 afd70d018 -> 69ef28cf8
AMBARI-19908 : Deploy job fails intermittent due to ambari metrics service check failure. (avijayan) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/69ef28cf Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/69ef28cf Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/69ef28cf Branch: refs/heads/branch-2.5 Commit: 69ef28cf89ee7ba61390e6a4b1d874b5eac6db2c Parents: afd70d0 Author: Aravindan Vijayan <[email protected]> Authored: Tue Feb 7 18:28:28 2017 -0800 Committer: Aravindan Vijayan <[email protected]> Committed: Tue Feb 7 18:28:28 2017 -0800 ---------------------------------------------------------------------- .../AMBARI_METRICS/0.1.0/package/scripts/ams.py | 5 ++- .../package/scripts/metrics_grafana_util.py | 4 +-- .../0.1.0/package/scripts/params.py | 38 ++++++++++---------- .../0.1.0/package/scripts/service_check.py | 2 +- .../AMBARI_METRICS/test_metrics_collector.py | 6 ++-- .../AMBARI_METRICS/test_metrics_grafana.py | 6 ++-- 6 files changed, 34 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/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 7e822f2..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 @@ -469,9 +469,12 @@ def export_ca_certs(dir_path): cmd = format("{sudo} openssl pkcs12 -in {truststore} -out {ca_certs_path} -cacerts -nokeys -passin pass:{metric_truststore_password}") Execute(cmd, ) - Execute(('chown', params.ams_user, ca_certs_path), + Execute(('chown', format('{ams_user}:{user_group}'), ca_certs_path), sudo=True ) + Execute(('chmod', '644', ca_certs_path), + sudo = True, + ) Execute(format('{sudo} rm -rf {tmpdir}') ) http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana_util.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana_util.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana_util.py index 65487b7..f8b0011 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana_util.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana_util.py @@ -193,7 +193,7 @@ def do_ams_collector_post(metric_collector_host, params): ams_metrics_post_url = "/ws/v1/timeline/metrics/" random_value1 = random.random() headers = {"Content-type": "application/json"} - ca_certs = os.path.join(params.ams_collector_conf_dir, + ca_certs = os.path.join(params.ams_grafana_conf_dir, params.metric_truststore_ca_certs) current_time = int(time.time()) * 1000 @@ -217,7 +217,7 @@ def create_ams_datasource(): results = execute_in_parallel(do_ams_collector_post, params.ams_collector_hosts.split(','), params) new_datasource_host = "" - for host in params.ams_collector_hosts: + for host in params.ams_collector_hosts.split(','): if host in results: if results[host].status == SUCCESS: new_datasource_host = host http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/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 0ab6f3a..c547bd4 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 @@ -60,6 +60,24 @@ embedded_mode_multiple_instances = False if not is_ams_distributed and len(ams_collector_list) > 1: embedded_mode_multiple_instances = True +if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_host' in config['configurations']['cluster-env']: + metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] +else: + metric_collector_host = select_metric_collector_hosts_from_hostnames(ams_collector_hosts) + +random_metric_collector_host = select_metric_collector_hosts_from_hostnames(ams_collector_hosts) + +if 'cluster-env' in config['configurations'] and \ + 'metrics_collector_vip_port' in config['configurations']['cluster-env']: + metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] +else: + metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") + if metric_collector_web_address.find(':') != -1: + metric_collector_port = metric_collector_web_address.split(':')[1] + else: + metric_collector_port = '6188' + failover_strategy_blacklisted_interval_seconds = default("/configurations/ams-env/failover_strategy_blacklisted_interval", "600") failover_strategy = default("/configurations/ams-site/failover.strategy", "round-robin") if default("/configurations/ams-site/timeline.metrics.service.http.policy", "HTTP_ONLY") == "HTTPS_ONLY": @@ -73,7 +91,7 @@ metric_truststore_type= default("/configurations/ams-ssl-client/ssl.client.trust 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 = config["hostname"] + metric_truststore_alias = metric_collector_host metric_truststore_ca_certs='ca.pem' agent_cache_dir = config['hostLevelParams']['agentCacheDir'] @@ -122,24 +140,6 @@ def get_ambari_version(): return ambari_version -if 'cluster-env' in config['configurations'] and \ - 'metrics_collector_vip_host' in config['configurations']['cluster-env']: - metric_collector_host = config['configurations']['cluster-env']['metrics_collector_vip_host'] -else: - metric_collector_host = select_metric_collector_hosts_from_hostnames(ams_collector_hosts) - -random_metric_collector_host = select_metric_collector_hosts_from_hostnames(ams_collector_hosts) - -if 'cluster-env' in config['configurations'] and \ - 'metrics_collector_vip_port' in config['configurations']['cluster-env']: - metric_collector_port = config['configurations']['cluster-env']['metrics_collector_vip_port'] -else: - metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188") - if metric_collector_web_address.find(':') != -1: - metric_collector_port = metric_collector_web_address.split(':')[1] - else: - metric_collector_port = '6188' - ams_collector_log_dir = config['configurations']['ams-env']['metrics_collector_log_dir'] ams_collector_conf_dir = "/etc/ambari-metrics-collector/conf" ams_monitor_log_dir = config['configurations']['ams-env']['metrics_monitor_log_dir'] http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py index 1417f4a..189be74 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/service_check.py @@ -66,7 +66,7 @@ class AMSServiceCheck(Script): def service_check_for_single_host(self, metric_collector_host, params): random_value1 = random.random() headers = {"Content-type": "application/json"} - ca_certs = os.path.join(params.ams_collector_conf_dir, + ca_certs = os.path.join(params.ams_monitor_conf_dir, params.metric_truststore_ca_certs) current_time = int(time.time()) * 1000 http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py index 6f48eec..7df74bf 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py +++ b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py @@ -41,13 +41,15 @@ class TestMetricsCollector(RMFTestCase): self.assert_hbase_configure('master', distributed=True) self.assert_hbase_configure('regionserver', distributed=True) self.assert_ams('collector', distributed=True) - self.assertResourceCalled('Execute', 'ambari-sudo.sh /usr/jdk64/jdk1.7.0_45/bin/keytool -importkeystore -srckeystore /etc/security/clientKeys/all.jks -destkeystore /some_tmp_dir/truststore.p12 -srcalias c6401.ambari.apache.org -deststoretype PKCS12 -srcstorepass bigdata -deststorepass bigdata', + self.assertResourceCalled('Execute', 'ambari-sudo.sh /usr/jdk64/jdk1.7.0_45/bin/keytool -importkeystore -srckeystore /etc/security/clientKeys/all.jks -destkeystore /some_tmp_dir/truststore.p12 -srcalias c6402.ambari.apache.org -deststoretype PKCS12 -srcstorepass bigdata -deststorepass bigdata', ) self.assertResourceCalled('Execute', 'ambari-sudo.sh openssl pkcs12 -in /some_tmp_dir/truststore.p12 -out /etc/ambari-metrics-collector/conf/ca.pem -cacerts -nokeys -passin pass:bigdata', ) - self.assertResourceCalled('Execute', ('chown', u'ams', '/etc/ambari-metrics-collector/conf/ca.pem'), + self.assertResourceCalled('Execute', ('chown', u'ams:hadoop', '/etc/ambari-metrics-collector/conf/ca.pem'), sudo=True ) + self.assertResourceCalled('Execute', ('chmod', '644', '/etc/ambari-metrics-collector/conf/ca.pem'), + sudo=True) self.assertResourceCalled('Execute', 'ambari-sudo.sh rm -rf /some_tmp_dir', ) self.assertResourceCalled('Execute', '/usr/lib/ams-hbase/bin/hbase-daemon.sh --config /etc/ams-hbase/conf stop regionserver', http://git-wip-us.apache.org/repos/asf/ambari/blob/69ef28cf/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_grafana.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_grafana.py b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_grafana.py index dc064e4..67750b7 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_grafana.py +++ b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_grafana.py @@ -60,13 +60,15 @@ class TestMetricsGrafana(RMFTestCase): self.assertResourceCalled('Execute', ('chown', u'-R', u'ams', '/var/run/ambari-metrics-grafana'), sudo = True ) - self.assertResourceCalled('Execute', 'ambari-sudo.sh /usr/jdk64/jdk1.7.0_45/bin/keytool -importkeystore -srckeystore /etc/security/clientKeys/all.jks -destkeystore /some_tmp_dir/truststore.p12 -srcalias c6401.ambari.apache.org -deststoretype PKCS12 -srcstorepass bigdata -deststorepass bigdata', + self.assertResourceCalled('Execute', 'ambari-sudo.sh /usr/jdk64/jdk1.7.0_45/bin/keytool -importkeystore -srckeystore /etc/security/clientKeys/all.jks -destkeystore /some_tmp_dir/truststore.p12 -srcalias c6402.ambari.apache.org -deststoretype PKCS12 -srcstorepass bigdata -deststorepass bigdata', ) self.assertResourceCalled('Execute', 'ambari-sudo.sh openssl pkcs12 -in /some_tmp_dir/truststore.p12 -out /etc/ambari-metrics-grafana/conf/ca.pem -cacerts -nokeys -passin pass:bigdata', ) - self.assertResourceCalled('Execute', ('chown', u'ams', '/etc/ambari-metrics-grafana/conf/ca.pem'), + self.assertResourceCalled('Execute', ('chown', u'ams:hadoop', '/etc/ambari-metrics-grafana/conf/ca.pem'), sudo = True ) + self.assertResourceCalled('Execute', ('chmod', '644', '/etc/ambari-metrics-grafana/conf/ca.pem'), + sudo=True) self.assertResourceCalled('Execute', 'ambari-sudo.sh rm -rf /some_tmp_dir', ) self.assertResourceCalled('Execute', '/usr/sbin/ambari-metrics-grafana start',
