浏览代码

AMBARI-16122. Logsearch: Property changes not getting reflected at the backend (oleewere)

oleewere 9 年之前
父节点
当前提交
03ce1907b7
共有 24 个文件被更改,包括 202 次插入138 次删除
  1. 1 1
      ambari-logsearch/ambari-logsearch-portal/src/main/scripts/run.sh
  2. 5 5
      ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java
  3. 3 3
      ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperImpl.java
  4. 2 2
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json
  5. 0 17
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml
  6. 41 0
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml
  7. 1 1
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-site.xml
  8. 1 1
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-admin-json.xml
  9. 7 0
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml
  10. 0 7
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml
  11. 2 2
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/metainfo.xml
  12. 1 1
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/logsearch.py
  13. 32 16
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py
  14. 1 1
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/setup_logsearch.py
  15. 5 0
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/templates/logfeeder.properties.j2
  16. 8 0
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/templates/logsearch.properties.j2
  17. 2 0
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2
  18. 3 3
      ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json
  19. 9 9
      ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java
  20. 4 4
      ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperImplTest.java
  21. 10 10
      ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py
  22. 1 7
      ambari-server/src/test/python/stacks/2.4/configs/default.json
  23. 60 45
      ambari-web/app/data/HDP2/site_properties.js
  24. 3 3
      ambari-web/app/models/quick_links.js

+ 1 - 1
ambari-logsearch/ambari-logsearch-portal/src/main/scripts/run.sh

@@ -87,5 +87,5 @@ LOGSEARCH_GC_OPTS="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$LOGSEARCH
 echo "Starting logsearch. Output file=$LOGFILE pid_file=$PID_FILE"
 #LOGSEARCH_CLI_CLASSPATH=
 #set -x
-nohup $JAVA -cp "$LOGSEARCH_CLI_CLASSPATH:$LOGSEARCH_CONF_DIR:$script_dir/libs/*:$script_dir/classes:$script_dir/LogProcessor.jar" $LOGSEARCH_GC_OPTS $LOGSEARCH_JAVA_MEM $LOGSEARCH_JAVA_OPTS $JMX org.apache.ambari.logsearch.LogSearch $* > $LOGFILE 2>&1 &
+nohup $JAVA -cp "$LOGSEARCH_CLI_CLASSPATH:$LOGSEARCH_CONF_DIR:$script_dir/libs/*:$script_dir/classes:$script_dir/LogProcessor.jar" $LOGSEARCH_GC_OPTS $LOGSEARCH_JAVA_MEM $LOGSEARCH_JAVA_OPTS $JMX org.apache.ambari.logsearch.LogSearch $LOGSEARCH_PORT $* > $LOGFILE 2>&1 &
 echo $! > $PID_FILE

+ 5 - 5
ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java

@@ -32,13 +32,13 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact
 
   private static final Logger LOG = Logger.getLogger(LoggingRequestHelperFactoryImpl.class);
 
-  private static final String LOGSEARCH_SITE_CONFIG_TYPE_NAME = "logsearch-site";
+  private static final String LOGSEARCH_ENV_CONFIG_TYPE_NAME = "logsearch-env";
 
   private static final String LOGSEARCH_SERVICE_NAME = "LOGSEARCH";
 
   private static final String LOGSEARCH_SERVER_COMPONENT_NAME = "LOGSEARCH_SERVER";
 
-  private static final String LOGSEARCH_UI_PORT_PROPERTY_NAME = "logsearch.ui.port";
+  private static final String LOGSEARCH_UI_PORT_PROPERTY_NAME = "logsearch_ui_port";
 
 
   @Override
@@ -58,8 +58,8 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact
           return null;
         }
 
-        Config logSearchSiteConfig =
-          cluster.getDesiredConfigByType(LOGSEARCH_SITE_CONFIG_TYPE_NAME);
+        Config logSearchEnvConfig =
+          cluster.getDesiredConfigByType(LOGSEARCH_ENV_CONFIG_TYPE_NAME);
 
         List<ServiceComponentHost> listOfMatchingHosts =
           cluster.getServiceComponentHosts(LOGSEARCH_SERVICE_NAME, LOGSEARCH_SERVER_COMPONENT_NAME);
@@ -84,7 +84,7 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact
 
         final String logSearchHostName = serviceComponentHost.getHostName();
         final String logSearchPortNumber =
-          logSearchSiteConfig.getProperties().get(LOGSEARCH_UI_PORT_PROPERTY_NAME);
+          logSearchEnvConfig.getProperties().get(LOGSEARCH_UI_PORT_PROPERTY_NAME);
 
         return new LoggingRequestHelperImpl(logSearchHostName, logSearchPortNumber, ambariManagementController.getCredentialStoreService(), cluster);
       }

+ 3 - 3
ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperImpl.java

