Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9F7F8200C02 for ; Fri, 6 Jan 2017 01:10:59 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9E05C160B47; Fri, 6 Jan 2017 00:10:59 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 01517160B33 for ; Fri, 6 Jan 2017 01:10:57 +0100 (CET) Received: (qmail 44059 invoked by uid 500); 6 Jan 2017 00:10:57 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 44050 invoked by uid 99); 6 Jan 2017 00:10:57 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jan 2017 00:10:57 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0CF41DF9FA; Fri, 6 Jan 2017 00:10:57 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: mgergely@apache.org To: commits@ambari.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: ambari git commit: AMBARI-19330 LogSearch upgrade support 2.4 -> 2.5 Date: Fri, 6 Jan 2017 00:10:57 +0000 (UTC) archived-at: Fri, 06 Jan 2017 00:10:59 -0000 Repository: ambari Updated Branches: refs/heads/trunk 33239523d -> b46a2f627 AMBARI-19330 LogSearch upgrade support 2.4 -> 2.5 Change-Id: I1fd3ac23499eba6a96e1c3297f6895cc5b36a956 Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b46a2f62 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b46a2f62 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b46a2f62 Branch: refs/heads/trunk Commit: b46a2f627e2137f2f361239f944869cf0e0dfd1d Parents: 3323952 Author: Miklos Gergely Authored: Fri Jan 6 01:10:46 2017 +0100 Committer: Miklos Gergely Committed: Fri Jan 6 01:10:46 2017 +0100 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog250.java | 80 +++++++++++++ .../configuration/logfeeder-ambari-config.xml | 2 +- .../logfeeder-custom-logsearch-conf.xml | 6 +- .../0.5.0/configuration/logfeeder-env.xml | 38 +++--- .../0.5.0/configuration/logfeeder-log4j.xml | 20 ++-- .../configuration/logfeeder-output-config.xml | 4 +- .../configuration/logfeeder-properties.xml | 8 +- .../configuration/logfeeder-system_log-env.xml | 2 + .../logsearch-audit_logs-solrconfig.xml | 2 +- .../0.5.0/configuration/logsearch-log4j.xml | 42 +++---- .../0.5.0/properties/logsearch-log4j.xml.j2 | 18 +-- .../server/upgrade/UpgradeCatalog250Test.java | 116 ++++++++++++++++++- .../configs/services/logsearch_properties.js | 84 ++++++++++++++ 13 files changed, 346 insertions(+), 76 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java index 70f00fc..2e0729b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java @@ -25,6 +25,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -158,6 +159,7 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog { updateHiveLlapConfigs(); updateTablesForZeppelinViewRemoval(); updateAtlasConfigs(); + updateLogSearchConfigs(); addManageServiceAutoStartPermissions(); } @@ -593,6 +595,84 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog { } /** + * Updates Log Search configs. + * + * @throws AmbariException + */ + protected void updateLogSearchConfigs() throws AmbariException { + AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class); + Clusters clusters = ambariManagementController.getClusters(); + if (clusters != null) { + Map clusterMap = clusters.getClusters(); + + if (clusterMap != null && !clusterMap.isEmpty()) { + for (final Cluster cluster : clusterMap.values()) { + Config logSearchProperties = cluster.getDesiredConfigByType("logsearch-properties"); + if (logSearchProperties != null) { + Map newProperties = new HashMap<>(); + newProperties.put("logsearch.auth.external_auth.enabled", logSearchProperties.getProperties().get("logsearch.external.auth.enabled")); + newProperties.put("logsearch.auth.external_auth.host_url", logSearchProperties.getProperties().get("logsearch.external.auth.host_url")); + newProperties.put("logsearch.auth.external_auth.login_url", logSearchProperties.getProperties().get("logsearch.external.auth.login_url")); + + Set removeProperties = new HashSet<>(); + removeProperties.add("logsearch.external.auth.enabled"); + removeProperties.add("logsearch.external.auth.host_url"); + removeProperties.add("logsearch.external.auth.login_url"); + + updateConfigurationPropertiesForCluster(cluster, "logsearch-properties", newProperties, removeProperties, true, true); + } + + Config logfeederEnvProperties = cluster.getDesiredConfigByType("logfeeder-env"); + if (logfeederEnvProperties != null) { + String content = logfeederEnvProperties.getProperties().get("content"); + if (content.contains("infra_solr_ssl_enabled")) { + content = content.replace("infra_solr_ssl_enabled", "logsearch_solr_ssl_enabled"); + updateConfigurationPropertiesForCluster(cluster, "logfeeder-env", Collections.singletonMap("content", content), true, true); + } + } + + Config logsearchEnvProperties = cluster.getDesiredConfigByType("logsearch-env"); + if (logsearchEnvProperties != null) { + Map newProperties = new HashMap<>(); + String content = logsearchEnvProperties.getProperties().get("content"); + if (content.contains("infra_solr_ssl_enabled or logsearch_ui_protocol == 'https'")) { + content = content.replace("infra_solr_ssl_enabled or logsearch_ui_protocol == 'https'", + "infra_solr_ssl_enabled or logsearch_ui_protocol == 'https' or ambari_server_use_ssl"); + } + if (content.contains("infra_solr_ssl_enabled")) { + content = content.replace("infra_solr_ssl_enabled", "logsearch_solr_ssl_enabled"); + } + if (!content.equals(logsearchEnvProperties.getProperties().get("content"))) { + newProperties.put("content", content); + } + + Set removeProperties = new HashSet<>(); + removeProperties.add("logsearch_solr_audit_logs_use_ranger"); + removeProperties.add("logsearch_solr_audit_logs_zk_node"); + removeProperties.add("logsearch_solr_audit_logs_zk_quorum"); + + updateConfigurationPropertiesForCluster(cluster, "logsearch-env", newProperties, removeProperties, true, true); + } + + Config logsearchLog4jProperties = cluster.getDesiredConfigByType("logsearch-log4j"); + if (logsearchLog4jProperties != null) { + String content = logsearchLog4jProperties.getProperties().get("content"); + if (content.contains("{{logsearch_log_dir}}/logsearch.err")) { + content = content.replace("{{logsearch_log_dir}}/logsearch.err", "{{logsearch_log_dir}}/logsearch.log"); + } + if (content.contains("")) { + content = content.replace("", ""); + } + if (!content.equals(logsearchLog4jProperties.getProperties().get("content"))) { + updateConfigurationPropertiesForCluster(cluster, "logsearch-log4j", Collections.singletonMap("content", content), true, true); + } + } + } + } + } + } + + /** * Add permissions for managing service auto-start. *

*

    http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-ambari-config.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-ambari-config.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-ambari-config.xml index 64d7946..19bbd4a 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-ambari-config.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-ambari-config.xml @@ -22,7 +22,7 @@ content - Ambari LogFeeder config + Ambari Log Feeder config Grok filters and input file locations for ambari related log files VALUE_FROM_PROPERTY_FILE http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-custom-logsearch-conf.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-custom-logsearch-conf.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-custom-logsearch-conf.xml index 8358266..30a93a5 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-custom-logsearch-conf.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-custom-logsearch-conf.xml @@ -23,7 +23,7 @@ service_component_mappings Service Component mapping - Logsearch service component logid mapping list (e.g.: SERVICE1=S1_COMPONENT1:logid1,logid2;S1_COMPONENT2:logid3|SERVICE2=...) + Log Search service component logid mapping list (e.g.: SERVICE1=S1_COMPONENT1:logid1,logid2;S1_COMPONENT2:logid3|SERVICE2=...) true @@ -32,8 +32,8 @@ content - Logfeeder Config - Metadata jinja template for Logfeeder which contains grok patterns for reading service specific logs. + Log Feeder Config + Metadata jinja template for Log Feeder which contains grok patterns for reading service specific logs. http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml index bc65e3c..fb641a8 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml @@ -24,8 +24,8 @@ logfeeder_pid_dir /var/run/ambari-logsearch-logfeeder - logfeeder Process ID Directory - Logfeeder pid dir + Log Feeder Process ID Directory + Log Feeder pid dir directory @@ -34,8 +34,8 @@ logfeeder_log_dir /var/log/ambari-logsearch-logfeeder - Log dir for logfeeder - Logfeeder log dir + Log dir for Log Feeder + Log Feeder log dir directory @@ -45,7 +45,7 @@ logfeeder_max_mem 512m Max Memory for Logfeeder - Logfeeder max memory + Log Feeder max memory @@ -71,21 +71,21 @@ logfeeder_truststore_location /etc/security/serverKeys/logsearch.trustStore.jks - Logfeeder trust store location + Log Feeder trust store location Location of the trust store file. logfeeder_truststore_type jks - Logfeeder trust store type + Log Feeder trust store type Type of the trust store file. logfeeder_truststore_password bigdata - Logfeeder trust store password + Log Feeder trust store password PASSWORD Password to open the trust store file. @@ -96,21 +96,21 @@ logfeeder_keystore_location /etc/security/serverKeys/logsearch.keyStore.jks - Logfeeder key store location + Log Feeder key store location Location of the key store file. logfeeder_keystore_type jks - Logfeeder store type + Log Feeder store type Type of the key store file. logfeeder_keystore_password bigdata - Logfeeder key store password + Log Feeder key store password PASSWORD Password to open the key store file. @@ -121,29 +121,29 @@ logfeeder_external_solr_kerberos_keytab - Logfeeder External Solr keytab - The path to the Kerberos Keytab file containing service principal of Logfeeder e.g. /etc/security/keytabs/logfeeder.service.keytab + Log Feeder External Solr keytab + The path to the Kerberos Keytab file containing service principal of Log Feeder e.g. /etc/security/keytabs/logfeeder.service.keytab logfeeder_external_solr_kerberos_principal - Logfeeder External Solr principal - The service principal for Logfeeder which will be used to access SolrClient e.g. logfeeder/_HOST@REALM + Log Feeder External Solr principal + The service principal for Log Feeder which will be used to access SolrClient e.g. logfeeder/_HOST@REALM logfeeder_kerberos_keytab /etc/security/keytabs/logfeeder.service.keytab - Logfeeder Solr keytab - The path to the Kerberos Keytab file containing service principal of the Logfeeder. + Log Feeder Solr keytab + The path to the Kerberos Keytab file containing service principal of the Log Feeder. logfeeder_kerberos_principal logfeeder - Logfeeder Solr principal - The service principal for Logfeeder which will be used to access Log Search Solr. + Log Feeder Solr principal + The service principal for Log Feeder which will be used to access Log Search Solr. http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml index 9371530..1843e75 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml @@ -25,38 +25,38 @@ logfeeder_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logfeeder Log: backup file size + Log Feeder Log: backup file size MB - - + + logfeeder_log_maxbackupindex 10 The number of backup files - Logfeeder Log: # of backup files + Log Feeder Log: # of backup files int 0 - + logfeeder_json_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logfeeder Json Log: backup file size + Log Feeder Json Log: backup file size MB - - + + logfeeder_json_log_maxbackupindex 10 The number of backup files - Logfeeder Json Log: # of backup files + Log Feeder Json Log: # of backup files int 0 @@ -66,7 +66,7 @@ content logfeeder-log4j template - This is the jinja template for log4j.xml file for logfeeder + This is the jinja template for log4j.xml file for Log Feeder VALUE_FROM_PROPERTY_FILE http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-output-config.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-output-config.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-output-config.xml index 85654c8..652918a 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-output-config.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-output-config.xml @@ -22,8 +22,8 @@ content - LogFeeder output config - Output configuration for LogFeeder (data shipping) + Log Feeder output config + Output configuration for Log Feeder (data shipping) VALUE_FROM_PROPERTY_FILE http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml index e7cd476..2acb57e 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml @@ -24,14 +24,14 @@ logfeeder.config.files {default_config_files} Comma separated config files in grok format - Logfeeder config files + Log Feeder config files logfeeder.checkpoint.folder /etc/ambari-logsearch-logfeeder/conf/checkpoints - Checkpoint folder for logfeeder - Logfeeder checkpoint dir + Checkpoint folder for Log Feeder + Log Feeder checkpoint dir directory @@ -40,7 +40,7 @@ logfeeder.metrics.collector.hosts {metrics_collector_hosts} - Metrics collector hosts for pushing metrics by Logfeeder + Metrics collector hosts for pushing metrics by Log Feeder Metrics collector hosts http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-system_log-env.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-system_log-env.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-system_log-env.xml index b8dd4b9..0461409 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-system_log-env.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-system_log-env.xml @@ -49,6 +49,8 @@ logfeeder_system_log_enabled + Enable system logs + Enable Log Feeders to load system logs to the Log Search solr false boolean http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-audit_logs-solrconfig.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-audit_logs-solrconfig.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-audit_logs-solrconfig.xml index 6272dd1..5a07b69 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-audit_logs-solrconfig.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-audit_logs-solrconfig.xml @@ -49,7 +49,7 @@ content - solrconfig template + Solrconfig template This is the jinja template for solrconfig.xml file for audit logs VALUE_FROM_PROPERTY_FILE http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml index 66b9bba..729eba6 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml @@ -22,84 +22,84 @@ - + logsearch_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logsearch Log: backup file size + Log Search Log: backup file size MB - - + + logsearch_log_maxbackupindex 10 The number of backup files - Logsearch Log: # of backup files + Log Search Log: # of backup files int 0 - + logsearch_json_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logsearch Json Log: backup file size + Log Search Json Log: backup file size MB - - + + logsearch_json_log_maxbackupindex 10 The number of backup files - Logsearch Json Log: # of backup files + Log Search Json Log: # of backup files int 0 - + logsearch_audit_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logsearch Audit Log: backup file size + Log Search Audit Log: backup file size MB - - + + logsearch_audit_log_maxbackupindex 10 The number of backup files - Logsearch Audit Log: # of backup files + Log Search Audit Log: # of backup files int 0 - + logsearch_perf_log_maxfilesize 10 The maximum size of backup file before the log is rotated - Logsearch Performance Log: backup file size + Log Search Performance Log: backup file size MB - - + + logsearch_perf_log_maxbackupindex 10 The number of backup files - Logsearch Performance Log: # of backup files + Log Search Performance Log: # of backup files int 0 @@ -109,7 +109,7 @@ content logsearch-log4j template - This is the jinja template for log4j.xml file for logsearch server + This is the jinja template for log4j.xml file for Log Search server VALUE_FROM_PROPERTY_FILE http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-log4j.xml.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-log4j.xml.j2 b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-log4j.xml.j2 index cc5addf..63f9f0a 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-log4j.xml.j2 +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-log4j.xml.j2 @@ -25,13 +25,13 @@ limitations under the License. - - - - - + + + + + - + @@ -40,7 +40,7 @@ limitations under the License. - + @@ -48,7 +48,7 @@ limitations under the License. - + @@ -57,7 +57,7 @@ limitations under the License. - + http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java index 433d1c95..86d86e5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java @@ -75,6 +75,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import com.google.gson.Gson; import com.google.inject.Binder; @@ -276,6 +277,7 @@ public class UpgradeCatalog250Test { Method addNewConfigurationsFromXml = AbstractUpgradeCatalog.class.getDeclaredMethod("addNewConfigurationsFromXml"); Method updateTablesForZeppelinViewRemoval = UpgradeCatalog250.class.getDeclaredMethod("updateTablesForZeppelinViewRemoval"); Method updateAtlasConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateAtlasConfigs"); + Method updateLogSearchConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateLogSearchConfigs"); UpgradeCatalog250 upgradeCatalog250 = createMockBuilder(UpgradeCatalog250.class) .addMockedMethod(updateAmsConfigs) @@ -288,6 +290,7 @@ public class UpgradeCatalog250Test { .addMockedMethod(updateTEZInteractiveConfigs) .addMockedMethod(updateTablesForZeppelinViewRemoval) .addMockedMethod(updateAtlasConfigs) + .addMockedMethod(updateLogSearchConfigs) .createMock(); upgradeCatalog250.updateAMSConfigs(); @@ -317,6 +320,9 @@ public class UpgradeCatalog250Test { upgradeCatalog250.updateAtlasConfigs(); expectLastCall().once(); + upgradeCatalog250.updateLogSearchConfigs(); + expectLastCall().once(); + upgradeCatalog250.addManageServiceAutoStartPermissions(); expectLastCall().once(); @@ -369,7 +375,7 @@ public class UpgradeCatalog250Test { replay(clusters, mockAmsEnv, cluster); - AmbariManagementControllerImpl controller = (AmbariManagementControllerImpl)createMockBuilder(AmbariManagementControllerImpl.class) + AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") @@ -442,7 +448,7 @@ public class UpgradeCatalog250Test { replay(clusters, mockAmsHbaseSite, mockAmsSite, cluster); - AmbariManagementControllerImpl controller = (AmbariManagementControllerImpl)createMockBuilder(AmbariManagementControllerImpl.class) + AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") @@ -450,12 +456,12 @@ public class UpgradeCatalog250Test { .createNiceMock(); Injector injector2 = easyMockSupport.createNiceMock(Injector.class); - Capture propertiesCapture = EasyMock.newCapture(); + Capture> 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(config).once(); + EasyMock.>>anyObject())).andReturn(config).once(); replay(controller, injector2); new UpgradeCatalog250(injector2).updateAMSConfigs(); @@ -491,7 +497,7 @@ public class UpgradeCatalog250Test { replay(clusters, mockKafkaBroker, cluster); - AmbariManagementControllerImpl controller = (AmbariManagementControllerImpl)createMockBuilder(AmbariManagementControllerImpl.class) + AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") @@ -515,6 +521,104 @@ public class UpgradeCatalog250Test { } @Test + public void testLogSearchUpdateConfigs() throws Exception { + reset(clusters, cluster); + expect(clusters.getClusters()).andReturn(ImmutableMap.of("normal", cluster)).once(); + + EasyMockSupport easyMockSupport = new EasyMockSupport(); + + Injector injector2 = easyMockSupport.createNiceMock(Injector.class); + AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) + .addMockedMethod("createConfiguration") + .addMockedMethod("getClusters", new Class[] {}) + .addMockedMethod("createConfig") + .withConstructor(actionManager, clusters, injector) + .createNiceMock(); + + expect(injector2.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes(); + expect(controller.getClusters()).andReturn(clusters).anyTimes(); + + Map oldLogSearchProperties = ImmutableMap.of( + "logsearch.external.auth.enabled", "true", + "logsearch.external.auth.host_url", "host_url", + "logsearch.external.auth.login_url", "login_url"); + + Map expectedLogSearchProperties = ImmutableMap.of( + "logsearch.auth.external_auth.enabled", "true", + "logsearch.auth.external_auth.host_url", "host_url", + "logsearch.auth.external_auth.login_url", "login_url"); + + Config mockLogSearchProperties = easyMockSupport.createNiceMock(Config.class); + expect(cluster.getDesiredConfigByType("logsearch-properties")).andReturn(mockLogSearchProperties).atLeastOnce(); + expect(mockLogSearchProperties.getProperties()).andReturn(oldLogSearchProperties).anyTimes(); + Capture> logSearchPropertiesCapture = EasyMock.newCapture(); + expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logSearchPropertiesCapture), anyString(), + EasyMock.>>anyObject())).andReturn(config).once(); + + Map oldLogFeederEnv = ImmutableMap.of( + "content", "infra_solr_ssl_enabled"); + + Map expectedLogFeederEnv = ImmutableMap.of( + "content", "logsearch_solr_ssl_enabled"); + + Config mockLogFeederEnv = easyMockSupport.createNiceMock(Config.class); + expect(cluster.getDesiredConfigByType("logfeeder-env")).andReturn(mockLogFeederEnv).atLeastOnce(); + expect(mockLogFeederEnv.getProperties()).andReturn(oldLogFeederEnv).anyTimes(); + Capture> logFeederEnvCapture = EasyMock.newCapture(); + expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logFeederEnvCapture), anyString(), + EasyMock.>>anyObject())).andReturn(config).once(); + + Map oldLogSearchEnv = ImmutableMap.of( + "logsearch_solr_audit_logs_use_ranger", "false", + "logsearch_solr_audit_logs_zk_node", "zk_node", + "logsearch_solr_audit_logs_zk_quorum", "zk_quorum", + "content", "infra_solr_ssl_enabled or logsearch_ui_protocol == 'https'"); + + Map expectedLogSearchEnv = ImmutableMap.of( + "content", "logsearch_solr_ssl_enabled or logsearch_ui_protocol == 'https' or ambari_server_use_ssl"); + + Config mockLogSearchEnv = easyMockSupport.createNiceMock(Config.class); + expect(cluster.getDesiredConfigByType("logsearch-env")).andReturn(mockLogSearchEnv).atLeastOnce(); + expect(mockLogSearchEnv.getProperties()).andReturn(oldLogSearchEnv).anyTimes(); + Capture> logSearchEnvCapture = EasyMock.newCapture(); + expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logSearchEnvCapture), anyString(), + EasyMock.>>anyObject())).andReturn(config).once(); + + Map oldLogSearchLog4j = ImmutableMap.of( + "content", "{{logsearch_log_dir}}/logsearch.err\n" + + ""); + + Map expectedLogSearchLog4j = ImmutableMap.of( + "content", "{{logsearch_log_dir}}/logsearch.log\n" + + ""); + + Config mockLogSearchLog4j = easyMockSupport.createNiceMock(Config.class); + expect(cluster.getDesiredConfigByType("logsearch-log4j")).andReturn(mockLogSearchLog4j).atLeastOnce(); + expect(mockLogSearchLog4j.getProperties()).andReturn(oldLogSearchLog4j).anyTimes(); + Capture> logSearchLog4jCapture = EasyMock.newCapture(); + expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logSearchLog4jCapture), anyString(), + EasyMock.>>anyObject())).andReturn(config).once(); + + replay(clusters, cluster); + replay(controller, injector2); + replay(mockLogSearchProperties, mockLogFeederEnv, mockLogSearchEnv, mockLogSearchLog4j); + new UpgradeCatalog250(injector2).updateLogSearchConfigs(); + easyMockSupport.verifyAll(); + + Map updatedLogSearchProperties = logSearchPropertiesCapture.getValue(); + assertTrue(Maps.difference(expectedLogSearchProperties, updatedLogSearchProperties).areEqual()); + + Map updatedLogFeederEnv = logFeederEnvCapture.getValue(); + assertTrue(Maps.difference(expectedLogFeederEnv, updatedLogFeederEnv).areEqual()); + + Map updatedLogSearchEnv = logSearchEnvCapture.getValue(); + assertTrue(Maps.difference(expectedLogSearchEnv, updatedLogSearchEnv).areEqual()); + + Map updatedLogSearchLog4j = logSearchLog4jCapture.getValue(); + assertTrue(Maps.difference(expectedLogSearchLog4j, updatedLogSearchLog4j).areEqual()); + } + + @Test public void testUpdateAtlasConfigs() throws Exception { Map oldHiveProperties = new HashMap(); @@ -570,7 +674,7 @@ public class UpgradeCatalog250Test { replay(clusters, mockAtlasConfig, cluster); - AmbariManagementControllerImpl controller = (AmbariManagementControllerImpl)createMockBuilder(AmbariManagementControllerImpl.class) + AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") http://git-wip-us.apache.org/repos/asf/ambari/blob/b46a2f62/ambari-web/app/data/configs/services/logsearch_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/configs/services/logsearch_properties.js b/ambari-web/app/data/configs/services/logsearch_properties.js index f003d04..3b1a9e8 100644 --- a/ambari-web/app/data/configs/services/logsearch_properties.js +++ b/ambari-web/app/data/configs/services/logsearch_properties.js @@ -166,9 +166,37 @@ module.exports = [ }, { "category": "Advanced logfeeder-log4j", + "name": "logfeeder_log_maxfilesize", "filename": "logfeeder-log4j.xml", "index": 1, + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logfeeder-log4j", + "name": "logfeeder_log_maxbackupindex", + "filename": "logfeeder-log4j.xml", + "index": 2, + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logfeeder-log4j", + "name": "logfeeder_json_log_maxfilesize", + "filename": "logfeeder-log4j.xml", + "index": 3, + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logfeeder-log4j", + "name": "logfeeder_json_log_maxbackupindex", + "filename": "logfeeder-log4j.xml", + "index": 4, + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logfeeder-log4j", "name": "content", + "filename": "logfeeder-log4j.xml", + "index": 5, "serviceName": "LOGSEARCH" }, { @@ -329,6 +357,62 @@ module.exports = [ "category": "Advanced logsearch-log4j", "filename": "logsearch-log4j.xml", "index": 1, + "name": "logsearch_log_maxfilesize", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 2, + "name": "logsearch_log_maxbackupindex", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 3, + "name": "logsearch_json_log_maxfilesize", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 4, + "name": "logsearch_json_log_maxbackupindex", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 5, + "name": "logsearch_audit_log_maxfilesize", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 6, + "name": "logsearch_audit_log_maxbackupindex", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 7, + "name": "logsearch_perf_log_maxfilesize", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 8, + "name": "logsearch_perf_log_maxbackupindex", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-log4j", + "filename": "logsearch-log4j.xml", + "index": 9, "name": "content", "serviceName": "LOGSEARCH" },