atlas git commit: ATLAS-2786: updated HBase and Solr clients to use all zookeeper entires
Repository: atlas Updated Branches: refs/heads/branch-0.8 01f3f14ea -> 2f3942831 ATLAS-2786: updated HBase and Solr clients to use all zookeeper entires Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/2f394283 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/2f394283 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/2f394283 Branch: refs/heads/branch-0.8 Commit: 2f39428313136b765dbab42a1ee2e6521695d690 Parents: 01f3f14 Author: Madhan Neethiraj Authored: Thu Sep 27 19:51:35 2018 -0700 Committer: Madhan Neethiraj Committed: Thu Sep 27 21:06:09 2018 -0700 -- .../titan/diskstorage/solr/Solr5Index.java | 50 +--- .../audit/HBaseBasedAuditRepository.java| 20 2 files changed, 55 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/atlas/blob/2f394283/graphdb/titan0/src/main/java/com/thinkaurelius/titan/diskstorage/solr/Solr5Index.java -- diff --git a/graphdb/titan0/src/main/java/com/thinkaurelius/titan/diskstorage/solr/Solr5Index.java b/graphdb/titan0/src/main/java/com/thinkaurelius/titan/diskstorage/solr/Solr5Index.java index 90d24e4..50b3123 100644 --- a/graphdb/titan0/src/main/java/com/thinkaurelius/titan/diskstorage/solr/Solr5Index.java +++ b/graphdb/titan0/src/main/java/com/thinkaurelius/titan/diskstorage/solr/Solr5Index.java @@ -103,7 +103,8 @@ public class Solr5Index implements IndexProvider { private static final Logger logger = LoggerFactory.getLogger(Solr5Index.class); -private static final String DEFAULT_ID_FIELD = "id"; +private static final String DEFAULT_ID_FIELD = "id"; +private static final char CHROOT_START_CHAR = '/'; private enum Mode { HTTP, CLOUD; @@ -138,9 +139,9 @@ public class Solr5Index implements IndexProvider { /** SolrCloud Configuration */ -public static final ConfigOption ZOOKEEPER_URL = new ConfigOption<>(SOLR_NS, "zookeeper-url", +public static final ConfigOption ZOOKEEPER_URL = new ConfigOption<>(SOLR_NS, "zookeeper-url", "URL of the Zookeeper instance coordinating the SolrCloud cluster", -ConfigOption.Type.MASKABLE, "localhost:2181"); +ConfigOption.Type.MASKABLE, new String[]{"localhost:2181"}); public static final ConfigOption ZOOKEEPER_CONNECT_TIMEOUT = new ConfigOption<>(SOLR_NS,"zookeeper-connect-timeout", "SolrCloud Zookeeper connect timeout", @@ -216,8 +217,9 @@ public class Solr5Index implements IndexProvider { if (mode==Mode.CLOUD) { HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer()); -String zookeeperUrl = config.get(Solr5Index.ZOOKEEPER_URL); -CloudSolrClient cloudServer = new CloudSolrClient(zookeeperUrl, true); + +String[]zkHosts = config.get(Solr5Index.ZOOKEEPER_URL); +CloudSolrClient cloudServer = getCloudSolrClient(zkHosts); logger.info("Zookeeper connect timeout : " + config.get(ZOOKEEPER_CONNECT_TIMEOUT)); cloudServer.setZkConnectTimeout(config.get(ZOOKEEPER_CONNECT_TIMEOUT)); @@ -237,8 +239,6 @@ public class Solr5Index implements IndexProvider { }}); solrClient = new LBHttpSolrClient(clientParams, config.get(HTTP_URLS)); - - } else { throw new IllegalArgumentException("Unsupported Solr operation mode: " + mode); } @@ -966,6 +966,42 @@ public class Solr5Index implements IndexProvider { } } +private CloudSolrClient getCloudSolrClient(String[] zkHosts) { +logger.info("==> Solr5Index.getCloudSolrClient({})", zkHosts); + +CloudSolrClient ret = null; + +if (zkHosts != null) { +List zkServers = new ArrayList<>(zkHosts.length); +String chroot= null; + +for (String zkHost : zkHosts) { +if (zkHost != null) { +int idxSlash = zkHost.indexOf(CHROOT_START_CHAR); + +if (idxSlash != -1) { +chroot = zkHost.substring(idxSlash); // chroot of the last url will be used +zkHost = zkHost.substring(0, idxSlash); +} + +if (StringUtils.isNotEmpty(zkHost)) { +logger.info("Solr5Index: adding zkHost={}. chroot={}", zkHost, chroot); + +zkServers.add(zkHost); +} +} +} + +logger.info("Solr5Index: number of zkUrls={}. chroot={}", zkServers.size(), chroot); + +ret = new CloudSolrClient(zkServers, chroot); +} + +logger.info("<== Solr5Index.getCloudSolrClient({}): ret={}",
atlas git commit: ATLAS-2897: Elegant handling of empty zip files.
Repository: atlas Updated Branches: refs/heads/branch-0.8 e3a592cef -> 01f3f14ea ATLAS-2897: Elegant handling of empty zip files. Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/01f3f14e Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/01f3f14e Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/01f3f14e Branch: refs/heads/branch-0.8 Commit: 01f3f14ea78092000a1855c6bd7838a02647e8cf Parents: e3a592c Author: Ashutosh Mestry Authored: Thu Sep 27 09:27:30 2018 -0700 Committer: Ashutosh Mestry Committed: Thu Sep 27 15:01:23 2018 -0700 -- .../java/org/apache/atlas/AtlasErrorCode.java | 1 + .../atlas/repository/impexp/ZipSource.java | 21 +++- .../repository/impexp/ImportServiceTest.java| 24 +-- .../impexp/ZipFileResourceTestUtils.java| 6 ++--- .../atlas/repository/impexp/ZipSourceTest.java | 8 +++ repository/src/test/resources/empty.zip | Bin 0 -> 22 bytes 6 files changed, 40 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/atlas/blob/01f3f14e/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java -- diff --git a/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java b/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java index dde7d3a..8163390 100644 --- a/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java +++ b/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java @@ -77,6 +77,7 @@ public enum AtlasErrorCode { SAVED_SEARCH_CHANGE_USER(400, "ATLAS-400-00-056", "saved-search {0} can not be moved from user {1} to {2}"), INVALID_QUERY_PARAM_LENGTH(400, "ATLAS-400-00-057" , "Length of query param {0} exceeds the limit"), INVALID_QUERY_LENGTH(400, "ATLAS-400-00-057" , "Invalid query length, update {0} to change the limit" ), +IMPORT_ATTEMPTING_EMPTY_ZIP(400, "ATLAS-400-00-058", "Attempting to import empty ZIP file."), // All Not found enums go here UNKNOWN_CLASSIFICATION(400, "ATLAS-400-00-046", "{0}: Unknown/invalid classification"), http://git-wip-us.apache.org/repos/asf/atlas/blob/01f3f14e/repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java -- diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java b/repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java index 7d96044..691f933 100644 --- a/repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java +++ b/repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java @@ -40,6 +40,8 @@ import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import static org.apache.atlas.AtlasErrorCode.IMPORT_ATTEMPTING_EMPTY_ZIP; + public class ZipSource implements EntityImportStream { private static final Logger LOG = LoggerFactory.getLogger(ZipSource.class); @@ -52,16 +54,20 @@ public class ZipSource implements EntityImportStream { private List entityHandlers; private int currentPosition; -public ZipSource(InputStream inputStream) throws IOException { +public ZipSource(InputStream inputStream) throws IOException, AtlasBaseException { this(inputStream, null); } -public ZipSource(InputStream inputStream, ImportTransforms importTransform) throws IOException { +public ZipSource(InputStream inputStream, ImportTransforms importTransform) throws IOException, AtlasBaseException { this.inputStream = inputStream; this.guidEntityJsonMap = new HashMap<>(); this.importTransform = importTransform; updateGuidZipEntryMap(); +if (MapUtils.isEmpty(guidEntityJsonMap)) { +throw new AtlasBaseException(IMPORT_ATTEMPTING_EMPTY_ZIP, "Attempting to import empty ZIP."); +} + setCreationOrder(); } @@ -82,7 +88,7 @@ public class ZipSource implements EntityImportStream { public AtlasTypesDef getTypesDef() throws AtlasBaseException { final String fileName = ZipExportFileNames.ATLAS_TYPESDEF_NAME.toString(); -String s = (String) getFromCache(fileName); +String s = getFromCache(fileName); return convertFromJson(AtlasTypesDef.class, s); } @@ -179,7 +185,12 @@ public class ZipSource implements EntityImportStream { } private String getFromCache(String entryName) { -return guidEntityJsonMap.get(entryName); +String s = guidEntityJsonMap.get(entryName); +if (StringUtils.isEmpty(s)) { +LOG.warn("Could not fetch requested contents of file: {}", entryName); +} + +return s; } public void
atlas git commit: ATLAS-2894: UI to implement REST Endpoint that Deletes Type Given Type Name(without JSON body)- without params
Repository: atlas Updated Branches: refs/heads/branch-0.8 ab6425e35 -> e3a592cef ATLAS-2894: UI to implement REST Endpoint that Deletes Type Given Type Name(without JSON body)- without params Signed-off-by: nixonrodrigues Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/e3a592ce Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/e3a592ce Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/e3a592ce Branch: refs/heads/branch-0.8 Commit: e3a592cefd6dc0a9228e8099518857428169a5af Parents: ab6425e Author: Abhishek Kadam Authored: Thu Sep 27 14:44:56 2018 +0530 Committer: nixonrodrigues Committed: Thu Sep 27 17:23:05 2018 +0530 -- dashboardv2/public/js/models/VTag.js| 2 +- dashboardv2/public/js/utils/UrlLinks.js | 11 --- 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/atlas/blob/e3a592ce/dashboardv2/public/js/models/VTag.js -- diff --git a/dashboardv2/public/js/models/VTag.js b/dashboardv2/public/js/models/VTag.js index 17acbd8..19767d6 100644 --- a/dashboardv2/public/js/models/VTag.js +++ b/dashboardv2/public/js/models/VTag.js @@ -49,7 +49,7 @@ define(['require', return this.constructor.nonCrudOperation.call(this, url, 'DELETE', options); }, deleteTag: function(options) { -var url = UrlLinks.classificationDefApiUrl(options.typeName); +var url = UrlLinks.getDefApiUrl(null, options.typeName); return this.constructor.nonCrudOperation.call(this, url, 'DELETE', options); }, saveTagAttribute: function(options) { http://git-wip-us.apache.org/repos/asf/atlas/blob/e3a592ce/dashboardv2/public/js/utils/UrlLinks.js -- diff --git a/dashboardv2/public/js/utils/UrlLinks.js b/dashboardv2/public/js/utils/UrlLinks.js index 44fd3b0..e8aee1d 100644 --- a/dashboardv2/public/js/utils/UrlLinks.js +++ b/dashboardv2/public/js/utils/UrlLinks.js @@ -41,11 +41,16 @@ define(['require', 'utils/Enums', 'utils/Utils', 'underscore'], function(require return this.getDefApiUrl('enum', name); }, getDefApiUrl: function(type, name) { -var defApiUrl = this.typedefsUrl(); +var defApiUrl = this.typedefsUrl(), defUrl; if (name) { -return defApiUrl.def + '/name/' + name + '?type=' + type; +defUrl = defApiUrl.def + '/name/' + name; } else { -return defApiUrl.defs + '?type=' + type; +defUrl = defApiUrl.defs; +} +if (type) { +return defUrl += '?type=' + type; +} else { +return defUrl; } }, taxonomiesApiUrl: function() {