@@ -56,7 +56,7 @@ public class LoggingRequestHelperImpl implements LoggingRequestHelper {
 
   private static Logger LOG = Logger.getLogger(LoggingRequestHelperImpl.class);
 
-  private static final String LOGSEARCH_ADMIN_PROPERTIES_CONFIG_TYPE_NAME = "logsearch-admin-properties";
+  private static final String LOGSEARCH_ADMIN_JSON_CONFIG_TYPE_NAME = "logsearch-admin-json";
 
   private static final String LOGSEARCH_ADMIN_USERNAME_PROPERTY_NAME = "logsearch_admin_username";
 
@@ -153,7 +153,7 @@ public class LoggingRequestHelperImpl implements LoggingRequestHelper {
 
   private String getLogSearchAdminUser() {
     Config logSearchAdminConfig =
-      cluster.getDesiredConfigByType(LOGSEARCH_ADMIN_PROPERTIES_CONFIG_TYPE_NAME);
+      cluster.getDesiredConfigByType(LOGSEARCH_ADMIN_JSON_CONFIG_TYPE_NAME);
 
     if (logSearchAdminConfig != null) {
       return logSearchAdminConfig.getProperties().get(LOGSEARCH_ADMIN_USERNAME_PROPERTY_NAME);
@@ -164,7 +164,7 @@ public class LoggingRequestHelperImpl implements LoggingRequestHelper {
 
   private String getLogSearchAdminPassword() {
     Config logSearchAdminConfig =
-      cluster.getDesiredConfigByType(LOGSEARCH_ADMIN_PROPERTIES_CONFIG_TYPE_NAME);
+      cluster.getDesiredConfigByType(LOGSEARCH_ADMIN_JSON_CONFIG_TYPE_NAME);
 
     if (logSearchAdminConfig != null) {
       return logSearchAdminConfig.getProperties().get(LOGSEARCH_ADMIN_PASSWORD_PROPERTY_NAME);

+ 2 - 2
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json

@@ -10,8 +10,8 @@
         "source": {
           "type": "WEB",
           "uri": {
-            "http": "{{logsearch-site/logsearch.ui.port}}",
-            "https": "{{logsearch-site/logsearch.ui.port}}",
+            "http": "{{logsearch-env/logsearch_ui_port}}",
+            "https": "{{logsearch-env/logsearch_ui_port}}",
             "connection_timeout": 5.0,
             "default_port": 61888
           },

+ 0 - 17
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml

@@ -44,23 +44,6 @@
     </value-attributes>
   </property>
 
-  <property>
-    <name>logfeeder_checkpoint_folder</name>
-    <value>/etc/ambari-logsearch-logfeeder/conf/checkpoints</value>
-    <description>Checkpoint folder for logfeeder</description>
-    <display-name>Logfeeder checkpoint dir</display-name>
-    <value-attributes>
-      <type>directory</type>
-    </value-attributes>
-  </property>
-
-  <property>
-    <name>logfeeder_config_files</name>
-    <value>{{logfeeder_config_files}}</value>
-    <description>Comma separated config files in grok format</description>
-    <display-name>Logfeeder config files</display-name>
-  </property>
-
   <property>
     <name>logfeeder_user</name>
     <value>logfeeder</value>

+ 41 - 0
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-properties.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+<configuration>
+
+  <property>
+    <name>logfeeder.config.files</name>
+    <value>{{logfeeder_config_files}}</value>
+    <description>Comma separated config files in grok format</description>
+    <display-name>Logfeeder config files</display-name>
+  </property>
+
+  <property>
+    <name>logfeeder.checkpoint.folder</name>
+    <value>/etc/ambari-logsearch-logfeeder/conf/checkpoints</value>
+    <description>Checkpoint folder for logfeeder</description>
+    <display-name>Logfeeder checkpoint dir</display-name>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
+  </property>
+
+</configuration>

+ 1 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-site.xml

@@ -19,7 +19,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_adding_forbidden="true">
 
   <property>
     <name>logfeeder.solr.service.logs.enable</name>

+ 1 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-admin-properties.xml → ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-admin-json.xml

@@ -19,7 +19,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_adding_forbidden="true">
 
   <property>
     <name>logsearch_admin_username</name>

+ 7 - 0
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml

@@ -22,6 +22,13 @@
 <!-- This is a special config file for properties used to monitor status of the service -->
 <configuration supports_adding_forbidden="true">
 
+  <property>
+    <name>logsearch_ui_port</name>
+    <value>61888</value>
+    <description>Default port for LogSearch UI</description>
+    <display-name>Logsearch UI Port</display-name>
+  </property>
+
   <property>
     <name>logsearch_pid_dir</name>
     <value>/var/run/ambari-logsearch-portal</value>

+ 0 - 7
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-site.xml → ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml

@@ -21,13 +21,6 @@
 -->
 <configuration>
 
-  <property>
-    <name>logsearch.ui.port</name>
-    <value>61888</value>
-    <description>Default port for LogSearch UI</description>
-    <display-name>Logsearch UI Port</display-name>
-  </property>
-
   <property>
     <name>logsearch.collection.numshards</name>
     <value>5</value>

+ 2 - 2
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/metainfo.xml

@@ -167,8 +167,8 @@
       </requiredServices>
 
       <configuration-dependencies>
-        <config-type>logsearch-site</config-type>
-        <config-type>solr-site</config-type>
+        <config-type>logsearch-properties</config-type>
+        <config-type>solr-xml</config-type>
         <config-type>logfeeder-site</config-type>
       </configuration-dependencies>
       <restartRequiredAfterChange>false</restartRequiredAfterChange>

+ 1 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/logsearch.py

@@ -42,7 +42,7 @@ class LogSearch(Script):
     env.set_params(params)
     self.configure(env)
 
-    Execute(format("{logsearch_dir}/run.sh {logsearch_ui_port}"),
+    Execute(format("{logsearch_dir}/run.sh"),
             environment={'LOGSEARCH_INCLUDE': format('{logsearch_server_conf}/logsearch-env.sh')},
             user=params.logsearch_user
             )

+ 32 - 16
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py

@@ -96,15 +96,10 @@ logsearch_solr_data_resources_dir = os.path.join(logsearch_solr_datadir, 'resour
 logsearch_service_logs_max_retention = config['configurations']['logsearch-service_logs-solrconfig']['logsearch_service_logs_max_retention']
 logsearch_audit_logs_max_retention = config['configurations']['logsearch-audit_logs-solrconfig']['logsearch_audit_logs_max_retention']
 
-logsearch_service_logs_fields = config['configurations']['logsearch-site']['logsearch.service.logs.fields']
+logsearch_service_logs_fields = config['configurations']['logsearch-properties']['logsearch.service.logs.fields']
 
-logsearch_ui_port = config['configurations']['logsearch-site']["logsearch.ui.port"]
-logsearch_debug_enabled = str(config['configurations']['logsearch-env']["logsearch_debug_enabled"]).lower()
-logsearch_debug_port = config['configurations']['logsearch-env']["logsearch_debug_port"]
-logsearch_app_max_memory = config['configurations']['logsearch-env']['logsearch_app_max_memory']
-
-audit_logs_collection_splits_interval_mins = config['configurations']['logsearch-site']['logsearch.audit.logs.split.interval.mins']
-service_logs_collection_splits_interval_mins = config['configurations']['logsearch-site']['logsearch.service.logs.split.interval.mins']
+audit_logs_collection_splits_interval_mins = config['configurations']['logsearch-properties']['logsearch.audit.logs.split.interval.mins']
+service_logs_collection_splits_interval_mins = config['configurations']['logsearch-properties']['logsearch.service.logs.split.interval.mins']
 
 zookeeper_port = default('/configurations/zoo.cfg/clientPort', None)
 # get comma separated list of zookeeper hosts from clusterHostInfo
@@ -138,18 +133,19 @@ solr_log4j_content = config['configurations']['logsearch-solr-log4j']['content']
 # Logsearch configs
 #####################################
 logsearch_dir = '/usr/lib/ambari-logsearch-portal'
-logsearch_numshards_config = config['configurations']['logsearch-site']['logsearch.collection.numshards']
+
+logsearch_numshards_config = config['configurations']['logsearch-properties']['logsearch.collection.numshards']
 
 if logsearch_numshards_config > 0:
   logsearch_numshards = str(logsearch_numshards_config)
 else:
   logsearch_numshards = format(str(logsearch_solr_instance_count))
 
-logsearch_repfactor = str(config['configurations']['logsearch-site']['logsearch.collection.replication.factor'])
+logsearch_repfactor = str(config['configurations']['logsearch-properties']['logsearch.collection.replication.factor'])
 
-logsearch_solr_collection_service_logs = default('/configurations/logsearch-site/logsearch.solr.collection.service.logs', 'hadoop_logs')
-logsearch_solr_collection_audit_logs = default('/configurations/logsearch-site/logsearch.solr.collection.audit.logs','audit_logs')
-logsearch_logfeeder_log_level_include = default('/configurations/logsearch-site/logsearch.logfeeder.include.default.level', 'fatal,error,warn')
+logsearch_solr_collection_service_logs = default('/configurations/logsearch-properties/logsearch.solr.collection.service.logs', 'hadoop_logs')
+logsearch_solr_collection_audit_logs = default('/configurations/logsearch-properties/logsearch.solr.collection.audit.logs','audit_logs')
+logsearch_logfeeder_log_level_include = default('/configurations/logsearch-properties/logsearch.logfeeder.include.default.level', 'fatal,error,warn')
 
 solr_audit_logs_use_ranger = default('/configurations/logsearch-env/logsearch_solr_audit_logs_use_ranger', False)
 solr_audit_logs_url = ''
@@ -172,11 +168,26 @@ else:
   solr_audit_logs_zk_node = format(solr_audit_logs_zk_node)
   solr_audit_logs_zk_quorum = format(solr_audit_logs_zk_quorum)
 
+# create custom properties - remove defaults
+logsearch_custom_properties = dict(config['configurations']['logsearch-properties'])
+logsearch_custom_properties.pop("logsearch.collection.numshards", None)
+logsearch_custom_properties.pop("logsearch.collection.replication.factor", None)
+logsearch_custom_properties.pop("logsearch.solr.collection.service.logs", None)
+logsearch_custom_properties.pop("logsearch.solr.collection.audit.logs", None)
+logsearch_custom_properties.pop("logsearch.service.logs.fields", None)
+logsearch_custom_properties.pop("logsearch.service.logs.split.interval.mins", None)
+logsearch_custom_properties.pop("logsearch.audit.logs.split.interval.mins", None)
+logsearch_custom_properties.pop("logsearch.logfeeder.include.default.level", None)
+
 # logsearch-env configs
 logsearch_user = config['configurations']['logsearch-env']['logsearch_user']
 logsearch_group = config['configurations']['logsearch-env']['logsearch_group']
 logsearch_log_dir = config['configurations']['logsearch-env']['logsearch_log_dir']
 logsearch_log = logsearch_log_dir + '/logsearch.out'
+logsearch_ui_port = config['configurations']['logsearch-env']["logsearch_ui_port"]
+logsearch_debug_enabled = str(config['configurations']['logsearch-env']["logsearch_debug_enabled"]).lower()
+logsearch_debug_port = config['configurations']['logsearch-env']["logsearch_debug_port"]
+logsearch_app_max_memory = config['configurations']['logsearch-env']['logsearch_app_max_memory']
 
 # store the log file for the service from the 'solr.log' property of the 'logsearch-env.xml' file
 logsearch_env_content = config['configurations']['logsearch-env']['content']
@@ -212,9 +223,10 @@ zk_log_dir = default('/configurations/zookeeper-env/zk_log_dir', '/var/log/zooke
 # Logsearch admin configs
 #####################################
 
-logsearch_admin_username = default('/configurations/logsearch-admin-properties/logsearch_admin_username', "admin")
-logsearch_admin_password = default('/configurations/logsearch-admin-properties/logsearch_admin_password', "")
-logsearch_admin_content = config['configurations']['logsearch-admin-properties']['content']
+logsearch_admin_credential_file = 'logsearch-admin.json'
+logsearch_admin_username = default('/configurations/logsearch-admin-json/logsearch_admin_username', "admin")
+logsearch_admin_password = default('/configurations/logsearch-admin-json/logsearch_admin_password', "")
+logsearch_admin_content = config['configurations']['logsearch-admin-json']['content']
 
 #####################################
 # Logfeeder configs
@@ -253,3 +265,7 @@ logfeeder_config_file_names = ['global.config.json', 'output.config.json'] + ['i
                                                                               logfeeder_supported_services]
 
 logfeeder_config_files = ','.join(logfeeder_config_file_names)
+
+logfeeder_custom_properties = dict(config['configurations']['logfeeder-properties'])
+logfeeder_custom_properties.pop('logfeeder.config.files', None)
+logfeeder_custom_properties.pop('logfeeder.checkpoint.folder', None)

+ 1 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/setup_logsearch.py

@@ -59,7 +59,7 @@ def setup_logsearch():
        owner=params.logsearch_user
        )
 
-  File(format("{logsearch_server_conf}/user_pass.json"),
+  File(format("{logsearch_server_conf}/logsearch-admin.json"),
        content=InlineTemplate(params.logsearch_admin_content),
        owner=params.logsearch_user
        )

+ 5 - 0
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/templates/logfeeder.properties.j2

@@ -16,3 +16,8 @@
 logfeeder.checkpoint.folder={{logfeeder_checkpoint_folder}}
 metrics.collector.hosts={{metrics_collector_hosts}}
 config.files={{logfeeder_config_files}}
+
+# Custom properties
+{% for key, value in logfeeder_custom_properties.items() %}
+{{key}}={{value}}
+{% endfor %}

+ 8 - 0
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/templates/logsearch.properties.j2

@@ -42,3 +42,11 @@ solr.history.replication_factor={{logsearch_repfactor}}
 #Logfeeder Settings
 
 logfeeder.include.default.level={{logsearch_logfeeder_log_level_include}}
+
+# logsearch-admin.json
+logsearch.login.credentials.file={{logsearch_admin_credential_file}}
+
+# Custom properties
+{% for key, value in logsearch_custom_properties.items() %}
+{{key}}={{value}}
+{% endfor %}

+ 2 - 0
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2

@@ -16,6 +16,8 @@
 
 set -e
 
+export LOGSEARCH_PORT={{logsearch_ui_port}}
+
 # path containing LogSearch.jar file
 export LOGSEARCH_PATH={{logsearch_dir}}
 

+ 3 - 3
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json

@@ -13,12 +13,12 @@
         "url": "%@://%@:%@",
         "requires_user_name": "false",
         "port": {
-          "http_property": "logsearch.ui.port",
+          "http_property": "logsearch_ui_port",
           "http_default_port": "8888",
-          "https_property": "logsearch.ui.port",
+          "https_property": "logsearch_ui_port",
           "https_default_port": "8888",
           "regex": "^(\\d+)$",
-          "site": "logsearch-site"
+          "site": "logsearch-env"
         }
       }
     ]

+ 9 - 9
ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java

@@ -57,7 +57,7 @@ public class LoggingRequestHelperFactoryImplTest {
     Cluster clusterMock =
       mockSupport.createMock(Cluster.class);
 
-    Config logSearchSiteConfig =
+    Config logSearchEnvConfig =
       mockSupport.createMock(Config.class);
 
     ServiceComponentHost serviceComponentHostMock =
@@ -68,15 +68,15 @@ public class LoggingRequestHelperFactoryImplTest {
 
     Map<String, String> testProperties =
       new HashMap<String, String>();
-    testProperties.put("logsearch.ui.port", expectedPortNumber);
+    testProperties.put("logsearch_ui_port", expectedPortNumber);
 
     expect(controllerMock.getClusters()).andReturn(clustersMock).atLeastOnce();
     expect(controllerMock.getCredentialStoreService()).andReturn(credentialStoreServiceMock).atLeastOnce();
     expect(clustersMock.getCluster(expectedClusterName)).andReturn(clusterMock).atLeastOnce();
-    expect(clusterMock.getDesiredConfigByType("logsearch-site")).andReturn(logSearchSiteConfig).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-env")).andReturn(logSearchEnvConfig).atLeastOnce();
     expect(clusterMock.getServiceComponentHosts("LOGSEARCH", "LOGSEARCH_SERVER")).andReturn(Collections.singletonList(serviceComponentHostMock)).atLeastOnce();
     expect(clusterMock.getServices()).andReturn(Collections.singletonMap("LOGSEARCH", (Service) null)).atLeastOnce();
-    expect(logSearchSiteConfig.getProperties()).andReturn(testProperties).atLeastOnce();
+    expect(logSearchEnvConfig.getProperties()).andReturn(testProperties).atLeastOnce();
     expect(serviceComponentHostMock.getHostName()).andReturn(expectedHostName).atLeastOnce();
     expect(serviceComponentHostMock.getState()).andReturn(State.STARTED).atLeastOnce();
 
@@ -115,7 +115,7 @@ public class LoggingRequestHelperFactoryImplTest {
     Cluster clusterMock =
       mockSupport.createMock(Cluster.class);
 
-    Config logSearchSiteConfig =
+    Config logSearchEnvConfig =
       mockSupport.createMock(Config.class);
 
     ServiceComponentHost serviceComponentHostMock =
@@ -123,11 +123,11 @@ public class LoggingRequestHelperFactoryImplTest {
 
     Map<String, String> testProperties =
       new HashMap<String, String>();
-    testProperties.put("logsearch.ui.port", expectedPortNumber);
+    testProperties.put("logsearch_ui_port", expectedPortNumber);
 
     expect(controllerMock.getClusters()).andReturn(clustersMock).atLeastOnce();
     expect(clustersMock.getCluster(expectedClusterName)).andReturn(clusterMock).atLeastOnce();
-    expect(clusterMock.getDesiredConfigByType("logsearch-site")).andReturn(logSearchSiteConfig).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-env")).andReturn(logSearchEnvConfig).atLeastOnce();
     expect(clusterMock.getServiceComponentHosts("LOGSEARCH", "LOGSEARCH_SERVER")).andReturn(Collections.singletonList(serviceComponentHostMock)).atLeastOnce();
     expect(clusterMock.getServices()).andReturn(Collections.singletonMap("LOGSEARCH", (Service) null)).atLeastOnce();
 
@@ -165,12 +165,12 @@ public class LoggingRequestHelperFactoryImplTest {
     Cluster clusterMock =
       mockSupport.createMock(Cluster.class);
 
-    Config logSearchSiteConfig =
+    Config logSearchEnvConfig =
       mockSupport.createMock(Config.class);
 
     expect(controllerMock.getClusters()).andReturn(clustersMock).atLeastOnce();
     expect(clustersMock.getCluster(expectedClusterName)).andReturn(clusterMock).atLeastOnce();
-    expect(clusterMock.getDesiredConfigByType("logsearch-site")).andReturn(logSearchSiteConfig).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-env")).andReturn(logSearchEnvConfig).atLeastOnce();
     expect(clusterMock.getServiceComponentHosts("LOGSEARCH", "LOGSEARCH_SERVER")).andReturn(Collections.<ServiceComponentHost>emptyList()).atLeastOnce();
     expect(clusterMock.getServices()).andReturn(Collections.singletonMap("LOGSEARCH", (Service)null)).atLeastOnce();
 

+ 4 - 4
ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperImplTest.java

@@ -147,7 +147,7 @@ public class LoggingRequestHelperImplTest {
     Capture<HttpURLConnection> captureURLConnection = new Capture<HttpURLConnection>();
     Capture<HttpURLConnection> captureURLConnectionForAuthentication = new Capture<HttpURLConnection>();
 
-    expect(clusterMock.getDesiredConfigByType("logsearch-admin-properties")).andReturn(adminPropertiesConfigMock).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-admin-json")).andReturn(adminPropertiesConfigMock).atLeastOnce();
     expect(adminPropertiesConfigMock.getProperties()).andReturn(testConfigProperties).atLeastOnce();
     expect(networkConnectionMock.readQueryResponseFromServer(capture(captureURLConnection))).andReturn(new StringBuffer(TEST_JSON_INPUT_TWO_LIST_ENTRIES)).atLeastOnce();
 
@@ -325,7 +325,7 @@ public class LoggingRequestHelperImplTest {
     Capture<HttpURLConnection> captureURLConnection = new Capture<HttpURLConnection>();
     Capture<HttpURLConnection> captureURLConnectionForAuthentication = new Capture<HttpURLConnection>();
 
-    expect(clusterMock.getDesiredConfigByType("logsearch-admin-properties")).andReturn(adminPropertiesConfigMock).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-admin-json")).andReturn(adminPropertiesConfigMock).atLeastOnce();
     expect(adminPropertiesConfigMock.getProperties()).andReturn(testConfigProperties).atLeastOnce();
     expect(networkConnectionMock.readQueryResponseFromServer(capture(captureURLConnection))).andReturn(new StringBuffer(TEST_JSON_INPUT_LOG_LEVEL_QUERY)).atLeastOnce();
 
@@ -417,7 +417,7 @@ public class LoggingRequestHelperImplTest {
     Capture<HttpURLConnection> captureURLConnection = new Capture<HttpURLConnection>();
     Capture<HttpURLConnection> captureURLConnectionForAuthentication = new Capture<HttpURLConnection>();
 
-    expect(clusterMock.getDesiredConfigByType("logsearch-admin-properties")).andReturn(adminPropertiesConfigMock).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-admin-json")).andReturn(adminPropertiesConfigMock).atLeastOnce();
     expect(adminPropertiesConfigMock.getProperties()).andReturn(testConfigProperties).atLeastOnce();
     expect(networkConnectionMock.readQueryResponseFromServer(capture(captureURLConnection))).andReturn(new StringBuffer(TEST_JSON_INPUT_TWO_LIST_ENTRIES)).atLeastOnce();
 
@@ -498,7 +498,7 @@ public class LoggingRequestHelperImplTest {
     Capture<HttpURLConnection> captureURLConnection = new Capture<HttpURLConnection>();
     Capture<HttpURLConnection> captureURLConnectionForAuthentication = new Capture<HttpURLConnection>();
 
-    expect(clusterMock.getDesiredConfigByType("logsearch-admin-properties")).andReturn(adminPropertiesConfigMock).atLeastOnce();
+    expect(clusterMock.getDesiredConfigByType("logsearch-admin-json")).andReturn(adminPropertiesConfigMock).atLeastOnce();
     expect(clusterMock.getClusterName()).andReturn(expectedClusterName).atLeastOnce();
     expect(adminPropertiesConfigMock.getProperties()).andReturn(Collections.<String, String>emptyMap()).atLeastOnce();
     expect(networkConnectionMock.readQueryResponseFromServer(capture(captureURLConnection))).andReturn(new StringBuffer(TEST_JSON_INPUT_TWO_LIST_ENTRIES)).atLeastOnce();

+ 10 - 10
ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py

@@ -26,7 +26,7 @@ from resource_management.libraries.script.config_dictionary import UnknownConfig
 class TestLogSearch(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "LOGSEARCH/0.5.0/package"
   STACK_VERSION = "2.4"
-  
+
   def configureResourcesCalled(self):
     self.assertResourceCalled('Directory', '/var/log/ambari-logsearch-portal',
                               owner = 'logsearch',
@@ -63,7 +63,7 @@ class TestLogSearch(RMFTestCase):
                               cd_access = 'a',
                               mode = 0755
                               )
-    
+
     self.assertResourceCalled('File', '/var/log/ambari-logsearch-portal/logsearch.out',
                               owner = 'logsearch',
                               group = 'logsearch',
@@ -84,9 +84,9 @@ class TestLogSearch(RMFTestCase):
                               owner = "logsearch"
     )
 
-    self.assertResourceCalled('File', '/etc/ambari-logsearch-portal/conf/user_pass.json',
+    self.assertResourceCalled('File', '/etc/ambari-logsearch-portal/conf/logsearch-admin.json',
                               owner = 'logsearch',
-                              content = InlineTemplate(self.getConfig()['configurations']['logsearch-admin-properties']['content'])
+                              content = InlineTemplate(self.getConfig()['configurations']['logsearch-admin-json']['content'])
                               )
     self.assertResourceCalled('File', '/etc/ambari-logsearch-portal/conf/solr_configsets/hadoop_logs/conf/solrconfig.xml',
                               owner = 'logsearch',
@@ -96,7 +96,7 @@ class TestLogSearch(RMFTestCase):
                               owner = 'logsearch',
                               content = InlineTemplate(self.getConfig()['configurations']['logsearch-audit_logs-solrconfig']['content'])
                               )
-    
+
     self.assertResourceCalledRegexp('^Execute$', '^export JAVA_HOME=/usr/jdk64/jdk1.7.0_45 ; /usr/lib/ambari-logsearch-solr-client/solrCloudCli.sh -z c6401.ambari.apache.org/logsearch --download-config -d /tmp/solr_config_hadoop_logs_0.[0-9]* -cs hadoop_logs -rt 5 -i 10')
     self.assertResourceCalledRegexp('^Execute$', '^export JAVA_HOME=/usr/jdk64/jdk1.7.0_45 ; /usr/lib/ambari-logsearch-solr-client/solrCloudCli.sh -z c6401.ambari.apache.org/logsearch --upload-config -d /etc/ambari-logsearch-portal/conf/solr_configsets/hadoop_logs/conf -cs hadoop_logs -rt 5 -i 10')
 
@@ -109,7 +109,7 @@ class TestLogSearch(RMFTestCase):
     self.assertResourceCalled('Execute', ('chmod', '-R', 'ugo+r', '/etc/ambari-logsearch-portal/conf/solr_configsets'),
                               sudo=True
     )
-  
+
   def test_configure_default(self):
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/logsearch.py",
                        classname = "LogSearch",
@@ -118,10 +118,10 @@ class TestLogSearch(RMFTestCase):
                        stack_version = self.STACK_VERSION,
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-    
+
     self.configureResourcesCalled()
     self.assertNoMoreResources()
-  
+
   def test_start_default(self):
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/logsearch.py",
                        classname = "LogSearch",
@@ -130,9 +130,9 @@ class TestLogSearch(RMFTestCase):
                        stack_version = self.STACK_VERSION,
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-    
+
     self.configureResourcesCalled()
-    self.assertResourceCalled('Execute', "/usr/lib/ambari-logsearch-portal/run.sh 61888",
+    self.assertResourceCalled('Execute', "/usr/lib/ambari-logsearch-portal/run.sh",
                               environment = {'LOGSEARCH_INCLUDE': '/etc/ambari-logsearch-portal/conf/logsearch-env.sh'},
                               user = "logsearch"
     )

文件差异内容过多而无法显示
+ 1 - 7
ambari-server/src/test/python/stacks/2.4/configs/default.json


+ 60 - 45
ambari-web/app/data/HDP2/site_properties.js

@@ -1875,6 +1875,21 @@ var hdp2properties = [
     "index": 12
   },
 /************************************************LOGSEARCH******************************************/
+  /*logfeeder-properties*/
+  {
+    "name": "logfeeder.config.files",
+    "serviceName": "LOGSEARCH",
+    "filename": "logfeeder-properties.xml",
+    "category": "Advanced logfeeder-properties",
+    "index": 1
+  },
+  {
+    "name": "logfeeder.checkpoint.folder",
+    "serviceName": "LOGSEARCH",
+    "filename": "logfeeder-properties.xml",
+    "category": "Advanced logfeeder-properties",
+    "index": 2
+  },
   /*logfeeder-env*/
   {
     "name": "logfeeder_log_dir",
@@ -1884,21 +1899,21 @@ var hdp2properties = [
     "index": 1
   },
   {
-    "name": "logfeeder_checkpoint_folder",
+    "name": "logfeeder_pid_dir",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
     "index": 2
   },
   {
-    "name": "logfeeder_pid_dir",
+    "name": "logfeeder_user",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
     "index": 3
   },
   {
-    "name": "logfeeder_config_files",
+    "name": "logfeeder_group",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
@@ -1990,26 +2005,26 @@ var hdp2properties = [
     "category": "Advanced logfeeder-site",
     "index": 9
   },
-  /*logsearch-admin-properties*/
+  /*logsearch-admin-json*/
   {
     "name": "logsearch_admin_username",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-admin-properties.xml",
-    "category": "Advanced logsearch-admin-properties",
+    "filename": "logsearch-admin-json.xml",
+    "category": "Advanced logsearch-admin-json",
     "index": 1
   },
   {
     "name": "logsearch_admin_password",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-admin-properties.xml",
-    "category": "Advanced logsearch-admin-properties",
+    "filename": "logsearch-admin-json.xml",
+    "category": "Advanced logsearch-admin-json",
     "index": 2
   },
   {
     "name": "content",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-admin-properties.xml",
-    "category": "Advanced logsearch-admin-properties",
+    "filename": "logsearch-admin-json.xml",
+    "category": "Advanced logsearch-admin-json",
     "index": 3
   },
   /*logsearch-audit_logs-solrconfig*/
@@ -2029,68 +2044,75 @@ var hdp2properties = [
   },
   /*logsearch-env*/
   {
-    "name": "logsearch_log_dir",
+    "name": "logsearch_ui_port",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 1
   },
   {
-    "name": "logsearch_pid_dir",
+    "name": "logsearch_log_dir",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 2
   },
   {
-    "name": "logsearch_app_max_memory",
+    "name": "logsearch_pid_dir",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 3
   },
   {
-    "name": "logsearch_solr_audit_logs_zk_node",
+    "name": "logsearch_app_max_memory",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 4
   },
   {
-    "name": "logsearch_solr_audit_logs_zk_quorum",
+    "name": "logsearch_solr_audit_logs_zk_node",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 5
   },
   {
-    "name": "logsearch_solr_audit_logs_use_ranger",
+    "name": "logsearch_solr_audit_logs_zk_quorum",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 6
   },
   {
-    "name": "logsearch_debug_enabled",
+    "name": "logsearch_solr_audit_logs_use_ranger",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 7
   },
   {
-    "name": "logsearch_debug_port",
+    "name": "logsearch_debug_enabled",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 8
   },
   {
-    "name": "content",
+    "name": "logsearch_debug_port",
     "serviceName": "LOGSEARCH",
     "filename": "logsearch-env.xml",
     "category": "Advanced logsearch-env",
     "index": 9
   },
+  {
+    "name": "content",
+    "serviceName": "LOGSEARCH",
+    "filename": "logsearch-env.xml",
+    "category": "Advanced logsearch-env",
+    "index": 10
+  },
   /*logsearch-log4j*/
   {
     "name": "content",
@@ -2114,68 +2136,61 @@ var hdp2properties = [
     "category": "Advanced logsearch-service_logs-solrconfig",
     "index": 2
   },
-  /*logsearch-site*/
-  {
-    "name": "logsearch.ui.port",
-    "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
-    "index": 1
-  },
+  /*logsearch-properties*/
   {
     "name": "logsearch.collection.numshards",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
-    "index": 2
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
+    "index": 1
   },
   {
     "name": "logsearch.collection.replication.factor",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
-    "index": 3
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
+    "index": 2
   },
   {
     "name": "logsearch.solr.collection.service.logs",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 4
   },
   {
     "name": "logsearch.service.logs.fields",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 5
   },
   {
     "name": "logsearch.service.logs.split.interval.mins",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 6
   },
   {
     "name": "logsearch.solr.collection.audit.logs",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 7
   },
   {
     "name": "logsearch.audit.logs.split.interval.mins",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 8
   },
   {
     "name": "logsearch.logfeeder.include.default.level",
     "serviceName": "LOGSEARCH",
-    "filename": "logsearch-site.xml",
-    "category": "Advanced logsearch-site",
+    "filename": "logsearch-properties.xml",
+    "category": "Advanced logsearch-properties",
     "index": 9
   },
   /*logsearch-solr-env*/

+ 3 - 3
ambari-web/app/models/quick_links.js

@@ -362,9 +362,9 @@ App.QuickLinks.FIXTURES = [
     url:'%@://%@:%@',
     service_id: 'LOGSEARCH',
     template:'%@://%@:%@',
-    http_config: 'logsearch.ui.port',
-    https_config: 'logsearch.ui.port',
-    site: 'logsearch-site',
+    http_config: 'logsearch_ui_port',
+    https_config: 'logsearch_ui_port',
+    site: 'logsearch-env',
     regex: '^(\\d+)$',
     default_http_port: 61888,
     default_https_port: 61888

部分文件因为文件数量过多而无法显示