http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/main/resources/log4j.xml ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/resources/log4j.xml b/ambari-logsearch/ambari-logsearch-server/src/main/resources/log4j.xml index dd85da8..68b697f 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/resources/log4j.xml +++ b/ambari-logsearch/ambari-logsearch-server/src/main/resources/log4j.xml @@ -16,112 +16,70 @@ limitations under the License. --> -<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> +<!DOCTYPE log4j:configuration SYSTEM + "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> - <param name="Target" value="System.out" /> + <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> + <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n"/> </layout> </appender> - <!-- <appender name="rolling_file" class="org.apache.log4j.RollingFileAppender"> - <param name="file" value="logs/logsearch-app.log" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> - </layout> - </appender> - - <appender name="audit_rolling_file" class="org.apache.log4j.RollingFileAppender"> - <param name="file" value="logs/logsearch-audit.log" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> - </layout> + <appender name="rolling_file_json" + class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> + <param name="file" value="target/logs/logsearch-app.json"/> + <param name="Threshold" value="info"/> + <param name="append" value="true"/> + <param name="maxFileSize" value="10MB"/> + <param name="maxBackupIndex" value="10"/> + <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion"/> </appender> - <appender name="performance_analyzer" class="org.apache.log4j.RollingFileAppender"> - <param name="file" value="logs/logsearch-performance.log" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> - </layout> - </appender> - --> - -<!-- logsearch appender config for the all above appender --> - - <appender name="rolling_file_json" - class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> - <param name="file" value="target/logs/logsearch-app.json" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion" /> -</appender> - <appender name="audit_rolling_file_json" - class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> - <param name="file" value="target/logs/logsearch-audit.json" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion" /> + class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> + <param name="file" value="target/logs/logsearch-audit.json"/> + <param name="Threshold" value="info"/> + <param name="append" value="true"/> + <param name="maxFileSize" value="10MB"/> + <param name="maxBackupIndex" value="10"/> + <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion"/> </appender> <appender name="performance_analyzer_json" - class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> - <param name="file" value="target/logs/logsearch-performance.json" /> - <param name="Threshold" value="info" /> - <param name="append" value="true" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion" /> + class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender"> + <param name="file" value="target/logs/logsearch-performance.json"/> + <param name="Threshold" value="info"/> + <param name="append" value="true"/> + <param name="maxFileSize" value="10MB"/> + <param name="maxBackupIndex" value="10"/> + <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion"/> </appender> - - <!-- Logs to suppress BEGIN --> + <category name="org.apache.solr.common.cloud.ZkStateReader" additivity="false"> - <priority value="error" /> - <appender-ref ref="console" /> + <priority value="error"/> + <appender-ref ref="console"/> </category> - <!-- Logs to suppress END --> <logger name="org.apache.ambari.logsearch.audit" - additivity="true"> - <!-- <appender-ref ref="audit_rolling_file" />--> - <appender-ref ref="audit_rolling_file_json" /> + additivity="true"> + <appender-ref ref="audit_rolling_file_json"/> </logger> <logger name="org.apache.ambari.logsearch.performance" - additivity="false"> - <!-- <appender-ref ref="performance_analyzer" />--> - <appender-ref ref="performance_analyzer_json" /> + additivity="false"> + <appender-ref ref="performance_analyzer_json"/> </logger> <logger name="org.apache.ambari.logsearch" additivity="false"> - <!-- <appender-ref ref="console" /> --> - <!-- <appender-ref ref="rolling_file" />--> - <appender-ref ref="rolling_file_json" /> + <appender-ref ref="rolling_file_json"/> </logger> <root> - <level value="warn" /> - <!-- <appender-ref ref="console" /> --> - <!--<appender-ref ref="rolling_file" />--> - <appender-ref ref="rolling_file_json" /> + <level value="info"/> + <appender-ref ref="console"/> + <appender-ref ref="rolling_file_json"/> </root> + </log4j:configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch-admin-site.xml ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch-admin-site.xml b/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch-admin-site.xml deleted file mode 100644 index 049172a..0000000 --- a/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch-admin-site.xml +++ /dev/null @@ -1,116 +0,0 @@ -<!-- Licensed 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. - See accompanying LICENSE file. --> - - -<configuration> - <property> - <name>authentication.ldap.primaryUrl</name> - <value></value> - <display-name></display-name> - <description>The hostname and port for the LDAP or AD server. Example: my.ldap.server:389</description> - </property> - <property> - <name>authentication.ldap.useSSL</name> - <value>false</value> - <display-name></display-name> - <description>If true, use SSL when connecting to the LDAP or AD server.</description> - </property> - <property> - <name>authentication.ldap.baseDn</name> - <value>dc=example,dc=com</value> - <display-name></display-name> - <description>The root Distinguished Name to search in the directory for users. Example: ou=people,dc=hadoop,dc=apache,dc=org</description> - </property> - <property> - <name>authentication.ldap.bindAnonymously</name> - <value>false</value> - <display-name></display-name> - <description>If true, bind to the LDAP or AD server anonymously</description> - </property> - <property> - <name>authentication.ldap.managerDn</name> - <value>cn=Manager,dc=example,dc=com</value> - <display-name></display-name> - <description>If Bind anonymous is set to false, the Distinguished Name (âDNâ) for the manager. - Example: uid=hdfs,ou=people,dc=hadoop,dc=apache,dc=org</description> - </property> - <property> - <name>authentication.ldap.managerPassword</name> - <value></value> - <display-name></display-name> - <property-type>PASSWORD</property-type> - <description>If Bind anonymous is set to false, the password for the manager</description> - </property> - <property> - <name>authentication.ldap.dnAttribute</name> - <value>dn</value> - <display-name></display-name> - <description></description> - </property> - <property> - <name>authentication.ldap.usernameAttribute</name> - <value>uid</value> - <display-name></display-name> - <description>The attribute for username. Example: uid</description> - </property> - <property> - <name>authentication.ldap.userBase</name> - <value>ou=people,dc=example,dc=com</value> - <display-name></display-name> - <description></description> - </property> - <property> - <name>authentication.ldap.userObjectClass</name> - <value>person</value> - <display-name></display-name> - <description>The object class that is used for users. Example: organizationalPerson</description> - </property> - <property> - <name>authentication.ldap.groupBase</name> - <value>ou=groups,dc=example,dc=com"</value> - <display-name></display-name> - <description></description> - </property> - <property> - <name>authentication.ldap.groupObjectClass</name> - <value>group</value> - <display-name></display-name> - <description>The object class that is used for groups. Example: groupOfUniqueNames</description> - </property> - <property> - <name>authentication.ldap.groupNamingAttr</name> - <value>cn</value> - <display-name></display-name> - <description>The attribute for group name.</description> - </property> - <property> - <name>authentication.ldap.groupMembershipAttr</name> - <value>member</value> - <display-name></display-name> - <description>The attribute for group membership. Example: uniqueMember</description> - </property> - <property> - <name>authorization.ldap.adminGroupMappingRules</name> - <value>Logsearch Administrators</value> - <display-name></display-name> - <description></description> - </property> - <property> - <name>authorization.ldap.groupSearchFilter</name> - <value></value> - <display-name></display-name> - <description></description> - </property> - <property> - <name>authentication.ldap.referral</name> - <value>ignore</value> - <display-name></display-name> - <description>Determines if LDAP referrals should be followed, or ignored.</description> - </property> -</configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch.properties ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch.properties b/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch.properties index 3e59163..db8a0a2 100755 --- a/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch.properties +++ b/ambari-logsearch/ambari-logsearch-server/src/main/resources/logsearch.properties @@ -46,13 +46,13 @@ logsearch.auth.external_auth.login_url=/api/v1/users/$USERNAME/privileges?fields logsearch.roles.allowed=AMBARI.ADMINISTRATOR -#communication protocol i.e http or https etc. -logsearch.protocol= +logsearch.http.port=61888 +logsearch.https.port=61889 +logsearch.protocol=http logsearch.solr.kerberos.enable=false logsearch.solr.jaas.file=/usr/lib/ambari-logsearch-portal/logsearch_solr_jaas.conf - #portal Kerberos logsearch.spnego.kerberos.enabled=false logsearch.spnego.kerberos.keytab= http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/main/resources/swagger/swagger.html ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/resources/swagger/swagger.html b/ambari-logsearch/ambari-logsearch-server/src/main/resources/swagger/swagger.html index 33346d3..0f7ba4b 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/main/resources/swagger/swagger.html +++ b/ambari-logsearch/ambari-logsearch-server/src/main/resources/swagger/swagger.html @@ -18,24 +18,24 @@ <html> <head> <title>Log Search REST API</title> - <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" /> - <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" /> - <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> - <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/> - <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> - <script src='lib/jquery.slideto.min.js' type='text/javascript'></script> - <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> - <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> - <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script> - <script src='lib/underscore-min.js' type='text/javascript'></script> - <script src='lib/backbone-min.js' type='text/javascript'></script> - <script src='swagger-ui.js' type='text/javascript'></script> - <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> - <script src='lib/marked.js' type='text/javascript'></script> - <script src='lib/swagger-oauth.js' type='text/javascript'></script> + <link rel="icon" type="image/png" href="swagger-ui/2.1.0/images/favicon-32x32.png" sizes="32x32" /> + <link rel="icon" type="image/png" href="swagger-ui/2.1.0/images/favicon-16x16.png" sizes="16x16" /> + <link href='swagger-ui/2.1.0/css/typography.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='swagger-ui/2.1.0/css/reset.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='swagger-ui/2.1.0/css/screen.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='swagger-ui/2.1.0/css/reset.css' media='print' rel='stylesheet' type='text/css'/> + <link href='swagger-ui/2.1.0/css/print.css' media='print' rel='stylesheet' type='text/css'/> + <script src='swagger-ui/2.1.0/lib/jquery-1.8.0.min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/jquery.slideto.min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/jquery.wiggle.min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/jquery.ba-bbq.min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/handlebars-2.0.0.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/underscore-min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/backbone-min.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/swagger-ui.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/highlight.7.3.pack.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/marked.js' type='text/javascript'></script> + <script src='swagger-ui/2.1.0/lib/swagger-oauth.js' type='text/javascript'></script> <script type="text/javascript"> $(function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/main/scripts/run.sh ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/scripts/run.sh b/ambari-logsearch/ambari-logsearch-server/src/main/scripts/run.sh index b8fd6c4..241b32f 100755 --- a/ambari-logsearch/ambari-logsearch-server/src/main/scripts/run.sh +++ b/ambari-logsearch/ambari-logsearch-server/src/main/scripts/run.sh @@ -96,5 +96,4 @@ 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" $LOGSEARCH_GC_OPTS $LOGSEARCH_JAVA_MEM $LOGSEARCH_JAVA_OPTS $JMX org.apache.ambari.logsearch.LogSearch $LOGSEARCH_PORT $* > $LOGFILE 2>&1 & -echo $! > $PID_FILE +nohup $JAVA -cp "$LOGSEARCH_CLI_CLASSPATH:$LOGSEARCH_CONF_DIR:$script_dir/libs/*:$script_dir/classes" $LOGSEARCH_GC_OPTS $LOGSEARCH_JAVA_MEM $LOGSEARCH_JAVA_OPTS $JMX org.apache.ambari.logsearch.LogSearch $* > $LOGFILE 2>&1 & http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProviderTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProviderTest.java index c6a5ba5..a6817da 100644 --- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProviderTest.java +++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProviderTest.java @@ -43,8 +43,7 @@ public class LogsearchAuthenticationProviderTest { } private LogsearchAuthenticationProvider provider; - - private LogsearchLdapAuthenticationProvider mockLdapProvider; + private LogsearchFileAuthenticationProvider mockFileProvider; private LogsearchExternalServerAuthenticationProvider mockExternalServerProvider; private LogsearchSimpleAuthenticationProvider mockSimpleProvider; @@ -52,16 +51,11 @@ public class LogsearchAuthenticationProviderTest { @Before public void resetContext() throws Exception { provider = new LogsearchAuthenticationProvider(); - - mockLdapProvider = strictMock(LogsearchLdapAuthenticationProvider.class); + mockFileProvider = strictMock(LogsearchFileAuthenticationProvider.class); mockExternalServerProvider = strictMock(LogsearchExternalServerAuthenticationProvider.class); mockSimpleProvider = strictMock(LogsearchSimpleAuthenticationProvider.class); - Field ldapProviderField = LogsearchAuthenticationProvider.class.getDeclaredField("ldapAuthenticationProvider"); - ldapProviderField.setAccessible(true); - ldapProviderField.set(provider, mockLdapProvider); - Field fileProviderField = LogsearchAuthenticationProvider.class.getDeclaredField("fileAuthenticationProvider"); fileProviderField.setAccessible(true); fileProviderField.set(provider, mockFileProvider); @@ -76,102 +70,83 @@ public class LogsearchAuthenticationProviderTest { } @Test - public void testLdapAuthenticates() { - Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andReturn(SUCCESSFUL_AUTHENTICATION); - - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); - - Authentication authenticationResult = provider.authenticate(authentication); - assertSame(authenticationResult, SUCCESSFUL_AUTHENTICATION); - - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); - } - - @Test public void testFileAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockFileProvider.authenticate(authentication)).andReturn(SUCCESSFUL_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); - + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + Authentication authenticationResult = provider.authenticate(authentication); assertSame(authenticationResult, SUCCESSFUL_AUTHENTICATION); - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testExternalAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockFileProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockExternalServerProvider.authenticate(authentication)).andReturn(SUCCESSFUL_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); Authentication authenticationResult = provider.authenticate(authentication); assertSame(authenticationResult, SUCCESSFUL_AUTHENTICATION); - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testSimpleAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockFileProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockExternalServerProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockSimpleProvider.authenticate(authentication)).andReturn(SUCCESSFUL_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); Authentication authenticationResult = provider.authenticate(authentication); assertSame(authenticationResult, SUCCESSFUL_AUTHENTICATION); - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testNoOneAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockFileProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockExternalServerProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); expect(mockSimpleProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); Authentication authenticationResult = provider.authenticate(authentication); assertSame(authenticationResult, FAILED_AUTHENTICATION); - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testOneExceptionAndAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andThrow(new AuthenticationException("") {}); expect(mockFileProvider.authenticate(authentication)).andReturn(SUCCESSFUL_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); Authentication authenticationResult = provider.authenticate(authentication); assertSame(authenticationResult, SUCCESSFUL_AUTHENTICATION); - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testOneExceptionNoOneAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg1") {}); expect(mockFileProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); - expect(mockExternalServerProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); + expect(mockExternalServerProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg1") {}); expect(mockSimpleProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); try { provider.authenticate(authentication); @@ -180,18 +155,17 @@ public class LogsearchAuthenticationProviderTest { assertEquals(e.getMessage(), "msg1"); } - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } @Test public void testTwoExceptionNoOneAuthenticates() { Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - expect(mockLdapProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg1") {}); - expect(mockFileProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg2") {}); - expect(mockExternalServerProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); + expect(mockFileProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg1") {}); + expect(mockExternalServerProvider.authenticate(authentication)).andThrow(new AuthenticationException("msg2") {}); expect(mockSimpleProvider.authenticate(authentication)).andReturn(FAILED_AUTHENTICATION); - - replay(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + + replay(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); try { provider.authenticate(authentication); @@ -200,6 +174,6 @@ public class LogsearchAuthenticationProviderTest { assertEquals(e.getMessage(), "msg1"); } - verify(mockLdapProvider, mockFileProvider, mockSimpleProvider, mockExternalServerProvider); + verify(mockFileProvider, mockSimpleProvider, mockExternalServerProvider); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProviderTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProviderTest.java deleted file mode 100644 index c6af3e2..0000000 --- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProviderTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.ambari.logsearch.web.security; - -import org.apache.ambari.logsearch.conf.AuthPropsConfig; -import org.junit.Before; -import org.junit.Test; -import org.springframework.security.authentication.TestingAuthenticationToken; -import org.springframework.security.core.Authentication; - -import static junit.framework.Assert.assertSame; -import static org.easymock.EasyMock.strictMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; - -import java.lang.reflect.Field; - -public class LogsearchLdapAuthenticationProviderTest { - - private LogsearchLdapAuthenticationProvider provider; - private AuthPropsConfig mockAuthPropsConfig; - - @Before - public void init() throws Exception { - provider = new LogsearchLdapAuthenticationProvider(); - mockAuthPropsConfig = strictMock(AuthPropsConfig.class); - - Field f = LogsearchLdapAuthenticationProvider.class.getDeclaredField("authPropsConfig"); - f.setAccessible(true); - f.set(provider, mockAuthPropsConfig); - } - - @Test - public void testAuthenticationDisabled() { - expect(mockAuthPropsConfig.isAuthLdapEnabled()).andReturn(false); - - replay(mockAuthPropsConfig); - - Authentication authentication = new TestingAuthenticationToken("principal", "credentials"); - assertSame(provider.authenticate(authentication), authentication); - - verify(mockAuthPropsConfig); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-web/build.properties ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-web/build.properties b/ambari-logsearch/ambari-logsearch-web/build.properties index d943501..1656934 100644 --- a/ambari-logsearch/ambari-logsearch-web/build.properties +++ b/ambari-logsearch/ambari-logsearch-web/build.properties @@ -9,4 +9,4 @@ # 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. -app.target.dir=${builddir}/target/classes/webapps/app \ No newline at end of file +app.target.dir=${builddir}/target/classes/static \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/ambari-logsearch-web/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-web/pom.xml b/ambari-logsearch/ambari-logsearch-web/pom.xml index 5f44553..5c193f8 100644 --- a/ambari-logsearch/ambari-logsearch-web/pom.xml +++ b/ambari-logsearch/ambari-logsearch-web/pom.xml @@ -90,7 +90,7 @@ <goal>copy-resources</goal> </goals> <configuration> - <outputDirectory>${basedir}/target/classes/webapps/app</outputDirectory> + <outputDirectory>${basedir}/target/classes/static</outputDirectory> <resources> <resource> <directory>src/main/webapp</directory> @@ -127,7 +127,7 @@ <goal>copy-resources</goal> </goals> <configuration> - <outputDirectory>${basedir}/target/classes/webapps/app/libs/bower</outputDirectory> + <outputDirectory>${basedir}/target/classes/static/libs/bower</outputDirectory> <resources> <resource> <directory>${basedir}/target/libs</directory> http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/docker/logsearch-docker.sh ---------------------------------------------------------------------- diff --git a/ambari-logsearch/docker/logsearch-docker.sh b/ambari-logsearch/docker/logsearch-docker.sh index fc3524d..9d73eae 100755 --- a/ambari-logsearch/docker/logsearch-docker.sh +++ b/ambari-logsearch/docker/logsearch-docker.sh @@ -69,8 +69,8 @@ function start_logsearch_container() { -v $AMBARI_LOCATION:/root/ambari -v $MAVEN_REPOSITORY_LOCATION:/root/.m2 $LOGSEARCH_EXPOSED_PORTS $LOGSEARCH_ENV_OPTS $LOGSEARCH_EXTRA_OPTS $LOGSEARCH_VOLUME_OPTS -p 9983:9983 -p 4444:4444 -p 5910:5910 \ -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-logfeeder/target/classes:/root/ambari/ambari-logsearch/ambari-logsearch-logfeeder/target/package/classes \ -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-server/target/classes:/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/classes \ - -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-web/src/main/webapp:/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/classes/webapps/app \ - -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-web/target/libs:/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/classes/webapps/app/libs/bower \ + -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-web/src/main/webapp:/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/classes/static \ + -v $AMBARI_LOCATION/ambari-logsearch/ambari-logsearch-web/target/libs:/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/classes/static/libs/bower \ ambari-logsearch:v1.0 ip_address=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' logsearch) echo "Log Search container started on $ip_address (for Mac OSX route to boot2docker/docker-machine VM address, e.g.: 'sudo route add -net 172.17.0.0/16 192.168.59.103')" http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/docker/test-config/logsearch/log4j.xml ---------------------------------------------------------------------- diff --git a/ambari-logsearch/docker/test-config/logsearch/log4j.xml b/ambari-logsearch/docker/test-config/logsearch/log4j.xml index d0e26ed..f10522b 100644 --- a/ambari-logsearch/docker/test-config/logsearch/log4j.xml +++ b/ambari-logsearch/docker/test-config/logsearch/log4j.xml @@ -1,14 +1,20 @@ <?xml version="1.0" encoding="UTF-8" ?> -<!-- 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. --> +<!-- + 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. +--> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> @@ -29,15 +35,14 @@ </layout> </appender> - <!-- Logs to suppress BEGIN --> - <category name="org.apache.solr.common.cloud.ZkStateReader" additivity="false"> - <priority value="error" /> + <category name="org.apache.ambari.logsearch" additivity="false"> + <priority value="info" /> <appender-ref ref="console" /> + <appender-ref ref="rolling_file" /> </category> - <!-- Logs to suppress END --> <root> - <level value="debug" /> + <level value="info" /> <appender-ref ref="console" /> <appender-ref ref="rolling_file" /> </root> http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/docker/test-config/logsearch/logsearch-env.sh ---------------------------------------------------------------------- diff --git a/ambari-logsearch/docker/test-config/logsearch/logsearch-env.sh b/ambari-logsearch/docker/test-config/logsearch/logsearch-env.sh index 6409f0f..80f9c4c 100644 --- a/ambari-logsearch/docker/test-config/logsearch/logsearch-env.sh +++ b/ambari-logsearch/docker/test-config/logsearch/logsearch-env.sh @@ -16,14 +16,11 @@ set -e -export LOGSEARCH_PORT=61888 - -# path containing LogSearch.jar file export LOGSEARCH_PATH=/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package export LOGSEARCH_CONF_DIR=/root/config/logsearch -export LOGFILE=/var/log/ambari-logsearch-portal/logsearch.log +export LOGFILE=/var/log/ambari-logsearch-portal/logsearch-app.log export PID_FILE=/var/run/ambari-logsearch-portal/logsearch.pid http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-logsearch/docker/test-config/logsearch/logsearch-https.properties ---------------------------------------------------------------------- diff --git a/ambari-logsearch/docker/test-config/logsearch/logsearch-https.properties b/ambari-logsearch/docker/test-config/logsearch/logsearch-https.properties index 782b16a..5e7853d 100644 --- a/ambari-logsearch/docker/test-config/logsearch/logsearch-https.properties +++ b/ambari-logsearch/docker/test-config/logsearch/logsearch-https.properties @@ -51,4 +51,5 @@ logsearch.auth.ldap.enable=false logsearch.auth.simple.enable=false logsearch.auth.external_auth.enable=false +logsearch.https.port=61888 logsearch.protocol=https http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java index 4d0ee89..d4c2856 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImpl.java @@ -36,15 +36,19 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact private static final Logger LOG = Logger.getLogger(LoggingRequestHelperFactoryImpl.class); - private static final String LOGSEARCH_ENV_CONFIG_TYPE_NAME = "logsearch-env"; + private static final String LOGSEARCH_PROPERTIES_CONFIG_TYPE_NAME = "logsearch-properties"; 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_HTTP_PORT_PROPERTY_NAME = "logsearch.http.port"; - private static final String LOGSEARCH_UI_PROTOCOL = "logsearch_ui_protocol"; + private static final String LOGSEARCH_HTTPS_PORT_PROPERTY_NAME = "logsearch.https.port"; + + private static final String LOGSEARCH_UI_PROTOCOL = "logsearch.protocol"; + + private static final String LOGSEARCH_HTTPS_PROTOCOL_VALUE = "https"; @Inject private Configuration ambariServerConfiguration; @@ -73,7 +77,7 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact } Config logSearchEnvConfig = - cluster.getDesiredConfigByType(LOGSEARCH_ENV_CONFIG_TYPE_NAME); + cluster.getDesiredConfigByType(LOGSEARCH_PROPERTIES_CONFIG_TYPE_NAME); List<ServiceComponentHost> listOfMatchingHosts = cluster.getServiceComponentHosts(LOGSEARCH_SERVICE_NAME, LOGSEARCH_SERVER_COMPONENT_NAME); @@ -97,11 +101,14 @@ public class LoggingRequestHelperFactoryImpl implements LoggingRequestHelperFact } final String logSearchHostName = serviceComponentHost.getHostName(); - final String logSearchPortNumber = - logSearchEnvConfig.getProperties().get(LOGSEARCH_UI_PORT_PROPERTY_NAME); + final String logSearchProtocol = logSearchEnvConfig.getProperties().get(LOGSEARCH_UI_PROTOCOL); + final String logSearchPortNumber = LOGSEARCH_HTTPS_PROTOCOL_VALUE.equalsIgnoreCase(logSearchProtocol) + ? logSearchEnvConfig.getProperties().get(LOGSEARCH_HTTPS_PORT_PROPERTY_NAME) + : logSearchEnvConfig.getProperties().get(LOGSEARCH_HTTP_PORT_PROPERTY_NAME); + final LoggingRequestHelperImpl loggingRequestHelper = new LoggingRequestHelperImpl(logSearchHostName, logSearchPortNumber, logSearchProtocol, ambariManagementController.getCredentialStoreService(), cluster); // set configured timeouts for the Ambari connection to the LogSearch Portal service loggingRequestHelper.setLogSearchConnectTimeoutInMilliseconds(ambariServerConfiguration.getLogSearchPortalConnectTimeout()); http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java index 5f6640a..230cd95 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java @@ -350,6 +350,15 @@ public class UpgradeCatalog300 extends AbstractUpgradeCatalog { removeConfigurationPropertiesFromCluster(cluster, configType, removeProperties); } + Config logSearchEnv = cluster.getDesiredConfigByType("logsearch-env"); + + String oldProtocolProperty = null; + String oldPortProperty = null; + if (logSearchEnv != null) { + oldProtocolProperty = logSearchEnv.getProperties().get("logsearch_ui_port"); + oldPortProperty = logSearchEnv.getProperties().get("logsearch_ui_protocol"); + } + Config logSearchProperties = cluster.getDesiredConfigByType("logsearch-properties"); Config logFeederProperties = cluster.getDesiredConfigByType("logfeeder-properties"); if (logSearchProperties != null && logFeederProperties != null) { @@ -358,9 +367,22 @@ public class UpgradeCatalog300 extends AbstractUpgradeCatalog { Set<String> removeProperties = Sets.newHashSet("logsearch.logfeeder.include.default.level"); removeConfigurationPropertiesFromCluster(cluster, "logsearch-properties", removeProperties); - Map<String, String> newProperties = new HashMap<>(); - newProperties.put("logfeeder.include.default.level", defaultLogLevels); - updateConfigurationPropertiesForCluster(cluster, "logfeeder-properties", newProperties, true, true); + Map<String, String> newLogSearchProperties = new HashMap<>(); + if (oldProtocolProperty != null) { + newLogSearchProperties.put("logsearch.protocol", oldProtocolProperty); + } + + if (oldPortProperty != null) { + newLogSearchProperties.put("logsearch.http.port", oldPortProperty); + newLogSearchProperties.put("logsearch.https.port", oldPortProperty); + } + if (!newLogSearchProperties.isEmpty()) { + updateConfigurationPropertiesForCluster(cluster, "logsearch-properties", newLogSearchProperties, true, true); + } + + Map<String, String> newLogfeederProperties = new HashMap<>(); + newLogfeederProperties.put("logfeeder.include.default.level", defaultLogLevels); + updateConfigurationPropertiesForCluster(cluster, "logfeeder-properties", newLogfeederProperties, true, true); } Config logFeederLog4jProperties = cluster.getDesiredConfigByType("logfeeder-log4j"); http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json index d2926c8..4cb2651 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/alerts.json @@ -10,9 +10,9 @@ "source": { "type": "WEB", "uri": { - "http": "{{logsearch-env/logsearch_ui_port}}", - "https": "{{logsearch-env/logsearch_ui_port}}", - "https_property": "{{logsearch-env/logsearch_ui_protocol}}", + "http": "{{logsearch-properties/logsearch.http.port}}", + "https": "{{logsearch-properties/logsearch.https.port}}", + "https_property": "{{logsearch-properties/logsearch.protocol}}", "https_property_value": "https", "default_port": 61888, "connection_timeout": 5.0 http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml index f1e871d..e861b6e 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-env.xml @@ -22,20 +22,6 @@ <!-- This is a special config file for properties used to monitor status of the service --> <configuration supports_adding_forbidden="true"> <property> - <name>logsearch_ui_protocol</name> - <value>http</value> - <description>Protocol (http or https)</description> - <display-name>Log Search UI Protocol</display-name> - <on-ambari-upgrade add="true"/> - </property> - <property> - <name>logsearch_ui_port</name> - <value>61888</value> - <description>Default port for Log Search UI</description> - <display-name>Log Search UI Port</display-name> - <on-ambari-upgrade add="true"/> - </property> - <property> <name>logsearch_pid_dir</name> <value>/var/run/ambari-logsearch-portal</value> <description>Log Search Process ID Directory</description> http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml index be586fd..0bac71b 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-properties.xml @@ -21,6 +21,27 @@ --> <configuration> <property> + <name>logsearch.http.port</name> + <value>61888</value> + <description>Default port for Log Search UI (HTTP)</description> + <display-name>Log Search UI Http Port</display-name> + <on-ambari-upgrade add="true"/> + </property> + <property> + <name>logsearch.https.port</name> + <value>61888</value> + <description>Default port for Log Search UI (HTTPS)</description> + <display-name>Log Search UI Https Port</display-name> + <on-ambari-upgrade add="true"/> + </property> + <property> + <name>logsearch.protocol</name> + <value>http</value> + <description>Protocol (http or https)</description> + <display-name>Log Search UI Protocol</display-name> + <on-ambari-upgrade add="true"/> + </property> + <property> <name>logsearch.collection.service.logs.numshards</name> <value>5</value> <display-name>Log Search Solr Service Logs Shards</display-name> http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py index 1b77999..0048020 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py @@ -171,8 +171,6 @@ zookeeper_quorum = logsearch_solr_zk_quorum logsearch_user = config['configurations']['logsearch-env']['logsearch_user'] logsearch_log_dir = config['configurations']['logsearch-env']['logsearch_log_dir'] logsearch_log = logsearch_log_dir + '/logsearch.out' -logsearch_ui_protocol = config['configurations']['logsearch-env']["logsearch_ui_protocol"] -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'] @@ -233,6 +231,10 @@ else: # Logsearch propreties +logsearch_protocol = config['configurations']['logsearch-properties']["logsearch.protocol"] +logsearch_http_port = config['configurations']['logsearch-properties']["logsearch.http.port"] +logsearch_https_port = config['configurations']['logsearch-properties']["logsearch.https.port"] + logsearch_properties = {} # default values @@ -251,8 +253,6 @@ logsearch_properties['logsearch.auth.file.enabled'] = 'true' logsearch_properties['logsearch.auth.ldap.enabled'] = 'false' logsearch_properties['logsearch.auth.simple.enabled'] = 'false' -logsearch_properties['logsearch.protocol'] = logsearch_ui_protocol - # load config values logsearch_properties = dict(logsearch_properties.items() +\ @@ -288,7 +288,7 @@ logsearch_collection_audit_logs_numshards = logsearch_properties['logsearch.coll # check if logsearch uses ssl in any way -logsearch_use_ssl = logsearch_solr_ssl_enabled or logsearch_ui_protocol == 'https' or ambari_server_use_ssl +logsearch_use_ssl = logsearch_solr_ssl_enabled or logsearch_protocol == 'https' or ambari_server_use_ssl ##################################### # Logfeeder configs @@ -397,6 +397,7 @@ if 'infra-solr-env' in config['configurations'] and security_enabled and not log logsearch_server_hosts = default('/clusterHostInfo/logsearch_server_hosts', None) logsearch_server_host = "" +logsearch_ui_port = logsearch_https_port if logsearch_protocol == 'https' else logsearch_http_port if logsearch_server_hosts is not None and len(logsearch_server_hosts) > 0: logsearch_server_host = logsearch_server_hosts[0] -smoke_logsearch_cmd = format('curl -k -s -o /dev/null -w "%{{http_code}}" {logsearch_ui_protocol}://{logsearch_server_host}:{logsearch_ui_port}/login.html | grep 200') +smoke_logsearch_cmd = format('curl -k -s -o /dev/null -w "%{{http_code}}" {logsearch_protocol}://{logsearch_server_host}:{logsearch_ui_port}/login.html | grep 200') http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 index f21b7be..7d9b5de 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 @@ -16,8 +16,6 @@ set -e -export LOGSEARCH_PORT={{logsearch_ui_port}} - # path containing LogSearch.jar file export LOGSEARCH_PATH={{logsearch_dir}} http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json index f3f376a..1057967 100644 --- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json +++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/quicklinks/quicklinks.json @@ -6,9 +6,9 @@ "type":"https", "checks":[ { - "property":"logsearch_ui_protocol", + "property":"logsearch.protocol", "desired":"https", - "site":"logsearch-env" + "site":"logsearch-properties" } ] }, @@ -21,12 +21,12 @@ "requires_user_name": "false", "attributes": ["authenticated", "sso"], "port": { - "http_property": "logsearch_ui_port", + "http_property": "logsearch.http.port", "http_default_port": "8888", - "https_property": "logsearch_ui_port", + "https_property": "logsearch.https.port", "https_default_port": "8888", "regex": "^(\\d+)$", - "site": "logsearch-env" + "site": "logsearch-properties" } } ] http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java index b759738..adc79b4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/logging/LoggingRequestHelperFactoryImplTest.java @@ -77,12 +77,12 @@ public class LoggingRequestHelperFactoryImplTest { Map<String, String> testProperties = new HashMap<>(); - testProperties.put("logsearch_ui_port", expectedPortNumber); + testProperties.put("logsearch.http.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-env")).andReturn(logSearchEnvConfig).atLeastOnce(); + expect(clusterMock.getDesiredConfigByType("logsearch-properties")).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(logSearchEnvConfig.getProperties()).andReturn(testProperties).atLeastOnce(); @@ -145,11 +145,11 @@ public class LoggingRequestHelperFactoryImplTest { Map<String, String> testProperties = new HashMap<>(); - testProperties.put("logsearch_ui_port", expectedPortNumber); + testProperties.put("logsearch.http.port", expectedPortNumber); expect(controllerMock.getClusters()).andReturn(clustersMock).atLeastOnce(); expect(clustersMock.getCluster(expectedClusterName)).andReturn(clusterMock).atLeastOnce(); - expect(clusterMock.getDesiredConfigByType("logsearch-env")).andReturn(logSearchEnvConfig).atLeastOnce(); + expect(clusterMock.getDesiredConfigByType("logsearch-properties")).andReturn(logSearchEnvConfig).atLeastOnce(); expect(clusterMock.getServiceComponentHosts("LOGSEARCH", "LOGSEARCH_SERVER")).andReturn(Collections.singletonList(serviceComponentHostMock)).atLeastOnce(); expect(clusterMock.getServices()).andReturn(Collections.singletonMap("LOGSEARCH", (Service) null)).atLeastOnce(); @@ -198,7 +198,7 @@ public class LoggingRequestHelperFactoryImplTest { expect(controllerMock.getClusters()).andReturn(clustersMock).atLeastOnce(); expect(clustersMock.getCluster(expectedClusterName)).andReturn(clusterMock).atLeastOnce(); - expect(clusterMock.getDesiredConfigByType("logsearch-env")).andReturn(logSearchEnvConfig).atLeastOnce(); + expect(clusterMock.getDesiredConfigByType("logsearch-properties")).andReturn(logSearchEnvConfig).atLeastOnce(); expect(clusterMock.getServiceComponentHosts("LOGSEARCH", "LOGSEARCH_SERVER")).andReturn(Collections.<ServiceComponentHost>emptyList()).atLeastOnce(); expect(clusterMock.getServices()).andReturn(Collections.singletonMap("LOGSEARCH", (Service)null)).atLeastOnce(); http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py b/ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py index afdc42f..db19e0f 100644 --- a/ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py +++ b/ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logsearch.py @@ -100,6 +100,8 @@ class TestLogSearch(RMFTestCase): 'logsearch.config.zk_connect_string': 'c6401.ambari.apache.org:2181', 'logsearch.login.credentials.file': 'logsearch-admin.json', 'logsearch.protocol': 'http', + 'logsearch.http.port': '61888', + 'logsearch.https.port': '61888', 'logsearch.roles.allowed': 'AMBARI.ADMINISTRATOR,CLUSTER.ADMINISTRATOR', 'logsearch.service.logs.split.interval.mins': '1', 'logsearch.solr.audit.logs.zk_connect_string': 'c6401.ambari.apache.org:2181/infra-solr', http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/ambari-server/src/test/python/stacks/2.4/configs/default.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.4/configs/default.json b/ambari-server/src/test/python/stacks/2.4/configs/default.json index 1863c02..9966f3e 100644 --- a/ambari-server/src/test/python/stacks/2.4/configs/default.json +++ b/ambari-server/src/test/python/stacks/2.4/configs/default.json @@ -276,8 +276,6 @@ "logsearch_log_dir": "/var/log/ambari-logsearch-portal", "logsearch_debug_enabled": "false", "logsearch_debug_port": "5005", - "logsearch_ui_protocol": "http", - "logsearch_ui_port" : "61888", "logsearch_keystore_password" : "bigdata", "logsearch_truststore_password" : "bigdata", "logsearch_solr_audit_logs_use_ranger": "false", @@ -296,6 +294,9 @@ "common-property": "common-value" }, "logsearch-properties": { + "logsearch.protocol": "http", + "logsearch.http.port" : "61888", + "logsearch.https.port" : "61888", "logsearch.spnego.kerberos.host" : "localhost", "logsearch.solr.collection.service.logs" : "hadoop_logs", "logsearch.solr.collection.audit.logs" : "audit_logs", http://git-wip-us.apache.org/repos/asf/ambari/blob/555f241c/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 3b1a9e8..a11601a 100644 --- a/ambari-web/app/data/configs/services/logsearch_properties.js +++ b/ambari-web/app/data/configs/services/logsearch_properties.js @@ -245,111 +245,97 @@ module.exports = [ "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", "index": 1, - "name": "logsearch_ui_protocol", - "serviceName": "LOGSEARCH" - }, - { - "category": "Advanced logsearch-env", - "filename": "logsearch-env.xml", - "index": 2, - "name": "logsearch_ui_port", - "serviceName": "LOGSEARCH" - }, - { - "category": "Advanced logsearch-env", - "filename": "logsearch-env.xml", - "index": 3, "name": "logsearch_log_dir", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 4, + "index": 2, "name": "logsearch_pid_dir", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 5, + "index": 3, "name": "logsearch_app_max_memory", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 6, + "index": 4, "name": "logsearch_debug_enabled", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 7, + "index": 5, "name": "logsearch_debug_port", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 8, + "index": 6, "name": "logsearch_truststore_location", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 9, + "index": 7, "name": "logsearch_truststore_type", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 10, + "index": 8, "name": "logsearch_truststore_password", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 11, + "index": 9, "name": "logsearch_keystore_location", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 12, + "index": 10, "name": "logsearch_keystore_type", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 13, + "index": 11, "name": "logsearch_keystore_password", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 14, + "index": 12, "name": "logsearch_kerberos_keytab", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 15, + "index": 13, "name": "logsearch_kerberos_principal", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-env", "filename": "logsearch-env.xml", - "index": 16, + "index": 14, "name": "content", "serviceName": "LOGSEARCH" }, @@ -441,76 +427,97 @@ module.exports = [ "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 1, - "name": "logsearch.solr.collection.service.logs", + "name": "logsearch.http.port", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 2, - "name": "logsearch.service.logs.fields", + "name": "logsearch.https.port", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 3, - "name": "logsearch.service.logs.split.interval.mins", + "name": "logsearch.protocol", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 4, - "name": "logsearch.solr.collection.audit.logs", + "name": "logsearch.solr.collection.service.logs", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 5, - "name": "logsearch.audit.logs.split.interval.mins", + "name": "logsearch.service.logs.fields", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 6, - "name": "logsearch.solr.audit.logs.use.ranger", + "name": "logsearch.service.logs.split.interval.mins", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 7, - "name": "logsearch.ranger.audit.logs.collection.name", + "name": "logsearch.solr.collection.audit.logs", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 8, - "name": "logsearch.solr.metrics.collector.hosts", + "name": "logsearch.audit.logs.split.interval.mins", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 9, - "name": "logsearch.auth.external_auth.enable", + "name": "logsearch.solr.audit.logs.use.ranger", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 10, - "name": "logsearch.auth.external_auth.host_url", + "name": "logsearch.ranger.audit.logs.collection.name", "serviceName": "LOGSEARCH" }, { "category": "Advanced logsearch-properties", "filename": "logsearch-properties.xml", "index": 11, + "name": "logsearch.solr.metrics.collector.hosts", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-properties", + "filename": "logsearch-properties.xml", + "index": 12, + "name": "logsearch.auth.external_auth.enable", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-properties", + "filename": "logsearch-properties.xml", + "index": 13, + "name": "logsearch.auth.external_auth.host_url", + "serviceName": "LOGSEARCH" + }, + { + "category": "Advanced logsearch-properties", + "filename": "logsearch-properties.xml", + "index": 14, "name": "logsearch.auth.external_auth.login_url", "serviceName": "LOGSEARCH" }, @@ -519,55 +526,55 @@ module.exports = [ "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 12 + "index": 15 }, { "name": "logsearch.auth.jwt.audiances", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 13 + "index": 16 }, { "name": "logsearch.auth.jwt.cookie.name", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 14 + "index": 17 }, { "name": "logsearch.auth.jwt.query.param.original_url", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 15 + "index": 18 }, { "name": "logsearch.spnego.kerberos.enabled", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 16 + "index": 19 }, { "name": "logsearch.spnego.kerberos.keytab", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 17 + "index": 20 }, { "name": "logsearch.spnego.kerberos.principal", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 18 + "index": 21 }, { "name": "logsearch.spnego.kerberos.host", "serviceName": "LOGSEARCH", "filename": "logsearch-properties.xml", "category": "Advanced logsearch-properties", - "index": 19 + "index": 22 } ];