AMBARI-18253. Fix LogSearch utility classes (Miklos Gergely via oleewere)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/dfeea2de Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/dfeea2de Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/dfeea2de Branch: refs/heads/trunk Commit: dfeea2de13aaa988337ec6fe666f9a277ba61f97 Parents: c596027 Author: oleewere <[email protected]> Authored: Thu Aug 25 13:02:45 2016 +0200 Committer: oleewere <[email protected]> Committed: Sat Nov 5 16:05:13 2016 +0100 ---------------------------------------------------------------------- .../org/apache/ambari/logsearch/LogSearch.java | 8 +- .../ambari/logsearch/common/ConfigHelper.java | 136 ++++++++++++ .../logsearch/common/ExternalServerClient.java | 96 +++++++++ .../logsearch/common/PropertiesHelper.java | 181 ++++++++++++++++ .../ambari/logsearch/common/SearchCriteria.java | 5 +- .../logsearch/common/XMLPropertiesHelper.java | 79 +++++++ .../ambari/logsearch/dao/AuditSolrDao.java | 20 +- .../logsearch/dao/ServiceLogsSolrDao.java | 16 +- .../ambari/logsearch/dao/SolrDaoBase.java | 21 +- .../ambari/logsearch/dao/UserConfigSolrDao.java | 27 +-- .../apache/ambari/logsearch/dao/UserDao.java | 17 +- .../logsearch/graph/GraphDataGenerator.java | 36 ++-- .../logsearch/graph/GraphDataGeneratorBase.java | 6 +- .../ambari/logsearch/manager/AuditMgr.java | 93 ++++---- .../ambari/logsearch/manager/LogFileMgr.java | 22 +- .../ambari/logsearch/manager/LogsMgr.java | 211 +++++++++---------- .../ambari/logsearch/manager/MgrBase.java | 30 +-- .../ambari/logsearch/manager/UserConfigMgr.java | 47 ++--- .../ambari/logsearch/query/QueryGeneration.java | 36 ++-- .../logsearch/query/QueryGenerationBase.java | 34 ++- .../ambari/logsearch/rest/ServiceLogsREST.java | 4 - .../ambari/logsearch/rest/UserConfigREST.java | 4 - .../solr/metrics/SolrMetricsLoader.java | 8 +- .../apache/ambari/logsearch/util/BizUtil.java | 27 +-- .../ambari/logsearch/util/CommonUtil.java | 4 + .../ambari/logsearch/util/ConfigUtil.java | 140 ------------ .../apache/ambari/logsearch/util/DateUtil.java | 32 +-- .../logsearch/util/ExternalServerClient.java | 96 --------- .../apache/ambari/logsearch/util/FileUtil.java | 17 +- .../apache/ambari/logsearch/util/JSONUtil.java | 41 ++-- .../ambari/logsearch/util/PropertiesUtil.java | 182 ---------------- .../apache/ambari/logsearch/util/QueryBase.java | 132 ------------ .../ambari/logsearch/util/RESTErrorUtil.java | 16 +- .../apache/ambari/logsearch/util/SolrUtil.java | 164 +++++++++++--- .../logsearch/util/XMLPropertiesUtil.java | 85 -------- .../LogsearchAuthFailureHandler.java | 11 +- .../LogsearchAuthenticationEntryPoint.java | 8 +- .../LogsearchKRBAuthenticationFilter.java | 26 +-- .../ambari/logsearch/web/security/LdapUtil.java | 8 +- ...LogsearchAbstractAuthenticationProvider.java | 4 +- .../LogsearchAuthenticationProvider.java | 13 +- ...rchExternalServerAuthenticationProvider.java | 13 +- .../main/webapp/META-INF/applicationContext.xml | 4 +- .../ambari/logsearch/dao/SolrDaoBaseTest.java | 1 - .../logsearch/dao/UserConfigSolrDaoTest.java | 13 +- .../src/test/resources/applicationContext.xml | 4 +- .../applicationContext_testManagers.xml | 53 ----- 47 files changed, 1013 insertions(+), 1218 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java index fcebcea..15355a1 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java @@ -25,10 +25,10 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; +import org.apache.ambari.logsearch.common.ConfigHelper; import org.apache.ambari.logsearch.common.ManageStartEndTime; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.solr.metrics.SolrMetricsLoader; -import org.apache.ambari.logsearch.util.ConfigUtil; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.eclipse.jetty.server.Connector; @@ -92,7 +92,7 @@ public class LogSearch { logger.debug(server.dump()); logger .debug("=============================================================================="); - ConfigUtil.initializeApplicationConfig(); + ConfigHelper.initializeApplicationConfig(); server.join(); } @@ -100,7 +100,7 @@ public class LogSearch { Server server = new Server(); ServerConnector connector = new ServerConnector(server); boolean portSpecified = argv.length > 0; - String protcolProperty = PropertiesUtil.getProperty(LOGSEARCH_PROTOCOL_PROP,HTTP_PROTOCOL); + String protcolProperty = PropertiesHelper.getProperty(LOGSEARCH_PROTOCOL_PROP,HTTP_PROTOCOL); if (StringUtils.isEmpty(protcolProperty)) { protcolProperty = HTTP_PROTOCOL; } http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java new file mode 100644 index 0000000..edb4ffa --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java @@ -0,0 +1,136 @@ +/* + * 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.common; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.ambari.logsearch.dao.SolrDaoBase; +import org.apache.ambari.logsearch.manager.MgrBase; +import org.apache.commons.lang.ArrayUtils; +import org.apache.log4j.Logger; +import org.codehaus.jettison.json.JSONArray; +import org.codehaus.jettison.json.JSONObject; + +public class ConfigHelper { + private static final Logger logger = Logger.getLogger(MgrBase.class); + + public static HashMap<String, String> serviceLogsColumnMapping = new HashMap<String, String>(); + public static HashMap<String, String> auditLogsColumnMapping = new HashMap<String, String>(); + + private ConfigHelper() { + throw new UnsupportedOperationException(); + } + + public static void initializeApplicationConfig() { + String serviceLogsColumnMappingArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.service.logs.column.mapping"); + String auditLogsColumnMappingArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.audit.logs.column.mapping"); + + // Initializing column mapping for Service Logs + intializeUISolrColumnMapping(serviceLogsColumnMappingArray, serviceLogsColumnMapping); + + // Initializing column mapping for Audit Logs + intializeUISolrColumnMapping(auditLogsColumnMappingArray, auditLogsColumnMapping); + } + + private static void intializeUISolrColumnMapping(String columnMappingArray[], HashMap<String, String> columnMappingMap) { + + if (columnMappingArray != null && columnMappingArray.length > 0) { + for (String columnMapping : columnMappingArray) { + String mapping[] = columnMapping.split(":"); + if (mapping.length > 1) { + String solrField = mapping[0]; + String uiField = mapping[1]; + + columnMappingMap.put(solrField + LogSearchConstants.SOLR_SUFFIX, uiField); + columnMappingMap.put(uiField + LogSearchConstants.UI_SUFFIX, solrField); + } + } + } + } + + public static void extractSchemaFieldsName(String responseString, HashMap<String, String> schemaFieldsNameMap, + HashMap<String, String> schemaFieldTypeMap) { + try { + JSONObject jsonObject = new JSONObject(responseString); + JSONObject schemajsonObject = jsonObject.getJSONObject("schema"); + JSONArray jsonArrayList = schemajsonObject.getJSONArray("fields"); + JSONArray fieldTypeJsonArray = schemajsonObject + .getJSONArray("fieldTypes"); + if (jsonArrayList == null) { + return; + } + if (fieldTypeJsonArray == null) { + return; + } + HashMap<String, String> _schemaFieldTypeMap = new HashMap<String, String>(); + HashMap<String, String> _schemaFieldsNameMap = new HashMap<String, String>(); + for (int i = 0; i < fieldTypeJsonArray.length(); i++) { + JSONObject typeObject = fieldTypeJsonArray.getJSONObject(i); + String name = typeObject.getString("name"); + String fieldTypeJson = typeObject.toString(); + _schemaFieldTypeMap.put(name, fieldTypeJson); + } + + for (int i = 0; i < jsonArrayList.length(); i++) { + JSONObject explrObject = jsonArrayList.getJSONObject(i); + String name = explrObject.getString("name"); + String type = explrObject.getString("type"); + if (!name.contains("@") && !name.startsWith("_") && !name.contains("_md5") && !name.contains("_ms") && + !name.contains(LogSearchConstants.NGRAM_SUFFIX) && !name.contains("tags") && !name.contains("_str")) { + _schemaFieldsNameMap.put(name, type); + } + } + schemaFieldsNameMap.clear(); + schemaFieldTypeMap.clear(); + schemaFieldsNameMap.putAll(_schemaFieldsNameMap); + schemaFieldTypeMap.putAll(_schemaFieldTypeMap); + } catch (Exception e) { + logger.error(e + "Credentials not specified in logsearch.properties " + MessageEnums.ERROR_SYSTEM); + } + } + + @SuppressWarnings("rawtypes") + public static void getSchemaFieldsName(String excludeArray[], List<String> fieldNames, SolrDaoBase solrDaoBase) { + if (!solrDaoBase.schemaFieldsNameMap.isEmpty()) { + Iterator iteratorSechmaFieldsName = solrDaoBase.schemaFieldsNameMap.entrySet().iterator(); + while (iteratorSechmaFieldsName.hasNext()) { + Map.Entry fieldName = (Map.Entry) iteratorSechmaFieldsName.next(); + String field = "" + fieldName.getKey(); + if (!isExclude(field, excludeArray)) { + fieldNames.add(field); + } + } + } + } + + private static boolean isExclude(String name, String excludeArray[]) { + if (!ArrayUtils.isEmpty(excludeArray)) { + for (String exclude : excludeArray) { + if (name.equals(exclude)){ + return true; + } + } + } + return false; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java new file mode 100644 index 0000000..5235fab --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java @@ -0,0 +1,96 @@ +/* + * 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.common; + +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; + +import org.apache.ambari.logsearch.web.security.LogsearchAbstractAuthenticationProvider; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.glassfish.jersey.client.JerseyClient; +import org.glassfish.jersey.client.JerseyClientBuilder; +import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; +import org.glassfish.jersey.filter.LoggingFilter; +import org.springframework.stereotype.Component; + +/** + * Layer to send REST request to External server using jersey client + */ +@Component +public class ExternalServerClient { + private static Logger LOG = Logger.getLogger(ExternalServerClient.class); + private static final ThreadLocal<JerseyClient> localJerseyClient = new ThreadLocal<JerseyClient>(){ + @Override + protected JerseyClient initialValue() { + return JerseyClientBuilder.createClient(); + } + }; + private String hostURL = "http://host:ip";// default + private boolean enableLog = false;// default + + @PostConstruct + public void initialization() { + hostURL = PropertiesHelper.getProperty( + LogsearchAbstractAuthenticationProvider.AUTH_METHOD_PROP_START_WITH + + "external_auth.host_url", hostURL); + } + + /** + * Send GET request to an external server + */ + @SuppressWarnings({ "unchecked", "rawtypes" }) + public Object sendGETRequest(String url, Class klass, MultivaluedMap<String, String> queryParam, + String username, String password) + throws Exception { + url = hostURL + url; + JerseyClient client = localJerseyClient.get(); + HttpAuthenticationFeature authFeature = HttpAuthenticationFeature.basicBuilder().build(); + + client.register(authFeature); + if (enableLog) { + client.register(LoggingFilter.class); + } + + WebTarget target = client.target(url); + LOG.debug("URL: " + url); + for (Map.Entry<String, List<String>> entry : queryParam.entrySet()) { + target = target.queryParam(entry.getKey(), entry.getValue()); + LOG.debug( + String.format("Query parameter: name - %s ; value - %s ;" + entry.getKey(), StringUtils.join(entry.getValue(),','))); + } + target + .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_USERNAME, username) + .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_PASSWORD, password); + Invocation.Builder invocationBuilder = target.request(MediaType.APPLICATION_JSON_TYPE); + try { + return invocationBuilder.get().readEntity(klass); + } catch (Exception e) { + throw new Exception(e.getCause()); + } finally { + localJerseyClient.remove(); + } + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java new file mode 100644 index 0000000..adb0699 --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java @@ -0,0 +1,181 @@ +/* + * 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.common; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import org.apache.log4j.Logger; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; + +public class PropertiesHelper extends PropertyPlaceholderConfigurer { + private static final Logger logger = Logger.getLogger(PropertiesHelper.class); + + private static final String LOGSEARCH_PROP_FILE="logsearch.properties"; + + private static Map<String, String> propertiesMap; + + private PropertiesHelper() { + } + + static { + propertiesMap = new HashMap<String, String>(); + Properties properties = new Properties(); + URL fileCompleteUrl = Thread.currentThread().getContextClassLoader().getResource(LOGSEARCH_PROP_FILE); + FileInputStream fileInputStream = null; + try { + File file = new File(fileCompleteUrl.toURI()); + fileInputStream = new FileInputStream(file.getAbsoluteFile()); + properties.load(fileInputStream); + } catch (IOException | URISyntaxException e) { + logger.error("error loading prop for protocol config",e); + } finally { + if (fileInputStream != null) { + try { + fileInputStream.close(); + } catch (IOException e) { + } + } + } + for (String key : properties.stringPropertyNames()) { + String value = properties.getProperty(key); + propertiesMap.put(key, value); + } + } + + @Override + protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException { + super.processProperties(beanFactory, props); + + propertiesMap = new HashMap<String, String>(); + + // First add the system properties + Set<Object> keySet = System.getProperties().keySet(); + for (Object key : keySet) { + String keyStr = key.toString(); + propertiesMap.put(keyStr, System.getProperties().getProperty(keyStr).trim()); + } + + // add our properties now + keySet = props.keySet(); + for (Object key : keySet) { + String keyStr = key.toString(); + propertiesMap.put(keyStr, props.getProperty(keyStr).trim()); + } + } + + public static String getProperty(String key, String defaultValue) { + if (key == null) { + return null; + } + String rtrnVal = propertiesMap.get(key); + if (rtrnVal == null) { + rtrnVal = defaultValue; + } + return rtrnVal; + } + + public static String getProperty(String key) { + if (key == null) { + return null; + } + return propertiesMap.get(key); + } + + public static String[] getPropertyStringList(String key) { + if (key == null) { + return null; + } + String value = propertiesMap.get(key); + if (value == null || value.trim().equals("")) { + return new String[0]; + } else { + String[] splitValues = value.split(","); + String[] returnValues = new String[splitValues.length]; + for (int i = 0; i < splitValues.length; i++) { + returnValues[i] = splitValues[i].trim(); + } + return returnValues; + } + } + + public static Integer getIntProperty(String key, int defaultValue) { + if (key == null) { + return null; + } + String rtrnVal = propertiesMap.get(key); + if (rtrnVal == null) { + return defaultValue; + } + return Integer.valueOf(rtrnVal); + } + + public static Integer getIntProperty(String key) { + if (key == null) { + return null; + } + String rtrnVal = propertiesMap.get(key); + if (rtrnVal == null) { + return null; + } + return Integer.valueOf(rtrnVal); + } + + public static Long getLongProperty(String key, long defaultValue) { + if (key == null) { + return null; + } + String rtrnVal = propertiesMap.get(key); + if (rtrnVal == null) { + return defaultValue; + } + return Long.valueOf(rtrnVal); + } + + public static Long getLongProperty(String key) { + if (key == null) { + return null; + } + String rtrnVal = propertiesMap.get(key); + if (rtrnVal == null) { + return null; + } + return Long.valueOf(rtrnVal); + } + + public static boolean getBooleanProperty(String key, boolean defaultValue) { + if (key == null) { + return defaultValue; + } + String value = getProperty(key); + if (value == null) { + return defaultValue; + } + return Boolean.parseBoolean(value); + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java index 2cf2139..6b74144 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java @@ -26,7 +26,6 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.commons.lang.StringEscapeUtils; public class SearchCriteria { @@ -58,7 +57,7 @@ public class SearchCriteria { if (request.getParameter("pageSize") != null && (!request.getParameter("pageSize").isEmpty())) { this.maxRows = new Integer(request.getParameter("pageSize")); } else { - this.maxRows = PropertiesUtil.getIntProperty("db.maxResults", 50); + this.maxRows = PropertiesHelper.getIntProperty("db.maxResults", 50); } } catch (NumberFormatException e) { // do nothing @@ -197,7 +196,7 @@ public class SearchCriteria { * @param caId */ public void addParam(String name, Object value) { - String solrValue = PropertiesUtil.getProperty(name); + String solrValue = PropertiesHelper.getProperty(name); if (solrValue == null || solrValue.isEmpty()) { paramList.put(name, value); } else { http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java new file mode 100644 index 0000000..690a60f --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java @@ -0,0 +1,79 @@ +/* + * 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.common; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.log4j.Logger; +import org.springframework.util.DefaultPropertiesPersister; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +public class XMLPropertiesHelper extends DefaultPropertiesPersister { + private static Logger logger = Logger.getLogger(XMLPropertiesHelper.class); + + public XMLPropertiesHelper() { + } + + @Override + public void loadFromXml(Properties properties, InputStream inputStream) + throws IOException { + try { + DocumentBuilderFactory xmlDocumentBuilderFactory = DocumentBuilderFactory.newInstance(); + xmlDocumentBuilderFactory.setIgnoringComments(true); + xmlDocumentBuilderFactory.setNamespaceAware(true); + DocumentBuilder xmlDocumentBuilder = xmlDocumentBuilderFactory.newDocumentBuilder(); + Document xmlDocument = xmlDocumentBuilder.parse(inputStream); + if (xmlDocument != null) { + xmlDocument.getDocumentElement().normalize(); + NodeList nList = xmlDocument.getElementsByTagName("property"); + if (nList != null) { + for (int temp = 0; temp < nList.getLength(); temp++) { + Node nNode = nList.item(temp); + if (nNode.getNodeType() == Node.ELEMENT_NODE) { + Element eElement = (Element) nNode; + String propertyName = ""; + String propertyValue = ""; + if (eElement.getElementsByTagName("name") != null && eElement.getElementsByTagName("name").item(0) != null) { + propertyName = eElement.getElementsByTagName("name").item(0).getTextContent().trim(); + } + if (eElement.getElementsByTagName("value") != null && eElement.getElementsByTagName("value").item(0) != null) { + propertyValue = eElement.getElementsByTagName("value").item(0).getTextContent().trim(); + } + if (propertyName != null && !propertyName.isEmpty()) { + properties.put(propertyName, propertyValue); + } + } + } + } + } + } catch (Exception e) { + logger.error("Error loading xml properties ", e); + } + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java index a6f77e9..64aa776 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java @@ -24,8 +24,8 @@ import java.util.Collection; import javax.annotation.PostConstruct; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.manager.MgrBase.LogType; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -41,15 +41,15 @@ public class AuditSolrDao extends SolrDaoBase { @PostConstruct public void postConstructor() { - String solrUrl = PropertiesUtil.getProperty("logsearch.solr.audit.logs.url"); - String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.audit.logs.zk_connect_string"); - String collection = PropertiesUtil.getProperty("logsearch.solr.collection.audit.logs", "audit_logs"); - String aliasNameIn = PropertiesUtil.getProperty("logsearch.solr.audit.logs.alias.name", "audit_logs_alias"); - String rangerAuditCollection = PropertiesUtil.getProperty("logsearch.ranger.audit.logs.collection.name"); - String splitInterval = PropertiesUtil.getProperty("logsearch.audit.logs.split.interval.mins", "none"); - String configName = PropertiesUtil.getProperty("logsearch.solr.audit.logs.config.name", "audit_logs"); - int numberOfShards = PropertiesUtil.getIntProperty("logsearch.collection.audit.logs.numshards", 1); - int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.audit.logs.replication.factor", 1); + String solrUrl = PropertiesHelper.getProperty("logsearch.solr.audit.logs.url"); + String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.audit.logs.zk_connect_string"); + String collection = PropertiesHelper.getProperty("logsearch.solr.collection.audit.logs", "audit_logs"); + String aliasNameIn = PropertiesHelper.getProperty("logsearch.solr.audit.logs.alias.name", "audit_logs_alias"); + String rangerAuditCollection = PropertiesHelper.getProperty("logsearch.ranger.audit.logs.collection.name"); + String splitInterval = PropertiesHelper.getProperty("logsearch.audit.logs.split.interval.mins", "none"); + String configName = PropertiesHelper.getProperty("logsearch.solr.audit.logs.config.name", "audit_logs"); + int numberOfShards = PropertiesHelper.getIntProperty("logsearch.collection.audit.logs.numshards", 1); + int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.audit.logs.replication.factor", 1); try { connectToSolr(solrUrl, zkConnectString, collection); http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java index af6d62d..6e2bb4b 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java @@ -21,8 +21,8 @@ package org.apache.ambari.logsearch.dao; import javax.annotation.PostConstruct; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.manager.MgrBase.LogType; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -38,13 +38,13 @@ public class ServiceLogsSolrDao extends SolrDaoBase { @PostConstruct public void postConstructor() { logger.info("postConstructor() called."); - String solrUrl = PropertiesUtil.getProperty("logsearch.solr.url"); - String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.zk_connect_string"); - String collection = PropertiesUtil.getProperty("logsearch.solr.collection.service.logs", "hadoop_logs"); - String splitInterval = PropertiesUtil.getProperty("logsearch.service.logs.split.interval.mins", "none"); - String configName = PropertiesUtil.getProperty("logsearch.solr.service.logs.config.name", "hadoop_logs"); - int numberOfShards = PropertiesUtil.getIntProperty("logsearch.collection.service.logs.numshards", 1); - int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.service.logs.replication.factor", 1); + String solrUrl = PropertiesHelper.getProperty("logsearch.solr.url"); + String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string"); + String collection = PropertiesHelper.getProperty("logsearch.solr.collection.service.logs", "hadoop_logs"); + String splitInterval = PropertiesHelper.getProperty("logsearch.service.logs.split.interval.mins", "none"); + String configName = PropertiesHelper.getProperty("logsearch.solr.service.logs.config.name", "hadoop_logs"); + int numberOfShards = PropertiesHelper.getIntProperty("logsearch.collection.service.logs.numshards", 1); + int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.service.logs.replication.factor", 1); try { connectToSolr(solrUrl, zkConnectString, collection); http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java index 2129f9e..8cdb6eb 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java @@ -26,12 +26,11 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import org.apache.ambari.logsearch.common.ConfigHelper; import org.apache.ambari.logsearch.common.LogSearchContext; import org.apache.ambari.logsearch.common.MessageEnums; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.manager.MgrBase.LogType; -import org.apache.ambari.logsearch.util.ConfigUtil; -import org.apache.ambari.logsearch.util.JSONUtil; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.ambari.logsearch.util.RESTErrorUtil; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -56,7 +55,6 @@ import org.apache.solr.common.cloud.Replica; import org.apache.solr.common.cloud.Slice; import org.apache.solr.common.cloud.ZkStateReader; import org.apache.solr.common.util.NamedList; -import org.springframework.beans.factory.annotation.Autowired; import com.google.common.annotations.VisibleForTesting; @@ -75,11 +73,6 @@ public abstract class SolrDaoBase { private LogType logType; - @Autowired - protected JSONUtil jsonUtil; - @Autowired - protected RESTErrorUtil restErrorUtil; - @VisibleForTesting protected String collectionName = null; @VisibleForTesting @@ -446,7 +439,7 @@ public abstract class SolrDaoBase { } return queryResponse; } else { - throw restErrorUtil.createRESTException("Solr configuration improper for " + logType.getLabel() +" logs", + throw RESTErrorUtil.createRESTException("Solr configuration improper for " + logType.getLabel() +" logs", MessageEnums.ERROR_SYSTEM); } } @@ -468,8 +461,8 @@ public abstract class SolrDaoBase { } private void setupSecurity() { - String jaasFile = PropertiesUtil.getProperty("logsearch.solr.jaas.file", "/etc/security/keytabs/logsearch_solr.service.keytab"); - boolean securityEnabled = PropertiesUtil.getBooleanProperty("logsearch.solr.kerberos.enable", false); + String jaasFile = PropertiesHelper.getProperty("logsearch.solr.jaas.file", "/etc/security/keytabs/logsearch_solr.service.keytab"); + boolean securityEnabled = PropertiesHelper.getBooleanProperty("logsearch.solr.kerberos.enable", false); if (securityEnabled) { System.setProperty("java.security.auth.login.config", jaasFile); HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer()); @@ -519,7 +512,7 @@ public abstract class SolrDaoBase { SolrRequest<SchemaResponse> request = new SchemaRequest(); request.setMethod(METHOD.GET); request.setPath("/schema"); - String historyCollection = PropertiesUtil.getProperty("logsearch.solr.collection.history","history"); + String historyCollection = PropertiesHelper.getProperty("logsearch.solr.collection.history","history"); if (solrClient != null && !collectionName.equals(historyCollection)) { NamedList<Object> namedList = null; try { @@ -530,7 +523,7 @@ public abstract class SolrDaoBase { } if (namedList != null) { - ConfigUtil.extractSchemaFieldsName(namedList.toString(), schemaFieldsNameMap,schemaFieldTypeMap); + ConfigHelper.extractSchemaFieldsName(namedList.toString(), schemaFieldsNameMap,schemaFieldTypeMap); return true; } } http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java index a0c1134..026c78f 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java @@ -29,6 +29,7 @@ import java.util.Scanner; import javax.annotation.PostConstruct; import org.apache.ambari.logsearch.view.VLogfeederFilterWrapper; import org.apache.ambari.logsearch.common.LogSearchConstants; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.QueryResponse; @@ -42,7 +43,7 @@ import org.codehaus.jettison.json.JSONObject; import com.google.gson.JsonParseException; import org.apache.ambari.logsearch.manager.MgrBase.LogType; -import org.apache.ambari.logsearch.util.PropertiesUtil; +import org.apache.ambari.logsearch.util.JSONUtil; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -59,11 +60,11 @@ public class UserConfigSolrDao extends SolrDaoBase { @PostConstruct public void postConstructor() { - String solrUrl = PropertiesUtil.getProperty("logsearch.solr.url"); - String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.zk_connect_string"); - String collection = PropertiesUtil.getProperty("logsearch.solr.collection.history", "history"); - String configName = PropertiesUtil.getProperty("logsearch.solr.history.config.name", "history"); - int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.history.replication.factor", 2); + String solrUrl = PropertiesHelper.getProperty("logsearch.solr.url"); + String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string"); + String collection = PropertiesHelper.getProperty("logsearch.solr.collection.history", "history"); + String configName = PropertiesHelper.getProperty("logsearch.solr.history.config.name", "history"); + int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.history.replication.factor", 2); String splitInterval = "none"; int numberOfShards = 1; @@ -88,7 +89,7 @@ public class UserConfigSolrDao extends SolrDaoBase { public void saveUserFilter(VLogfeederFilterWrapper logfeederFilterWrapper) throws SolrException, SolrServerException, IOException { String filterName = LogSearchConstants.LOGFEEDER_FILTER_NAME; - String json = jsonUtil.objToJson(logfeederFilterWrapper); + String json = JSONUtil.objToJson(logfeederFilterWrapper); SolrInputDocument configDocument = new SolrInputDocument(); configDocument.addField(LogSearchConstants.ID, logfeederFilterWrapper.getId()); configDocument.addField(LogSearchConstants.ROW_TYPE, filterName); @@ -115,14 +116,14 @@ public class UserConfigSolrDao extends SolrDaoBase { VLogfeederFilterWrapper logfeederFilterWrapper = null; if (!CollectionUtils.isEmpty(documentList)) { SolrDocument configDoc = documentList.get(0); - String configJson = jsonUtil.objToJson(configDoc); - HashMap<String, Object> configMap = (HashMap<String, Object>) jsonUtil.jsonToMapObject(configJson); + String configJson = JSONUtil.objToJson(configDoc); + HashMap<String, Object> configMap = (HashMap<String, Object>) JSONUtil.jsonToMapObject(configJson); String json = (String) configMap.get(LogSearchConstants.VALUES); - logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(json, VLogfeederFilterWrapper.class); + logfeederFilterWrapper = (VLogfeederFilterWrapper) JSONUtil.jsonToObj(json, VLogfeederFilterWrapper.class); logfeederFilterWrapper.setId("" + configDoc.get(LogSearchConstants.ID)); } else { - String logfeederDefaultLevels = PropertiesUtil.getProperty("logsearch.logfeeder.include.default.level", DEFAULT_LEVELS); + String logfeederDefaultLevels = PropertiesHelper.getProperty("logsearch.logfeeder.include.default.level", DEFAULT_LEVELS); JSONArray levelJsonArray = new JSONArray(Arrays.asList(logfeederDefaultLevels.split(","))); String hadoopServiceString = getHadoopServiceConfigJSON(); @@ -148,7 +149,7 @@ public class UserConfigSolrDao extends SolrDaoBase { } } jsonValue.put("filter", componentList); - logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(jsonValue.toString(), VLogfeederFilterWrapper.class); + logfeederFilterWrapper = (VLogfeederFilterWrapper) JSONUtil.jsonToObj(jsonValue.toString(), VLogfeederFilterWrapper.class); logfeederFilterWrapper.setId(""+new Date().getTime()); saveUserFilter(logfeederFilterWrapper); @@ -181,7 +182,7 @@ public class UserConfigSolrDao extends SolrDaoBase { } String hadoopServiceConfig = result.toString(); - if (jsonUtil.isJSONValid(hadoopServiceConfig)) { + if (JSONUtil.isJSONValid(hadoopServiceConfig)) { return hadoopServiceConfig; } return null; http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java index b7853df..39f0e25 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java @@ -28,11 +28,10 @@ import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.stereotype.Repository; - +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.util.CommonUtil; import org.apache.ambari.logsearch.util.FileUtil; import org.apache.ambari.logsearch.util.JSONUtil; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.ambari.logsearch.web.model.Privilege; import org.apache.ambari.logsearch.web.model.Role; import org.apache.ambari.logsearch.web.model.User; @@ -52,10 +51,6 @@ public class UserDao { private static final String NAME = "name"; @Autowired - private JSONUtil jsonUtil; - @Autowired - private FileUtil fileUtil; - @Autowired private LogsearchFileAuthenticationProvider fileAuthenticationProvider; private ArrayList<HashMap<String, String>> userList = null; @@ -65,21 +60,21 @@ public class UserDao { public void initialization() { if (fileAuthenticationProvider.isEnable()) { try { - String userPassJsonFileName = PropertiesUtil.getProperty("logsearch.login.credentials.file"); + String userPassJsonFileName = PropertiesHelper.getProperty("logsearch.login.credentials.file"); logger.info("USER PASS JSON file NAME:" + userPassJsonFileName); - File jsonFile = fileUtil.getFileFromClasspath(userPassJsonFileName); + File jsonFile = FileUtil.getFileFromClasspath(userPassJsonFileName); if (jsonFile == null || !jsonFile.exists()) { logger.fatal("user_pass json file not found in classpath :" + userPassJsonFileName); System.exit(1); } - HashMap<String, Object> userInfos = jsonUtil.readJsonFromFile(jsonFile); + HashMap<String, Object> userInfos = JSONUtil.readJsonFromFile(jsonFile); userList = (ArrayList<HashMap<String, String>>) userInfos.get("users"); if (userList != null) { boolean isUpdated = this.encryptAllPassword(); userInfos.put("users", userList); if (isUpdated) { - String jsonStr = jsonUtil.mapToJSON(userInfos); - jsonUtil.writeJSONInFile(jsonStr, jsonFile, true); + String jsonStr = JSONUtil.mapToJSON(userInfos); + JSONUtil.writeJSONInFile(jsonStr, jsonFile, true); } } else { userList = new ArrayList<HashMap<String, String>>(); http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java index 3793f50..d84b7b9 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java @@ -47,8 +47,6 @@ import org.apache.solr.common.util.SimpleOrderedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; - - @Component public class GraphDataGenerator extends GraphDataGeneratorBase { @@ -56,10 +54,6 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { @Autowired private QueryGeneration queryGenerator; - @Autowired - private RESTErrorUtil restErrorUtil; - @Autowired - private SolrUtil solrUtil; public VBarDataList getAnyGraphData(SearchCriteria searchCriteria, SolrDaoBase solrDaoBase, SolrQuery solrQuery) { // X axis credentials @@ -131,10 +125,10 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { Collection<VBarGraphData> vBarGraphDatas = new ArrayList<VBarGraphData>(); VBarGraphData vBarGraphData = new VBarGraphData(); Collection<VNameValue> vNameValues = new ArrayList<VNameValue>(); - queryGenerator.setMainQuery(solrQuery, null); + SolrUtil.setMainQuery(solrQuery, null); queryGenerator.setSingleIncludeFilter(solrQuery, fieldTime, "[" + from + " TO " + to + "]"); if (typeXAxis.contains("string") || typeXAxis.contains("key_lower_case") || typeXAxis.contains("text")) { - queryGenerator.setFacetField(solrQuery, xAxisField); + SolrUtil.setFacetField(solrQuery, xAxisField); try { QueryResponse response = solrDaoBase.process(solrQuery); if (response != null && response.getResults() != null) { @@ -184,10 +178,10 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { logger.error("Got exception for solr query :" + query, e.getCause()); } } else { - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setRowCount(solrQuery, 0); String yAxis = yAxisField.contains("count") ? "sum" : yAxisField; String jsonQuery = queryGenerator.buildJSONFacetAggregatedFuncitonQuery(yAxis, xAxisField); - queryGenerator.setJSONFacet(solrQuery, jsonQuery); + SolrUtil.setJSONFacet(solrQuery, jsonQuery); try { QueryResponse response = solrDaoBase.process(solrQuery); SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); @@ -218,17 +212,17 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { VBarDataList dataList = new VBarDataList(); Collection<VBarGraphData> vGraphData = new ArrayList<VBarGraphData>(); String mainQuery = queryGenerator.buildInclusiveRangeFilterQuery(fieldTime, from, to); - queryGenerator.setMainQuery(solrQuery, mainQuery); - queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); + SolrUtil.setMainQuery(solrQuery, mainQuery); + SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); String jsonQuery = ""; - if (solrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { + if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { String function = (yAxisField.contains("count")) ? "sum" : yAxisField; jsonQuery = queryGenerator.buidlJSONFacetRangeQueryForNumber(stackField, xAxisField, function); } else { jsonQuery = queryGenerator.buildJsonFacetTermsRangeQuery(stackField, xAxisField); } try { - queryGenerator.setJSONFacet(solrQuery, jsonQuery); + SolrUtil.setJSONFacet(solrQuery, jsonQuery); dataList.setGraphData(vGraphData); QueryResponse response = solrDaoBase.process(solrQuery); if (response == null) { @@ -268,7 +262,7 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { } catch (SolrException | IOException | SolrServerException e) { String query = solrQuery != null ? solrQuery.toQueryString() : ""; logger.error("Got exception for solr query :" + query, e.getCause()); - throw restErrorUtil.createRESTException(MessageEnums.DATA_NOT_FOUND.getMessage().getMessage(), MessageEnums.DATA_NOT_FOUND); + throw RESTErrorUtil.createRESTException(MessageEnums.DATA_NOT_FOUND.getMessage().getMessage(), MessageEnums.DATA_NOT_FOUND); } } @@ -279,13 +273,13 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { Collection<VBarGraphData> vBarGraphDatas = new ArrayList<VBarGraphData>(); VBarGraphData vBarGraphData = new VBarGraphData(); Collection<VNameValue> vNameValues = new ArrayList<VNameValue>(); - queryGenerator.setMainQuery(solrQuery, null); - if (solrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { + SolrUtil.setMainQuery(solrQuery, null); + if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { queryGenerator.setSingleRangeFilter(solrQuery, fieldTime, from, to); return normalGraph(xAxisField, yAxisField, from, to, solrDaoBase, typeXAxis, fieldTime, solrQuery); } else { try { - queryGenerator.setFacetRange(solrQuery, xAxisField, from, to, unit); + SolrUtil.setFacetRange(solrQuery, xAxisField, from, to, unit); QueryResponse response = solrDaoBase.process(solrQuery); if (response != null) { Long count = response.getResults().getNumFound(); @@ -322,13 +316,13 @@ public class GraphDataGenerator extends GraphDataGeneratorBase { SolrDaoBase solrDaoBase, SolrQuery solrQuery) { VBarDataList dataList = new VBarDataList(); List<VBarGraphData> histogramData = new ArrayList<VBarGraphData>(); - queryGenerator.setMainQuery(solrQuery, null); - queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); + SolrUtil.setMainQuery(solrQuery, null); + SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); String jsonHistogramQuery = queryGenerator.buildJSONFacetTermTimeRangeQuery(stackField, xAxisField, from, to, unit).replace("\\", ""); try { solrQuery.set("json.facet", jsonHistogramQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setRowCount(solrQuery, 0); QueryResponse response = solrDaoBase.process(solrQuery); if (response != null) { SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java index 49006e2..e7fab9a 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java @@ -30,13 +30,9 @@ import org.apache.ambari.logsearch.view.VNameValue; import org.apache.commons.lang.StringUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SimpleOrderedMap; -import org.springframework.beans.factory.annotation.Autowired; class GraphDataGeneratorBase extends MgrBase { - @Autowired - private DateUtil dateUtil; - private static final String BUCKETS = "buckets"; private static enum DataType { @@ -86,7 +82,7 @@ class GraphDataGeneratorBase extends MgrBase { for (Object levelBucket : levelBuckets) { SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) levelBucket; if (countValue != null) { - String innerName = dateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0)); + String innerName = DateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0)); String innerValue = countValue.getVal(1) != null ? countValue.getVal(1).toString() : ""; VNameValue vNameValue = new VNameValue(innerName, innerValue); vNameValues.add(vNameValue); http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java index 947fdbb..172ec81 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java @@ -32,17 +32,18 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import org.apache.ambari.logsearch.common.ConfigHelper; import org.apache.ambari.logsearch.common.LogSearchConstants; import org.apache.ambari.logsearch.common.ManageStartEndTime; import org.apache.ambari.logsearch.common.MessageEnums; +import org.apache.ambari.logsearch.common.PropertiesHelper; import org.apache.ambari.logsearch.common.SearchCriteria; import org.apache.ambari.logsearch.dao.AuditSolrDao; import org.apache.ambari.logsearch.graph.GraphDataGenerator; import org.apache.ambari.logsearch.util.BizUtil; -import org.apache.ambari.logsearch.util.ConfigUtil; import org.apache.ambari.logsearch.util.DateUtil; -import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.ambari.logsearch.util.RESTErrorUtil; +import org.apache.ambari.logsearch.util.SolrUtil; import org.apache.ambari.logsearch.view.VBarDataList; import org.apache.ambari.logsearch.view.VBarGraphData; import org.apache.ambari.logsearch.view.VGroupList; @@ -72,12 +73,6 @@ public class AuditMgr extends MgrBase { @Autowired private AuditSolrDao auditSolrDao; @Autowired - private RESTErrorUtil restErrorUtil; - @Autowired - private BizUtil bizUtil; - @Autowired - private DateUtil dateUtil; - @Autowired private GraphDataGenerator graphDataGenerator; public String getLogs(SearchCriteria searchCriteria) { @@ -101,8 +96,8 @@ public class AuditMgr extends MgrBase { SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); SolrDocumentList docList = new SolrDocumentList(); try { - queryGenerator.setFacetField(solrQuery, LogSearchConstants.AUDIT_COMPONENT); - queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); + SolrUtil.setFacetField(solrQuery, LogSearchConstants.AUDIT_COMPONENT); + SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); List<FacetField> facetFields = null; List<Count> componentsCount = new ArrayList<Count>(); FacetField facetField = null; @@ -131,7 +126,7 @@ public class AuditMgr extends MgrBase { return docList; } catch (SolrException | SolrServerException | IOException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -157,8 +152,8 @@ public class AuditMgr extends MgrBase { LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", ""); try { - queryGenerator.setJSONFacet(solrQuery, jsonHistogramQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery); + SolrUtil.setRowCount(solrQuery, 0); QueryResponse response = auditSolrDao.process(solrQuery); if (response == null){ return convertObjToString(dataList); @@ -176,7 +171,7 @@ public class AuditMgr extends MgrBase { } catch (SolrServerException | SolrException | IOException e) { logger.error(e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -195,9 +190,9 @@ public class AuditMgr extends MgrBase { VNameValueList nameValueList = new VNameValueList(nameValues); - queryGenerator.setFacetField(solrQuery, facetField); - queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_COUNT); - queryGenerator.setFacetLimit(solrQuery, top.intValue()); + SolrUtil.setFacetField(solrQuery, facetField); + SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_COUNT); + SolrUtil.setFacetLimit(solrQuery, top.intValue()); List<Count> countList = new ArrayList<FacetField.Count>(); QueryResponse queryResponse = auditSolrDao.process(solrQuery); @@ -223,7 +218,7 @@ public class AuditMgr extends MgrBase { } catch (SolrException | IOException | SolrServerException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -234,11 +229,11 @@ public class AuditMgr extends MgrBase { solrQuery.setParam("event", "/audit/logs/live/count"); try { Date[] timeRange = ManageStartEndTime.getStartEndTime(); - String startDate = dateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[0]); - String endDate = dateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[1]); + String startDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[0]); + String endDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[1]); - queryGenerator.setMainQuery(solrQuery, null); - queryGenerator.setFacetRange(solrQuery, LogSearchConstants.AUDIT_EVTTIME, startDate, endDate, "+2MINUTE"); + SolrUtil.setMainQuery(solrQuery, null); + SolrUtil.setFacetRange(solrQuery, LogSearchConstants.AUDIT_EVTTIME, startDate, endDate, "+2MINUTE"); List<RangeFacet.Count> listCount; QueryResponse response = auditSolrDao.process(solrQuery); @@ -270,7 +265,7 @@ public class AuditMgr extends MgrBase { } catch (SolrException | SolrServerException | ParseException | IOException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -279,8 +274,8 @@ public class AuditMgr extends MgrBase { String jsonUserQuery = "{Users:{type:terms, field:reqUser, facet:{ Repo:{ type:terms, field:repo, facet:{eventCount:\"sum(event_count)\"}}}}}"; SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - queryGenerator.setJSONFacet(solrQuery, jsonUserQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); + SolrUtil.setRowCount(solrQuery, 0); try { VBarDataList vBarDataList = new VBarDataList(); QueryResponse queryResponse = auditSolrDao.process(solrQuery); @@ -302,12 +297,12 @@ public class AuditMgr extends MgrBase { if (jsonFacetResponse.toString().equals("{count=0}")) { return convertObjToString(vBarDataList); } - vBarDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); + vBarDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); return convertObjToString(vBarDataList); } catch (SolrServerException | SolrException | IOException e) { logger.error("Error during solrQuery=" + e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -316,8 +311,8 @@ public class AuditMgr extends MgrBase { String jsonUserQuery = "{Users:{type:terms,field:resource,facet:{Repo:{type:terms,field:repo,facet:{eventCount:\"sum(event_count)\"}}}}}"; SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - queryGenerator.setJSONFacet(solrQuery, jsonUserQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); + SolrUtil.setRowCount(solrQuery, 0); try { VBarDataList vBarDataList = new VBarDataList(); QueryResponse queryResponse = auditSolrDao.process(solrQuery); @@ -333,12 +328,12 @@ public class AuditMgr extends MgrBase { @SuppressWarnings("unchecked") SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets"); - vBarDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); + vBarDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); return convertObjToString(vBarDataList); } catch (SolrServerException | SolrException | IOException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -354,14 +349,14 @@ public class AuditMgr extends MgrBase { VBarDataList dataList = new VBarDataList(); List<VBarGraphData> histogramData = new ArrayList<VBarGraphData>(); - queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); + SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); String jsonHistogramQuery = queryGenerator.buildJSONFacetTermTimeRangeQuery(LogSearchConstants.AUDIT_REQUEST_USER, LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", ""); try { - queryGenerator.setJSONFacet(solrQuery, jsonHistogramQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery); + SolrUtil.setRowCount(solrQuery, 0); QueryResponse response = auditSolrDao.process(solrQuery); if (response == null){ return convertObjToString(dataList); @@ -378,19 +373,19 @@ public class AuditMgr extends MgrBase { } catch (SolrException | IOException | SolrServerException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } public String getAuditLogsSchemaFieldsName() { - String excludeArray[] = PropertiesUtil.getPropertyStringList("logsearch.solr.audit.logs.exclude.columnlist"); + String excludeArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.audit.logs.exclude.columnlist"); List<String> fieldNames = new ArrayList<String>(); HashMap<String, String> uiFieldColumnMapping = new HashMap<String, String>(); - ConfigUtil.getSchemaFieldsName(excludeArray, fieldNames,auditSolrDao); + ConfigHelper.getSchemaFieldsName(excludeArray, fieldNames,auditSolrDao); for (String fieldName : fieldNames) { - String uiField = ConfigUtil.auditLogsColumnMapping.get(fieldName + LogSearchConstants.SOLR_SUFFIX); + String uiField = ConfigHelper.auditLogsColumnMapping.get(fieldName + LogSearchConstants.SOLR_SUFFIX); if (uiField == null) { uiFieldColumnMapping.put(fieldName, fieldName); } else { @@ -398,7 +393,7 @@ public class AuditMgr extends MgrBase { } } - uiFieldColumnMapping = bizUtil.sortHashMapByValues(uiFieldColumnMapping); + uiFieldColumnMapping = BizUtil.sortHashMapByValues(uiFieldColumnMapping); return convertObjToString(uiFieldColumnMapping); } @@ -431,7 +426,7 @@ public class AuditMgr extends MgrBase { ArrayList<Object> levelBuckets = (ArrayList<Object>) ((NamedList<Object>) level.get(innerField)).get("buckets"); for (Object temp1 : levelBuckets) { SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) temp1; - String value = dateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0)); + String value = DateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0)); String count = "" + countValue.getVal(1); VNameValue vNameValue = new VNameValue(); @@ -455,8 +450,8 @@ public class AuditMgr extends MgrBase { startTime = startTime == null ? "" : startTime; endTime = endTime == null ? "" : "_" + endTime; - queryGenerator.setJSONFacet(solrQuery, jsonUserQuery); - queryGenerator.setRowCount(solrQuery, 0); + SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); + SolrUtil.setRowCount(solrQuery, 0); String dataFormat = (String) searchCriteria.getParamValue("format"); FileOutputStream fis = null; @@ -465,21 +460,21 @@ public class AuditMgr extends MgrBase { if(queryResponse == null){ VResponse response = new VResponse(); response.setMsgDesc("Query was not able to execute "+solrQuery); - throw restErrorUtil.createRESTException(response); + throw RESTErrorUtil.createRESTException(response); } NamedList<Object> namedList = queryResponse.getResponse(); if (namedList == null) { VResponse response = new VResponse(); response.setMsgDesc("Query was not able to execute "+solrQuery); - throw restErrorUtil.createRESTException(response); + throw RESTErrorUtil.createRESTException(response); } VBarDataList vBarUserDataList = new VBarDataList(); VBarDataList vBarResourceDataList = new VBarDataList(); SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets"); - vBarUserDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); - vBarResourceDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"y","x"); + vBarUserDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users"); + vBarResourceDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"y","x"); String data = ""; String summary = ""; if ("text".equals(dataFormat)) { @@ -570,7 +565,7 @@ public class AuditMgr extends MgrBase { } catch (SolrServerException | SolrException | IOException e) { logger.error("Error during solrQuery=" + e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } finally { if (fis != null) { try { @@ -599,7 +594,7 @@ public class AuditMgr extends MgrBase { SolrQuery serivceLoadQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); try { - queryGenerator.setFacetField(serivceLoadQuery, LogSearchConstants.AUDIT_COMPONENT); + SolrUtil.setFacetField(serivceLoadQuery, LogSearchConstants.AUDIT_COMPONENT); QueryResponse serviceLoadResponse = auditSolrDao.process(serivceLoadQuery); if (serviceLoadResponse == null){ return convertObjToString(dataList); @@ -629,7 +624,7 @@ public class AuditMgr extends MgrBase { } catch (SolrException | SolrServerException | IOException e) { logger.error("Error during solrQuery=" + e); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/dfeea2de/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java index 8badb61..e227c6c 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java @@ -28,6 +28,8 @@ import org.apache.ambari.logsearch.common.SearchCriteria; import org.apache.ambari.logsearch.dao.AuditSolrDao; import org.apache.ambari.logsearch.dao.ServiceLogsSolrDao; import org.apache.ambari.logsearch.dao.SolrDaoBase; +import org.apache.ambari.logsearch.util.RESTErrorUtil; +import org.apache.ambari.logsearch.util.SolrUtil; import org.apache.ambari.logsearch.view.VLogFile; import org.apache.ambari.logsearch.view.VLogFileList; import org.apache.ambari.logsearch.view.VSolrLogList; @@ -61,8 +63,8 @@ public class LogFileMgr extends MgrBase { String host = (String) searchCriteria.getParamValue("host"); int minCount = 1;// to remove zero count facet SolrQuery solrQuery = new SolrQuery(); - queryGenerator.setMainQuery(solrQuery, null); - queryGenerator.setFacetFieldWithMincount(solrQuery, LogSearchConstants.SOLR_PATH, minCount); + SolrUtil.setMainQuery(solrQuery, null); + SolrUtil.setFacetFieldWithMincount(solrQuery, LogSearchConstants.SOLR_PATH, minCount); // adding filter queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_COMPONENT, componentName); queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_HOST, host); @@ -77,7 +79,7 @@ public class LogFileMgr extends MgrBase { } else if (logType.equalsIgnoreCase(LogType.AUDIT.name())) { daoMgr = auditSolrDao; } else { - throw restErrorUtil.createRESTException(logType + " is not a valid logType", MessageEnums.INVALID_INPUT_DATA); + throw RESTErrorUtil.createRESTException(logType + " is not a valid logType", MessageEnums.INVALID_INPUT_DATA); } QueryResponse queryResponse = daoMgr.process(solrQuery); if (queryResponse.getFacetField(LogSearchConstants.SOLR_PATH) != null) { @@ -96,7 +98,7 @@ public class LogFileMgr extends MgrBase { } } catch (SolrException | SolrServerException | IOException e) { logger.error("Error in solr query :" + e.getLocalizedMessage() + "\n Query :" + solrQuery.toQueryString(), e.getCause()); - throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } logFileList.setLogFiles(logFiles); String jsonStr = ""; @@ -111,31 +113,31 @@ public class LogFileMgr extends MgrBase { String component = (String) searchCriteria.getParamValue("component"); String tailSize = (String) searchCriteria.getParamValue("tailSize"); if (StringUtils.isBlank(host)) { - throw restErrorUtil.createRESTException("missing Host Name", MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException("missing Host Name", MessageEnums.ERROR_SYSTEM); } tailSize = (StringUtils.isBlank(tailSize)) ? "10" : tailSize; SolrQuery logFileTailQuery = new SolrQuery(); try { int tail = Integer.parseInt(tailSize); tail = tail > 100 ? 100 : tail; - queryGenerator.setMainQuery(logFileTailQuery, null); + SolrUtil.setMainQuery(logFileTailQuery, null); queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_HOST, host); if (!StringUtils.isBlank(logFile)) { - queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_PATH, solrUtil.makeSolrSearchString(logFile)); + queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_PATH, SolrUtil.makeSolrSearchString(logFile)); } else if (!StringUtils.isBlank(component)) { queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_COMPONENT, component); } else { - throw restErrorUtil.createRESTException("component or logfile parameter must be present", MessageEnums.ERROR_SYSTEM); + throw RESTErrorUtil.createRESTException("component or logfile parameter must be present", MessageEnums.ERROR_SYSTEM); } - queryGenerator.setRowCount(logFileTailQuery, tail); + SolrUtil.setRowCount(logFileTailQuery, tail); queryGenerator.setSortOrderDefaultServiceLog(logFileTailQuery, new SearchCriteria()); VSolrLogList solrLogList = getLogAsPaginationProvided(logFileTailQuery, serviceLogsSolrDao); return convertObjToString(solrLogList); } catch (NumberFormatException ne) { - throw restErrorUtil.createRESTException(ne.getMessage(), + throw RESTErrorUtil.createRESTException(ne.getMessage(), MessageEnums.ERROR_SYSTEM); }
