You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2016/09/13 10:42:03 UTC
[46/51] [abbrv] ambari git commit: AMBARI-18310. Refactor logsearch
portal code - part 3 (oleewere)
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/dashboard/MainLayoutView_tmpl.html
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/dashboard/MainLayoutView_tmpl.html b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/dashboard/MainLayoutView_tmpl.html
index c79ed1d..bc59f76 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/dashboard/MainLayoutView_tmpl.html
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/dashboard/MainLayoutView_tmpl.html
@@ -43,12 +43,6 @@
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
- <!-- <a class="">
- <i class="fa fa-gear"></i>
- </a>
- <a class="close-link">
- <i class="fa fa-close"></i>
- </a> -->
</div>
<div class="no-move"></div>
</div>
@@ -62,71 +56,6 @@
</div>
</div>
</div>
- <!-- div class="col-md-3">
- <div class="box">
- <div class="box-header">
- <div class="box-name">
- <span>Time Range</span>
- </div>
- <div class="box-icons">
- <a class="collapse-link">
- <i class="fa fa-chevron-up"></i>
- </a>
- <a class="">
- <i class="fa fa-gear"></i>
- </a>
- <a class="close-link">
- <i class="fa fa-close"></i>
- </a>
- </div>
- <div class="no-move"></div>
- </div>
- <div class="box-content">
- <div class="btn-group btn-group-sm">
- <button class="btn btn-primary">15m</button>
- <button class="btn btn-primary">1h</button>
- <button class="btn btn-primary">24h</button>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-6">
- <div class="box">
- <div class="box-header">
- <div class="box-name">
- <span>Filtering</span>
- </div>
- <div class="box-icons">
- <a class="collapse-link">
- <i class="fa fa-chevron-up"></i>
- </a>
- <a class="">
- <i class="fa fa-gear"></i>
- </a>
- <a class="close-link">
- <i class="fa fa-close"></i>
- </a>
- </div>
- <div class="no-move"></div>
- </div>
- <div class="box-content">
- <table class="table-bordered table-condensed">
- <tr>
- <th>Time</th>
- <td colspan="5">must</td>
- </tr>
- <tr>
- <th>field</th>
- <td>logtime</td>
- <th>from</th>
- <td>2014-12-17T04:59:00.362Z</td>
- <th>to</th>
- <td>2015-06-15T04:59:00.363Z</td>
- </tr>
- </table>
- </div>
- </div>
- </div-->
</div>
<div class="row">
<div class="col-md-3">
@@ -143,56 +72,6 @@
</div>
<div class="col-md-9">
<div id="r_BubbleTable"></div>
- <!-- <div class="box no-drop">
- <div class="box-header">
- <div class="box-name">
- <span>Log Data</span>
- </div>
- <div class="box-icons">
- <span id="loaderGraph">
- <i class="fa fa-spinner fa-spin"></i>
- </span>
- <a class="">
- <i class="fa fa-save"></i>
- </a>
- <a class="">
- <i class="fa fa-info"></i>
- </a>
- <a class="">
- <i class="fa fa-gear"></i>
- </a>
- <a class="collapse-link">
- <i class="fa fa-chevron-up"></i>
- </a>
- <a class="close-link">
- <i class="fa fa-close"></i>
- </a>
- </div>
- <div class="no-move"></div>
- </div>
- <div class="box-content">
- <div class="">
- <div class="radio-inline">
- <label>
- <input type="radio" name="viewType" value="G" checked=""> Graph
- <i class="fa fa-circle-o small"></i>
- </label>
- </div>
- <div class="radio-inline">
- <label>
- <input type="radio" name="viewType" value="T"> Table
- <i class="fa fa-circle-o small"></i>
- </label>
- </div>
- </div>
- <div data-id="table" style="display:none;">
- <div id=control></div>
- <div id="rLogTable" ></div>
- </div>
-
- <div id="graphAgg"></div>
- </div>
- </div> -->
</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/helpers/Helpers.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/helpers/Helpers.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/helpers/Helpers.js
index f4f1d32..151335d 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/helpers/Helpers.js
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/helpers/Helpers.js
@@ -22,7 +22,6 @@
var Handlebars = require('handlebars');
var Util = require('utils/Utils');
var localization = require('utils/LangSupport');
- var SessionMgr = require('mgrs/SessionMgr');
require('moment');
/*
* General guidelines while writing helpers:
@@ -274,18 +273,12 @@
return 'styles/images/avatar' + parseInt(((Math.random()*10)%4) + 1,10) + '.png';
});
Handlebars.registerHelper('isSystemAdmin', function(context, options) {
- if(SessionMgr.isSystemAdmin())
- return options.fn(this);
return options.inverse(this);
});
Handlebars.registerHelper('isSchoolAdmin', function(context, options) {
- if(SessionMgr.isSchoolAdmin() || SessionMgr.isSystemAdmin())
- return options.fn(this);
return options.inverse(this);
});
Handlebars.registerHelper('isTeacher', function(context, options) {
- if(SessionMgr.isTeacher())
- return options.fn(this);
return options.inverse(this);
});
Handlebars.registerHelper('getAvatar', function(options,size) {
@@ -510,41 +503,9 @@
}
return new Handlebars.SafeString(html);
});
- // Handlebars.registerHelper('getServices', function(services, serviceDef) {
- // var XAEnums = require('utils/XAEnums');
- // var tr = '', serviceOperationDiv = '';
- // var serviceType = serviceDef.get('name');
- // if(!_.isUndefined(services[serviceType])){
- // _.each(services[serviceType],function(serv){
- // serviceName = serv.get('name');
- // if(SessionMgr.isSystemAdmin()){
- // serviceOperationDiv = '<div class="pull-right">\
- // <a data-id="'+serv.id+'" class="btn btn-mini" href="#!/service/'+serviceDef.id+'/edit/'+serv.id+'" title="Edit"><i class="icon-edit"></i></a>\
- // <a data-id="'+serv.id+'" class="deleteRepo btn btn-mini btn-danger" href="javascript:void(0);" title="Delete">\
- // <i class="icon-trash"></i></a>\
- // </div>'
- // }
- // tr += '<tr><td><div>\
- // <a data-id="'+serv.id+'" href="#!/service/'+serv.id+'/policies">'+_.escape(serv.attributes.name)+'</a>'+serviceOperationDiv+'\
- // </div></td></tr>';
- // });
- // }
- // return tr;
- // });
Handlebars.registerHelper('capitaliseLetter', function(str) {
return str.toUpperCase();
});
- // Handlebars.registerHelper('hasAccessToTab', function(tabName,options) {
- // var vxPortalUser = SessionMgr.getUserProfile();
- // var userModules = _.pluck(vxPortalUser.get('userPermList'), 'moduleName');
- // var groupModules = _.pluck(vxPortalUser.get('groupPermissions'), 'moduleName');
- // var moduleNames = _.union(userModules,groupModules);
- // var returnFlag = _.contains(moduleNames, tabName);
- // if (returnFlag)
- // return options.fn(this);
- // else
- // return options.inverse(this);
- // });
/*logserach*/
Handlebars.registerHelper ("setChecked", function (value, currentValue) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/AuditSolrDaoTest.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/AuditSolrDaoTest.java b/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/AuditSolrDaoTest.java
deleted file mode 100644
index 017d7a8..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/AuditSolrDaoTest.java
+++ /dev/null
@@ -1,99 +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.dao;
-
-import java.util.ArrayList;
-
-import org.apache.ambari.logsearch.conf.SolrAuditLogConfig;
-import org.apache.ambari.logsearch.conf.SolrKerberosConfig;
-import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.common.util.NamedList;
-import org.easymock.Capture;
-import org.easymock.CaptureType;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.Before;
-import org.junit.Test;
-
-import junit.framework.Assert;
-
-public class AuditSolrDaoTest {
-
- @TestSubject
- private AuditSolrDao dao = new AuditSolrDao();
-
- @Mock
- private SolrAuditLogConfig configMock;
-
- @Mock
- private SolrKerberosConfig kerbConfigMock;
-
- @Before
- public void setUp() {
- EasyMockSupport.injectMocks(this);
- }
-
- @Test
- public void testAuditSolrDaoPostConstructor() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", new ArrayList<String>());
-
- EasyMock.expect(configMock.getSolrUrl()).andReturn(null);
- EasyMock.expect(configMock.getZkConnectString()).andReturn("dummyHost1:2181,dummyHost2:2181");
- EasyMock.expect(configMock.getConfigName()).andReturn("test_audit_logs_config_name");
- EasyMock.expect(configMock.getCollection()).andReturn("test_audit_logs_collection");
- EasyMock.expect(configMock.getSplitInterval()).andReturn("none");
- EasyMock.expect(configMock.getNumberOfShards()).andReturn(123);
- EasyMock.expect(configMock.getReplicationFactor()).andReturn(456);
- EasyMock.expect(configMock.getAliasNameIn()).andReturn("alias");
- EasyMock.expect(configMock.getRangerCollection()).andReturn("ranger_audit");
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- Capture<CollectionAdminRequest.Create> captureCreateRequest = EasyMock.newCapture(CaptureType.LAST);
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
-
- mockSolrClient.request(EasyMock.capture(captureCreateRequest), EasyMock.anyString());
- EasyMock.expectLastCall().andReturn(response);
-
- EasyMock.replay(mockSolrClient, configMock, kerbConfigMock);
-
- dao.solrClient = mockSolrClient;
- dao.isZkConnectString = true;
-
- dao.postConstructor();
- EasyMock.verify(mockSolrClient);
-
- CollectionAdminRequest.Create createRequest = captureCreateRequest.getValue();
- Assert.assertEquals(createRequest.getConfigName(), "test_audit_logs_config_name");
- Assert.assertEquals(createRequest.getNumShards().intValue(), 123);
- Assert.assertEquals(createRequest.getReplicationFactor().intValue(), 456);
- Assert.assertEquals(createRequest.getCollectionName(), "test_audit_logs_collection");
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDaoTest.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDaoTest.java b/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDaoTest.java
deleted file mode 100644
index bdee8a8..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDaoTest.java
+++ /dev/null
@@ -1,95 +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.dao;
-
-import java.util.ArrayList;
-
-import org.apache.ambari.logsearch.conf.SolrKerberosConfig;
-import org.apache.ambari.logsearch.conf.SolrServiceLogConfig;
-import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.common.util.NamedList;
-import org.easymock.Capture;
-import org.easymock.CaptureType;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.Before;
-import org.junit.Test;
-
-import junit.framework.Assert;
-
-public class ServiceLogsSolrDaoTest {
-
- @TestSubject
- private ServiceLogsSolrDao dao = new ServiceLogsSolrDao();
-
- @Mock
- private SolrKerberosConfig kerbConfigMock;
-
- @Mock
- private SolrServiceLogConfig configMock;
-
- @Before
- public void setUp() {
- EasyMockSupport.injectMocks(this);
- }
-
- @Test
- public void testServiceLogsSolrDaoPostConstructor() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", new ArrayList<String>());
-
- EasyMock.expect(configMock.getSolrUrl()).andReturn(null);
- EasyMock.expect(configMock.getZkConnectString()).andReturn("dummyHost1:2181,dummyHost2:2181");
- EasyMock.expect(configMock.getConfigName()).andReturn("test_service_logs_config_name");
- EasyMock.expect(configMock.getCollection()).andReturn("test_service_logs_collection");
- EasyMock.expect(configMock.getSplitInterval()).andReturn("none");
- EasyMock.expect(configMock.getNumberOfShards()).andReturn(789);
- EasyMock.expect(configMock.getReplicationFactor()).andReturn(987);
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- Capture<CollectionAdminRequest.Create> captureCreateRequest = EasyMock.newCapture(CaptureType.LAST);
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
- mockSolrClient.request(EasyMock.capture(captureCreateRequest), EasyMock.anyString()); EasyMock.expectLastCall().andReturn(response);
-
- EasyMock.replay(mockSolrClient, configMock, kerbConfigMock);
-
- dao.solrClient = mockSolrClient;
- dao.isZkConnectString = true;
-
- dao.postConstructor();
- EasyMock.verify(mockSolrClient, configMock, kerbConfigMock);
-
- CollectionAdminRequest.Create createRequest = captureCreateRequest.getValue();
- Assert.assertEquals(createRequest.getConfigName(), "test_service_logs_config_name");
- Assert.assertEquals(createRequest.getNumShards().intValue(), 789);
- Assert.assertEquals(createRequest.getReplicationFactor().intValue(), 987);
- Assert.assertEquals(createRequest.getCollectionName(), "test_service_logs_collection");
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java b/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java
deleted file mode 100644
index 22b10c3..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java
+++ /dev/null
@@ -1,306 +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.dao;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import javax.ws.rs.WebApplicationException;
-
-import org.apache.ambari.logsearch.conf.SolrKerberosConfig;
-import org.apache.ambari.logsearch.manager.ManagerBase.LogType;
-import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.SolrQuery;
-import org.apache.solr.client.solrj.SolrRequest.METHOD;
-import org.apache.solr.client.solrj.impl.CloudSolrClient;
-import org.apache.solr.client.solrj.impl.HttpSolrClient;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.client.solrj.response.UpdateResponse;
-import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.util.NamedList;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import junit.framework.Assert;
-
-public class SolrDaoBaseTest {
-
- @TestSubject
- private SolrDaoBase dao = new SolrDaoBase(LogType.SERVICE) {};
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- @Mock
- private SolrKerberosConfig kerbConfigMock;
-
- @Before
- public void setUp() {
- EasyMockSupport.injectMocks(this);
- }
-
- // ----------------------------------------------------------- connectToSolr -----------------------------------------------------------
-
- @Test
- public void testConnectToSolrWithConnectString() throws Exception {
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- EasyMock.replay(kerbConfigMock);
-
- SolrClient solrClient = dao.connectToSolr(null, "zk_connect_string", "collection");
-
- Assert.assertEquals(solrClient.getClass(), CloudSolrClient.class);
- }
-
- @Test
- public void testConnectToSolrWithUrl() throws Exception {
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- EasyMock.replay(kerbConfigMock);
-
- SolrClient solrClient = dao.connectToSolr("url", null, "collection");
-
- Assert.assertEquals(solrClient.getClass(), HttpSolrClient.class);
- }
-
- @Test
- public void testConnectToSolrWithBoth() throws Exception {
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- EasyMock.replay(kerbConfigMock);
-
- SolrClient solrClient = dao.connectToSolr("url", "zk_connect_string", "collection");
-
- Assert.assertEquals(solrClient.getClass(), CloudSolrClient.class);
- }
-
- @Test
- public void testConnectToSolrWithNeither() throws Exception {
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- EasyMock.replay(kerbConfigMock);
-
- expectedException.expect(Exception.class);
- expectedException.expectMessage("Both zkConnectString and URL are empty. zkConnectString=null, collection=collection, url=null");
-
- dao.connectToSolr(null, null, "collection");
- }
-
- @Test
- public void testConnectToSolrWithoutCollection() throws Exception {
- expectedException.expect(Exception.class);
- expectedException.expectMessage("For solr, collection name is mandatory. zkConnectString=zk_connect_string, collection=null, url=url");
-
- dao.connectToSolr("url", "zk_connect_string", null);
- }
-
- // ---------------------------------------------------------- checkSolrStatus ----------------------------------------------------------
-
- @Test
- public void testCheckSolrStatus() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", new ArrayList<String>());
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
- EasyMock.replay(mockSolrClient);
-
- dao.solrClient = mockSolrClient;
-
- boolean status = dao.checkSolrStatus(10000);
- Assert.assertTrue(status);
-
- EasyMock.verify(mockSolrClient);
- }
-
- @Test
- public void testCheckSolrStatusNotSuccessful() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
- EasyMock.replay(mockSolrClient);
-
- dao.solrClient = mockSolrClient;
-
- boolean status = dao.checkSolrStatus(10000);
- Assert.assertFalse(status);
-
- EasyMock.verify(mockSolrClient);
- }
-
- // ------------------------------------------------------------- setupAlias ------------------------------------------------------------
-
- @Test
- public void testSetupAlias() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
- CloudSolrClient mockSolrClouldClient = EasyMock.strictMock(CloudSolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", Arrays.asList("collection1", "collection2"));
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
- EasyMock.expect(mockSolrClouldClient.request(EasyMock.anyObject(CollectionAdminRequest.CreateAlias.class), EasyMock.anyString())).andReturn(response);
- mockSolrClouldClient.setDefaultCollection("alias_name"); EasyMock.expectLastCall();
-
- EasyMock.replay(mockSolrClient, mockSolrClouldClient);
-
- dao.isZkConnectString = true;
- dao.solrClient = mockSolrClient;
- dao.solrClouldClient = mockSolrClouldClient;
- dao.collectionName = "test_collection";
-
- dao.setupAlias("alias_name", Arrays.asList("collection1", "collection2"));
-
- Thread.sleep(1000);
-
- EasyMock.verify(mockSolrClient, mockSolrClouldClient);
- }
-
- // ---------------------------------------------------------- setupCollections ---------------------------------------------------------
-
- @Test
- public void testCreateCollectionsDontSplitPopulate() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", new ArrayList<String>());
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.Create.class), EasyMock.anyString())).andReturn(response);
- EasyMock.replay(mockSolrClient);
-
- dao.isZkConnectString = true;
- dao.solrClient = mockSolrClient;
- dao.collectionName = "test_collection";
-
- dao.setupCollections("none", "configName", 1, 1, true);
-
- EasyMock.verify(mockSolrClient);
- }
-
- @Test
- public void testCreateCollectionsSplitDontPopulate() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("status", 0);
- response.add("responseHeader", header);
- response.add("collections", new ArrayList<String>());
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(response);
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.Create.class), EasyMock.anyString())).andReturn(response);
- EasyMock.replay(mockSolrClient);
-
- dao.isZkConnectString = true;
- dao.solrClient = mockSolrClient;
-
- dao.setupCollections("1", "configName", 3, 1, false);
-
- EasyMock.verify(mockSolrClient);
- }
-
- // -------------------------------------------------------------- process --------------------------------------------------------------
-
- @Test
- public void testProcess() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
- EasyMock.expect(mockSolrClient.query(EasyMock.anyObject(SolrQuery.class), EasyMock.eq(METHOD.POST))).andReturn(new QueryResponse());
- EasyMock.replay(mockSolrClient);
-
- dao.solrClient = mockSolrClient;
-
- dao.process(new SolrQuery());
-
- EasyMock.verify(mockSolrClient);
- }
-
- @Test
- public void testProcessNoConnection() throws Exception {
- expectedException.expect(WebApplicationException.class);
-
- dao.process(new SolrQuery());
- }
-
- // ----------------------------------------------------------- add/removeDoc -----------------------------------------------------------
-
- @Test
- public void testAddDoc() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- UpdateResponse updateResponse = new UpdateResponse();
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("QTime", 1);
- response.add("responseHeader", header);
- updateResponse.setResponse(response);
-
- EasyMock.expect(mockSolrClient.add(EasyMock.anyObject(SolrInputDocument.class))).andReturn(updateResponse);
- EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
- EasyMock.replay(mockSolrClient);
-
- dao.solrClient = mockSolrClient;
-
- dao.addDocs(new SolrInputDocument());
-
- EasyMock.verify(mockSolrClient);
- }
-
- @Test
- public void testRemoveDoc() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- UpdateResponse updateResponse = new UpdateResponse();
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("QTime", 1);
- response.add("responseHeader", header);
- updateResponse.setResponse(response);
-
- EasyMock.expect(mockSolrClient.deleteByQuery(EasyMock.anyString())).andReturn(updateResponse);
- EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
- EasyMock.replay(mockSolrClient);
-
- dao.solrClient = mockSolrClient;
-
- dao.removeDoc("query");
-
- EasyMock.verify(mockSolrClient);
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java b/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java
deleted file mode 100644
index 3b01a19..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java
+++ /dev/null
@@ -1,164 +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.dao;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.apache.ambari.logsearch.conf.SolrKerberosConfig;
-import org.apache.ambari.logsearch.conf.SolrUserConfig;
-import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.SolrRequest.METHOD;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.client.solrj.response.UpdateResponse;
-import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.common.util.NamedList;
-import org.easymock.Capture;
-import org.easymock.CaptureType;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.Before;
-import org.junit.Test;
-
-import junit.framework.Assert;
-
-public class UserConfigSolrDaoTest {
-
- @TestSubject
- private UserConfigSolrDao dao = new UserConfigSolrDao();
-
- @Mock
- private SolrUserConfig configMock;
-
- @Mock
- private SolrKerberosConfig kerbConfigMock;
-
- @Before
- public void setUp() {
- EasyMockSupport.injectMocks(this);
- }
-
- @Test
- public void testUserConfigDaoPostConstructor() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- NamedList<Object> requestResponse = new NamedList<Object>();
- NamedList<Object> requestResponseHeader = new NamedList<Object>();
- requestResponseHeader.add("status", 0);
- requestResponse.add("responseHeader", requestResponseHeader);
- requestResponse.add("collections", new ArrayList<String>());
-
- QueryResponse queryResponse = new QueryResponse();
-
- UpdateResponse updateResponse = new UpdateResponse();
- NamedList<Object> updateResponseContent = new NamedList<Object>();
- NamedList<Object> updateResponseHeader = new NamedList<Object>();
- updateResponseHeader.add("QTime", 1);
- updateResponseContent.add("responseHeader", updateResponseHeader);
- updateResponse.setResponse(updateResponseContent);
-
- EasyMock.expect(configMock.getSolrUrl()).andReturn(null).times(2);
- EasyMock.expect(configMock.getZkConnectString()).andReturn("dummyHost1:2181,dummyHost2:2181").times(2);
- EasyMock.expect(configMock.getConfigName()).andReturn("test_history_logs_config_name").times(2);
- EasyMock.expect(configMock.getCollection()).andReturn("test_history_logs_collection").times(2);
- EasyMock.expect(configMock.getSplitInterval()).andReturn("none").times(2);
- EasyMock.expect(configMock.getNumberOfShards()).andReturn(123).times(2);
- EasyMock.expect(configMock.getReplicationFactor()).andReturn(234).times(2);
- EasyMock.expect(configMock.getLogLevels()).andReturn(Arrays.asList("TRACE")).times(2);
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false).times(2);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file").times(2);
-
- Capture<CollectionAdminRequest.Create> captureCreateRequest = EasyMock.newCapture(CaptureType.LAST);
- Capture<SolrParams> captureSolrParams = EasyMock.newCapture(CaptureType.LAST);
- Capture<METHOD> captureMethod = EasyMock.newCapture(CaptureType.LAST);
- Capture<SolrInputDocument> captureSolrInputDocument = EasyMock.newCapture(CaptureType.LAST);
-
- EasyMock.expect(mockSolrClient.request(EasyMock.anyObject(CollectionAdminRequest.List.class), EasyMock.anyString())).andReturn(requestResponse);
- mockSolrClient.request(EasyMock.capture(captureCreateRequest), EasyMock.anyString()); EasyMock.expectLastCall().andReturn(requestResponse);
- mockSolrClient.query(EasyMock.capture(captureSolrParams), EasyMock.capture(captureMethod)); EasyMock.expectLastCall().andReturn(queryResponse);
- mockSolrClient.add(EasyMock.capture(captureSolrInputDocument)); EasyMock.expectLastCall().andReturn(updateResponse);
- EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
- EasyMock.replay(mockSolrClient, configMock, kerbConfigMock);
-
- dao.postConstructor();
- dao.solrClient = mockSolrClient;
- dao.isZkConnectString = true;
-
- dao.postConstructor();
- EasyMock.verify(mockSolrClient);
-
- CollectionAdminRequest.Create createRequest = captureCreateRequest.getValue();
- Assert.assertEquals(createRequest.getConfigName(), "test_history_logs_config_name");
- Assert.assertEquals(createRequest.getReplicationFactor().intValue(), 234);
- Assert.assertEquals(createRequest.getCollectionName(), "test_history_logs_collection");
-
- SolrParams solrParams = captureSolrParams.getValue();
- Assert.assertEquals(solrParams.get("q"), "*:*");
- Assert.assertEquals(solrParams.get("fq"), "rowtype:log_feeder_config");
-
- METHOD method = captureMethod.getValue();
- Assert.assertEquals(method, METHOD.POST);
-
- SolrInputDocument solrInputDocument = captureSolrInputDocument.getValue();
- Assert.assertNotNull(solrInputDocument.getFieldValue("id"));
- Assert.assertEquals(solrInputDocument.getFieldValue("rowtype"), "log_feeder_config");
- Assert.assertEquals(solrInputDocument.getFieldValue("jsons"), "{\"filter\":{\"test_component2\":{\"label\":\"test_component2\",\"hosts\":[],\"defaultLevels\":[\"TRACE\"],\"overrideLevels\":[]},\"test_component1\":{\"label\":\"test_component1\",\"hosts\":[],\"defaultLevels\":[\"TRACE\"],\"overrideLevels\":[]}},\"id\":\"" + solrInputDocument.getFieldValue("id") + "\"}");
- Assert.assertEquals(solrInputDocument.getFieldValue("username"), "log_feeder_config");
- Assert.assertEquals(solrInputDocument.getFieldValue("filtername"), "log_feeder_config");
- }
-
- @Test
- public void testDeleteUserConfig() throws Exception {
- SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
-
- UpdateResponse updateResponse = new UpdateResponse();
- NamedList<Object> response = new NamedList<Object>();
- NamedList<Object> header = new NamedList<Object>();
- header.add("QTime", 1);
- response.add("responseHeader", header);
- updateResponse.setResponse(response);
-
- EasyMock.expect(configMock.getSolrUrl()).andReturn(null);
- EasyMock.expect(configMock.getZkConnectString()).andReturn("dummyHost1:2181,dummyHost2:2181");
- EasyMock.expect(configMock.getConfigName()).andReturn("test_history_logs_config_name");
- EasyMock.expect(configMock.getCollection()).andReturn("test_history_logs_collection");
- EasyMock.expect(configMock.getSplitInterval()).andReturn("none");
- EasyMock.expect(configMock.getNumberOfShards()).andReturn(123);
- EasyMock.expect(configMock.getReplicationFactor()).andReturn(234);
- EasyMock.expect(kerbConfigMock.isEnabled()).andReturn(false);
- EasyMock.expect(kerbConfigMock.getJaasFile()).andReturn("jaas_file");
-
- EasyMock.expect(mockSolrClient.deleteByQuery("id:test_id")).andReturn(updateResponse);
- EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
- EasyMock.replay(mockSolrClient, configMock, kerbConfigMock);
-
- dao.postConstructor();
- dao.solrClient = mockSolrClient;
- dao.isZkConnectString = true;
-
- dao.deleteUserConfig("test_id");
-
- EasyMock.verify(mockSolrClient, configMock, kerbConfigMock);
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/9814bfcf/ambari-logsearch/docker/test-config/logsearch/logsearch.properties
----------------------------------------------------------------------
diff --git a/ambari-logsearch/docker/test-config/logsearch/logsearch.properties b/ambari-logsearch/docker/test-config/logsearch/logsearch.properties
index 2c83581..71c1a1c 100644
--- a/ambari-logsearch/docker/test-config/logsearch/logsearch.properties
+++ b/ambari-logsearch/docker/test-config/logsearch/logsearch.properties
@@ -22,8 +22,6 @@ logsearch.service.logs.split.interval.mins=15
logsearch.collection.service.logs.numshards=3
logsearch.collection.service.logs.replication.factor=2
-logsearch.service.logs.fields=logtime,level,event_count,ip,type,seq_num,path,file,line_number,host,log_message,id
-
# Audit logs
logsearch.solr.audit.logs.zk_connect_string=localhost:9983
logsearch.solr.collection.audit.logs=audit_logs