You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by am...@apache.org on 2018/10/11 22:34:55 UTC

[2/8] atlas git commit: ATLAS-2845: Rename AtlasCluster to AtlasServer.

ATLAS-2845: Rename AtlasCluster to AtlasServer.


Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/116fb62c
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/116fb62c
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/116fb62c

Branch: refs/heads/master
Commit: 116fb62c9a26efeff389d280f26e3c172ef98cf8
Parents: c0a91c7
Author: Ashutosh Mestry <am...@hortonworks.com>
Authored: Wed Aug 29 21:20:19 2018 -0700
Committer: Ashutosh Mestry <am...@hortonworks.com>
Committed: Thu Oct 11 14:05:48 2018 -0700

----------------------------------------------------------------------
 addons/models/0000-Area0/0010-base_model.json   |  16 +-
 .../001-base_model_replication_attributes.json  |   8 +-
 .../java/org/apache/atlas/AtlasBaseClient.java  |  10 +-
 .../org/apache/atlas/repository/Constants.java  |   4 +-
 .../apache/atlas/model/impexp/AtlasCluster.java | 154 -----------------
 .../apache/atlas/model/impexp/AtlasServer.java  | 168 +++++++++++++++++++
 .../model/impexp/ExportImportAuditEntry.java    |   8 +-
 .../repository/impexp/AtlasServerService.java   | 165 ++++++++++++++++++
 .../atlas/repository/impexp/AuditsWriter.java   |  83 ++++-----
 .../atlas/repository/impexp/ClusterService.java | 143 ----------------
 .../impexp/ExportImportAuditService.java        |  14 +-
 .../atlas/repository/ogm/AtlasClusterDTO.java   |  82 ---------
 .../atlas/repository/ogm/AtlasServerDTO.java    |  85 ++++++++++
 .../ogm/ExportImportAuditEntryDTO.java          |  14 +-
 .../test/java/org/apache/atlas/TestModules.java |   4 +-
 .../impexp/AtlasServerServiceTest.java          | 121 +++++++++++++
 .../repository/impexp/ClusterServiceTest.java   | 121 -------------
 .../impexp/ExportImportAuditServiceTest.java    |  14 +-
 .../impexp/ReplicationEntityAttributeTest.java  |  19 +--
 .../stocksDB-Entities/replicationAttrs.json     |   4 +-
 .../atlas/web/resources/AdminResource.java      |  37 ++--
 .../web/resources/AdminExportImportTestIT.java  |  18 +-
 22 files changed, 671 insertions(+), 621 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/addons/models/0000-Area0/0010-base_model.json
----------------------------------------------------------------------
diff --git a/addons/models/0000-Area0/0010-base_model.json b/addons/models/0000-Area0/0010-base_model.json
index 77774e2..3af0e0e 100644
--- a/addons/models/0000-Area0/0010-base_model.json
+++ b/addons/models/0000-Area0/0010-base_model.json
@@ -100,12 +100,20 @@
             ]
         },
         {
-          "name": "AtlasCluster",
+          "name": "AtlasServer",
           "typeVersion": "1.0",
           "superTypes": [
           ],
           "attributeDefs": [
             {
+              "name": "name",
+              "typeName": "string",
+              "cardinality": "SINGLE",
+              "isIndexable": true,
+              "isOptional": false,
+              "isUnique": false
+            },
+            {
               "name": "displayName",
               "typeName": "string",
               "cardinality": "SINGLE",
@@ -114,7 +122,7 @@
               "isUnique": false
             },
             {
-              "name": "qualifiedName",
+              "name": "fullName",
               "typeName": "string",
               "cardinality": "SINGLE",
               "isIndexable": true,
@@ -258,7 +266,7 @@
               "isUnique": false
             },
             {
-              "name": "sourceClusterName",
+              "name": "sourceServerName",
               "typeName": "string",
               "cardinality": "SINGLE",
               "isIndexable": true,
@@ -266,7 +274,7 @@
               "isUnique": false
             },
             {
-              "name": "targetClusterName",
+              "name": "targetServerName",
               "typeName": "string",
               "cardinality": "SINGLE",
               "isIndexable": true,

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/addons/models/0000-Area0/patches/001-base_model_replication_attributes.json
----------------------------------------------------------------------
diff --git a/addons/models/0000-Area0/patches/001-base_model_replication_attributes.json b/addons/models/0000-Area0/patches/001-base_model_replication_attributes.json
index bee3718..323a818 100644
--- a/addons/models/0000-Area0/patches/001-base_model_replication_attributes.json
+++ b/addons/models/0000-Area0/patches/001-base_model_replication_attributes.json
@@ -8,16 +8,16 @@
       "params": null,
       "attributeDefs": [
         {
-          "name": "replicatedFromCluster",
-          "typeName": "array<AtlasCluster>",
+          "name": "replicatedFrom",
+          "typeName": "array<AtlasServer>",
           "cardinality": "SET",
           "isIndexable": false,
           "isOptional": true,
           "isUnique": false
         },
         {
-          "name": "replicatedToCluster",
-          "typeName": "array<AtlasCluster>",
+          "name": "replicatedTo",
+          "typeName": "array<AtlasServer>",
           "cardinality": "SET",
           "isIndexable": false,
           "isOptional": true,

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/client/common/src/main/java/org/apache/atlas/AtlasBaseClient.java
----------------------------------------------------------------------
diff --git a/client/common/src/main/java/org/apache/atlas/AtlasBaseClient.java b/client/common/src/main/java/org/apache/atlas/AtlasBaseClient.java
index ca772a7..cb7340f 100644
--- a/client/common/src/main/java/org/apache/atlas/AtlasBaseClient.java
+++ b/client/common/src/main/java/org/apache/atlas/AtlasBaseClient.java
@@ -37,7 +37,7 @@ import com.sun.jersey.multipart.MultiPart;
 import com.sun.jersey.multipart.file.FileDataBodyPart;
 import com.sun.jersey.multipart.file.StreamDataBodyPart;
 import com.sun.jersey.multipart.impl.MultiPartWriter;
-import org.apache.atlas.model.impexp.AtlasCluster;
+import org.apache.atlas.model.impexp.AtlasServer;
 import org.apache.atlas.model.impexp.AtlasExportRequest;
 import org.apache.atlas.model.impexp.AtlasImportRequest;
 import org.apache.atlas.model.impexp.AtlasImportResult;
@@ -80,7 +80,7 @@ public abstract class AtlasBaseClient {
     public static final String ADMIN_METRICS = "admin/metrics";
     public static final String ADMIN_IMPORT = "admin/import";
     public static final String ADMIN_EXPORT = "admin/export";
-    public static final String ADMIN_CLUSTER_TEMPLATE = "%sadmin/cluster/%s";
+    public static final String ADMIN_SERVER_TEMPLATE = "%sadmin/server/%s";
 
     public static final String QUERY = "query";
     public static final String LIMIT = "limit";
@@ -526,9 +526,9 @@ public abstract class AtlasBaseClient {
         return new FormDataBodyPart(IMPORT_REQUEST_PARAMTER, AtlasType.toJson(request), MediaType.APPLICATION_JSON_TYPE);
     }
 
-    public AtlasCluster getCluster(String clusterName) throws AtlasServiceException {
-        API api = new API(String.format(ADMIN_CLUSTER_TEMPLATE, BASE_URI, clusterName), HttpMethod.GET, Response.Status.OK);
-        return callAPI(api, AtlasCluster.class, null);
+    public AtlasServer getServer(String serverName) throws AtlasServiceException {
+        API api = new API(String.format(ADMIN_SERVER_TEMPLATE, BASE_URI, serverName), HttpMethod.GET, Response.Status.OK);
+        return callAPI(api, AtlasServer.class, null);
     }
 
     boolean isRetryableException(ClientHandlerException che) {

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/common/src/main/java/org/apache/atlas/repository/Constants.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/repository/Constants.java b/common/src/main/java/org/apache/atlas/repository/Constants.java
index 444dc39..ed2ca4c 100644
--- a/common/src/main/java/org/apache/atlas/repository/Constants.java
+++ b/common/src/main/java/org/apache/atlas/repository/Constants.java
@@ -164,8 +164,8 @@ public final class Constants {
      */
 
     public static final String ATTR_NAME_REFERENCEABLE = "Referenceable.";
-    public static final String ATTR_NAME_REPLICATED_TO_CLUSTER = "replicatedToCluster";
-    public static final String ATTR_NAME_REPLICATED_FROM_CLUSTER = "replicatedFromCluster";
+    public static final String ATTR_NAME_REPLICATED_TO = "replicatedTo";
+    public static final String ATTR_NAME_REPLICATED_FROM = "replicatedFrom";
 
     private Constants() {
     }

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/intg/src/main/java/org/apache/atlas/model/impexp/AtlasCluster.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/model/impexp/AtlasCluster.java b/intg/src/main/java/org/apache/atlas/model/impexp/AtlasCluster.java
deleted file mode 100644
index f70a219..0000000
--- a/intg/src/main/java/org/apache/atlas/model/impexp/AtlasCluster.java
+++ /dev/null
@@ -1,154 +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.atlas.model.impexp;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import org.apache.atlas.model.AtlasBaseModelObject;
-import org.apache.atlas.type.AtlasType;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
-
-@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE)
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class AtlasCluster extends AtlasBaseModelObject implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    public static final String KEY_REPLICATION_DETAILS = "REPL_DETAILS";
-
-    private String name;
-    private String qualifiedName;
-    private Map<String, String> additionalInfo;
-    private List<String> urls;
-
-    public AtlasCluster() {
-        urls = new ArrayList<>();
-        additionalInfo = new HashMap<>();
-    }
-
-    public AtlasCluster(String name, String qualifiedName) {
-        this();
-        this.name = name;
-        this.qualifiedName = qualifiedName;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public void setAdditionalInfo(Map<String, String> additionalInfo) {
-        this.additionalInfo = additionalInfo;
-    }
-
-    public void setAdditionalInfo(String key, String value) {
-        if(additionalInfo == null) {
-            additionalInfo = new HashMap<>();
-        }
-
-        additionalInfo.put(key, value);
-    }
-
-    public void setAdditionalInfoRepl(String guid, long modifiedTimestamp) {
-        Map<String, Object> replicationDetailsMap = null;
-
-        if(additionalInfo != null && additionalInfo.containsKey(KEY_REPLICATION_DETAILS)) {
-            replicationDetailsMap = AtlasType.fromJson(getAdditionalInfo().get(KEY_REPLICATION_DETAILS), Map.class);
-        }
-
-        if(replicationDetailsMap == null) {
-            replicationDetailsMap = new HashMap<>();
-        }
-
-        if(modifiedTimestamp == 0) {
-            replicationDetailsMap.remove(guid);
-        } else {
-            replicationDetailsMap.put(guid, modifiedTimestamp);
-        }
-
-        updateReplicationMap(replicationDetailsMap);
-    }
-
-    private void updateReplicationMap(Map<String, Object> replicationDetailsMap) {
-        String json = AtlasType.toJson(replicationDetailsMap);
-        setAdditionalInfo(KEY_REPLICATION_DETAILS, json);
-    }
-
-
-    public Object getAdditionalInfoRepl(String guid) {
-        if(additionalInfo == null || !additionalInfo.containsKey(KEY_REPLICATION_DETAILS)) {
-            return null;
-        }
-
-        String key = guid;
-        String mapJson = additionalInfo.get(KEY_REPLICATION_DETAILS);
-
-        Map<String, String> replicationDetailsMap = AtlasType.fromJson(mapJson, Map.class);
-        if(!replicationDetailsMap.containsKey(key)) {
-            return null;
-        }
-
-        return replicationDetailsMap.get(key);
-    }
-
-    public Map<String, String> getAdditionalInfo() {
-        return this.additionalInfo;
-    }
-
-    public String getAdditionalInfo(String key) {
-        return additionalInfo.get(key);
-    }
-
-    public String getQualifiedName() {
-        return qualifiedName;
-    }
-
-    public void setQualifiedName(String qualifiedName) {
-        this.qualifiedName = qualifiedName;
-    }
-
-    public void setUrls(List<String> urls) {
-        this.urls = urls;
-    }
-
-    public List<String> getUrls() {
-        return this.urls;
-    }
-
-    @Override
-    public StringBuilder toString(StringBuilder sb) {
-        sb.append(", name=").append(name);
-        sb.append(", qualifiedName=").append(getQualifiedName());
-        sb.append(", urls=").append(urls);
-        sb.append(", additionalInfo=").append(additionalInfo);
-        sb.append("}");
-        return sb;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/intg/src/main/java/org/apache/atlas/model/impexp/AtlasServer.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/model/impexp/AtlasServer.java b/intg/src/main/java/org/apache/atlas/model/impexp/AtlasServer.java
new file mode 100644
index 0000000..517a23e
--- /dev/null
+++ b/intg/src/main/java/org/apache/atlas/model/impexp/AtlasServer.java
@@ -0,0 +1,168 @@
+/**
+ * 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.atlas.model.impexp;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import org.apache.atlas.model.AtlasBaseModelObject;
+import org.apache.atlas.type.AtlasType;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
+
+@JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE)
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class AtlasServer extends AtlasBaseModelObject implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    public static final String KEY_REPLICATION_DETAILS = "REPL_DETAILS";
+
+    private String              name;
+    private String              fullName;
+    private String              displayName;
+    private Map<String, String> additionalInfo = new HashMap<>();
+    private List<String>        urls           = new ArrayList<>();
+
+    public AtlasServer() {
+    }
+
+    public AtlasServer(String name, String fullName) {
+        this(name, name, fullName);
+    }
+
+    public AtlasServer(String name, String displayName, String fullName) {
+        this.name        = name;
+        this.displayName = displayName;
+        this.fullName    = fullName;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public String getFullName() {
+        return fullName;
+    }
+
+    public void setFullName(String fullName) {
+        this.fullName = fullName;
+    }
+
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
+
+    public void setAdditionalInfo(Map<String, String> additionalInfo) {
+        this.additionalInfo = additionalInfo;
+    }
+
+    public Map<String, String> getAdditionalInfo() {
+        return this.additionalInfo;
+    }
+
+    public String getAdditionalInfo(String key) {
+        return additionalInfo.get(key);
+    }
+
+    public void setUrls(List<String> urls) {
+        this.urls = urls;
+    }
+
+    public List<String> getUrls() {
+        return this.urls;
+    }
+
+
+    public void setAdditionalInfo(String key, String value) {
+        if (additionalInfo == null) {
+            additionalInfo = new HashMap<>();
+        }
+
+        additionalInfo.put(key, value);
+    }
+
+    public void setAdditionalInfoRepl(String guid, long modifiedTimestamp) {
+        Map<String, Object> replicationDetailsMap = null;
+
+        if (additionalInfo != null && additionalInfo.containsKey(KEY_REPLICATION_DETAILS)) {
+            replicationDetailsMap = AtlasType.fromJson(getAdditionalInfo().get(KEY_REPLICATION_DETAILS), Map.class);
+        }
+
+        if (replicationDetailsMap == null) {
+            replicationDetailsMap = new HashMap<>();
+        }
+
+        if (modifiedTimestamp == 0) {
+            replicationDetailsMap.remove(guid);
+        } else {
+            replicationDetailsMap.put(guid, modifiedTimestamp);
+        }
+
+        updateReplicationMap(replicationDetailsMap);
+    }
+
+    public Object getAdditionalInfoRepl(String guid) {
+        if (additionalInfo == null || !additionalInfo.containsKey(KEY_REPLICATION_DETAILS)) {
+            return null;
+        }
+
+        String key     = guid;
+        String mapJson = additionalInfo.get(KEY_REPLICATION_DETAILS);
+
+        Map<String, String> replicationDetailsMap = AtlasType.fromJson(mapJson, Map.class);
+
+        if (!replicationDetailsMap.containsKey(key)) {
+            return null;
+        }
+
+        return replicationDetailsMap.get(key);
+    }
+
+    @Override
+    public StringBuilder toString(StringBuilder sb) {
+        sb.append(", name=").append(name);
+        sb.append(", fullName=").append(fullName);
+        sb.append(", displayName=").append(displayName);
+        sb.append(", additionalInfo=").append(additionalInfo);
+        sb.append(", urls=").append(urls);
+
+        return sb;
+    }
+
+    private void updateReplicationMap(Map<String, Object> replicationDetailsMap) {
+        String json = AtlasType.toJson(replicationDetailsMap);
+
+        setAdditionalInfo(KEY_REPLICATION_DETAILS, json);
+    }
+}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/intg/src/main/java/org/apache/atlas/model/impexp/ExportImportAuditEntry.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/model/impexp/ExportImportAuditEntry.java b/intg/src/main/java/org/apache/atlas/model/impexp/ExportImportAuditEntry.java
index a3d7a0e..a199c6e 100644
--- a/intg/src/main/java/org/apache/atlas/model/impexp/ExportImportAuditEntry.java
+++ b/intg/src/main/java/org/apache/atlas/model/impexp/ExportImportAuditEntry.java
@@ -93,19 +93,19 @@ public class ExportImportAuditEntry extends AtlasBaseModelObject implements Seri
         return this.endTime;
     }
 
-    public String getTargetClusterName() {
+    public String getTargetServerName() {
         return this.targetClusterName;
     }
 
-    public String getSourceClusterName() {
+    public String getSourceServerName() {
         return this.sourceClusterName;
     }
 
-    public void setSourceClusterName(String sourceClusterName) {
+    public void setSourceServerName(String sourceClusterName) {
         this.sourceClusterName = sourceClusterName;
     }
 
-    public void setTargetClusterName(String targetClusterName) {
+    public void setTargetServerName(String targetClusterName) {
         this.targetClusterName = targetClusterName;
     }
 

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/impexp/AtlasServerService.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/AtlasServerService.java b/repository/src/main/java/org/apache/atlas/repository/impexp/AtlasServerService.java
new file mode 100644
index 0000000..0761441
--- /dev/null
+++ b/repository/src/main/java/org/apache/atlas/repository/impexp/AtlasServerService.java
@@ -0,0 +1,165 @@
+/**
+ * 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.atlas.repository.impexp;
+
+import org.apache.atlas.annotation.AtlasService;
+import org.apache.atlas.annotation.GraphTransaction;
+import org.apache.atlas.exception.AtlasBaseException;
+import org.apache.atlas.model.impexp.AtlasServer;
+import org.apache.atlas.model.instance.AtlasEntity;
+import org.apache.atlas.model.instance.AtlasObjectId;
+import org.apache.atlas.repository.graphdb.AtlasVertex;
+import org.apache.atlas.repository.ogm.DataAccess;
+import org.apache.atlas.repository.store.graph.AtlasEntityStore;
+import org.apache.atlas.repository.store.graph.v2.EntityGraphMapper;
+import org.apache.atlas.repository.store.graph.v2.EntityGraphRetriever;
+import org.apache.atlas.type.AtlasEntityType;
+import org.apache.atlas.type.AtlasStructType;
+import org.apache.atlas.type.AtlasTypeRegistry;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.List;
+
+@AtlasService
+public class AtlasServerService {
+    private static final Logger LOG = LoggerFactory.getLogger(AtlasServerService.class);
+
+    private final DataAccess dataAccess;
+    private final AtlasEntityStore entityStore;
+    private final AtlasTypeRegistry typeRegistry;
+    private final EntityGraphRetriever entityGraphRetriever;
+
+    @Inject
+    public AtlasServerService(DataAccess dataAccess, AtlasEntityStore entityStore,
+                              AtlasTypeRegistry typeRegistry,
+                              EntityGraphRetriever entityGraphRetriever) {
+
+        this.dataAccess = dataAccess;
+        this.entityStore = entityStore;
+        this.typeRegistry = typeRegistry;
+        this.entityGraphRetriever = entityGraphRetriever;
+    }
+
+    public AtlasServer get(AtlasServer server) throws AtlasBaseException {
+        try {
+            return dataAccess.load(server);
+        } catch (AtlasBaseException e) {
+            LOG.error("dataAccess", e);
+            throw e;
+        }
+    }
+
+    public AtlasServer getCreateAtlasServer(String name, String fullName) throws AtlasBaseException {
+        AtlasServer defaultServer = new AtlasServer(name, fullName);
+        AtlasServer server = getAtlasServer(defaultServer);
+        if (server == null) {
+            return save(defaultServer);
+        }
+
+        return server;
+    }
+
+    private AtlasServer getAtlasServer(AtlasServer server) {
+        try {
+            return get(server);
+        } catch (AtlasBaseException ex) {
+            return null;
+        }
+    }
+
+    @GraphTransaction
+    public AtlasServer save(AtlasServer server) {
+
+        try {
+            return dataAccess.save(server);
+        } catch (AtlasBaseException e) {
+            return server;
+        }
+    }
+
+    @GraphTransaction
+    public void updateEntitiesWithServer(AtlasServer server, List<String> entityGuids, String attributeName) throws AtlasBaseException {
+        if (server != null && StringUtils.isEmpty(server.getGuid())) {
+            return;
+        }
+
+        AtlasObjectId objectId = getObjectId(server);
+        for (String guid : entityGuids) {
+            AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo = entityStore.getById(guid);
+            updateAttribute(entityWithExtInfo, attributeName, objectId);
+        }
+    }
+
+    private AtlasObjectId getObjectId(AtlasServer server) {
+        return new AtlasObjectId(server.getGuid(), AtlasServer.class.getSimpleName());
+    }
+
+
+    /**
+     * Attribute passed by name is updated with the value passed.
+     * @param entityWithExtInfo Entity to be updated
+     * @param propertyName attribute name
+     * @param objectId Value to be set for attribute
+     */
+    private void updateAttribute(AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo,
+                                 String propertyName,
+                                 AtlasObjectId objectId) {
+        String value = EntityGraphMapper.getSoftRefFormattedValue(objectId);
+        updateAttribute(entityWithExtInfo.getEntity(), propertyName, value);
+        for (AtlasEntity e : entityWithExtInfo.getReferredEntities().values()) {
+            updateAttribute(e, propertyName, value);
+        }
+    }
+
+    private void updateAttribute(AtlasEntity entity, String attributeName, Object value) {
+        if(entity.hasAttribute(attributeName) == false) return;
+
+        try {
+            AtlasVertex vertex = entityGraphRetriever.getEntityVertex(entity.getGuid());
+            if(vertex == null) {
+                return;
+            }
+
+            String qualifiedFieldName = getVertexPropertyName(entity, attributeName);
+            List list = vertex.getListProperty(qualifiedFieldName);
+            if (CollectionUtils.isEmpty(list)) {
+                list = new ArrayList();
+            }
+
+            if (!list.contains(value)) {
+                list.add(value);
+                vertex.setListProperty(qualifiedFieldName, list);
+            }
+        }
+        catch (AtlasBaseException ex) {
+            LOG.error("error retrieving vertex from guid: {}", entity.getGuid(), ex);
+        }
+    }
+
+    private String getVertexPropertyName(AtlasEntity entity, String attributeName) throws AtlasBaseException {
+        AtlasEntityType type = (AtlasEntityType) typeRegistry.getType(entity.getTypeName());
+        AtlasStructType.AtlasAttribute attribute = type.getAttribute(attributeName);
+        return attribute.getVertexPropertyName();
+    }
+}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/impexp/AuditsWriter.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/AuditsWriter.java b/repository/src/main/java/org/apache/atlas/repository/impexp/AuditsWriter.java
index ced00b9..5b5d022 100644
--- a/repository/src/main/java/org/apache/atlas/repository/impexp/AuditsWriter.java
+++ b/repository/src/main/java/org/apache/atlas/repository/impexp/AuditsWriter.java
@@ -22,7 +22,7 @@ import org.apache.atlas.ApplicationProperties;
 import org.apache.atlas.AtlasConstants;
 import org.apache.atlas.AtlasException;
 import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasCluster;
+import org.apache.atlas.model.impexp.AtlasServer;
 import org.apache.atlas.model.impexp.AtlasExportRequest;
 import org.apache.atlas.model.impexp.AtlasExportResult;
 import org.apache.atlas.model.impexp.AtlasImportRequest;
@@ -45,15 +45,15 @@ public class AuditsWriter {
     private static final Logger LOG = LoggerFactory.getLogger(AuditsWriter.class);
     private static final String CLUSTER_NAME_DEFAULT = "default";
 
-    private ClusterService clusterService;
+    private AtlasServerService atlasServerService;
     private ExportImportAuditService auditService;
 
     private ExportAudits auditForExport = new ExportAudits();
     private ImportAudits auditForImport = new ImportAudits();
 
     @Inject
-    public AuditsWriter(ClusterService clusterService, ExportImportAuditService auditService) {
-        this.clusterService = clusterService;
+    public AuditsWriter(AtlasServerService atlasServerService, ExportImportAuditService auditService) {
+        this.atlasServerService = atlasServerService;
         this.auditService = auditService;
     }
 
@@ -63,7 +63,9 @@ public class AuditsWriter {
         auditForExport.add(userName, result, startTime, endTime, entityCreationOrder);
     }
 
-    public void write(String userName, AtlasImportResult result, long startTime, long endTime, List<String> entityCreationOrder) throws AtlasBaseException {
+    public void write(String userName, AtlasImportResult result,
+                      long startTime, long endTime,
+                      List<String> entityCreationOrder) throws AtlasBaseException {
         auditForImport.add(userName, result, startTime, endTime, entityCreationOrder);
     }
 
@@ -72,7 +74,7 @@ public class AuditsWriter {
     }
 
     private void updateReplicationAttribute(boolean isReplicationSet,
-                                            String clusterName,
+                                            String serverName,
                                             List<String> exportedGuids,
                                             String attrNameReplicated,
                                             long lastModifiedTimestamp) throws AtlasBaseException {
@@ -80,30 +82,32 @@ public class AuditsWriter {
             return;
         }
 
-        AtlasCluster cluster = saveCluster(clusterName, exportedGuids.get(0), lastModifiedTimestamp);
-        clusterService.updateEntitiesWithCluster(cluster, exportedGuids, attrNameReplicated);
+        AtlasServer server = saveServer(serverName, exportedGuids.get(0), lastModifiedTimestamp);
+        atlasServerService.updateEntitiesWithServer(server, exportedGuids, attrNameReplicated);
     }
 
     private String getClusterNameFromOptions(Map options, String key) {
         return options.containsKey(key)
                 ? (String) options.get(key)
-                : "";
+                : StringUtils.EMPTY;
     }
 
-    private AtlasCluster saveCluster(String clusterName) throws AtlasBaseException {
-        AtlasCluster cluster = new AtlasCluster(clusterName, clusterName);
-        return clusterService.save(cluster);
+    private AtlasServer saveServer(String name) throws AtlasBaseException {
+        return atlasServerService.save(new AtlasServer(name, name));
     }
 
-    private AtlasCluster saveCluster(String clusterName, String entityGuid, long lastModifiedTimestamp) throws AtlasBaseException {
-        AtlasCluster cluster = new AtlasCluster(clusterName, clusterName);
-        cluster.setAdditionalInfoRepl(entityGuid, lastModifiedTimestamp);
+    private AtlasServer saveServer(String name,
+                                   String entityGuid,
+                                   long lastModifiedTimestamp) throws AtlasBaseException {
+
+        AtlasServer server = new AtlasServer(name, name);
+        server.setAdditionalInfoRepl(entityGuid, lastModifiedTimestamp);
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("saveCluster: {}", cluster);
+            LOG.debug("saveServer: {}", server);
         }
 
-        return clusterService.save(cluster);
+        return atlasServerService.save(server);
     }
 
     public static String getCurrentClusterName() {
@@ -113,12 +117,12 @@ public class AuditsWriter {
             LOG.error("getCurrentClusterName", e);
         }
 
-        return "";
+        return StringUtils.EMPTY;
     }
 
     private class ExportAudits {
         private AtlasExportRequest request;
-        private String targetClusterName;
+        private String targetServerName;
         private String optionKeyReplicatedTo;
         private boolean replicationOptionState;
 
@@ -129,9 +133,9 @@ public class AuditsWriter {
             request = result.getRequest();
             replicationOptionState = isReplicationOptionSet(request.getOptions(), optionKeyReplicatedTo);
 
-            saveClusters();
+            saveServers();
 
-            auditService.add(userName, getCurrentClusterName(), targetClusterName,
+            auditService.add(userName, getCurrentClusterName(), targetServerName,
                     ExportImportAuditEntry.OPERATION_EXPORT,
                     AtlasType.toJson(result), startTime, endTime, !entityGuids.isEmpty());
 
@@ -139,16 +143,16 @@ public class AuditsWriter {
                 return;
             }
 
-            updateReplicationAttribute(replicationOptionState, targetClusterName,
-                    entityGuids, Constants.ATTR_NAME_REPLICATED_TO_CLUSTER, result.getLastModifiedTimestamp());
+            updateReplicationAttribute(replicationOptionState, targetServerName,
+                    entityGuids, Constants.ATTR_NAME_REPLICATED_TO, result.getLastModifiedTimestamp());
         }
 
-        private void saveClusters() throws AtlasBaseException {
-            saveCluster(getCurrentClusterName());
+        private void saveServers() throws AtlasBaseException {
+            saveServer(getCurrentClusterName());
 
-            targetClusterName = getClusterNameFromOptions(request.getOptions(), optionKeyReplicatedTo);
-            if(StringUtils.isNotEmpty(targetClusterName)) {
-                saveCluster(targetClusterName);
+            targetServerName = getClusterNameFromOptions(request.getOptions(), optionKeyReplicatedTo);
+            if(StringUtils.isNotEmpty(targetServerName)) {
+                saveServer(targetServerName);
             }
         }
     }
@@ -156,8 +160,7 @@ public class AuditsWriter {
     private class ImportAudits {
         private AtlasImportRequest request;
         private boolean replicationOptionState;
-        private String sourceClusterName;
-        private AtlasCluster sourceCluster;
+        private String sourceServerName;
         private String optionKeyReplicatedFrom;
 
         public void add(String userName, AtlasImportResult result,
@@ -167,10 +170,10 @@ public class AuditsWriter {
             request = result.getRequest();
             replicationOptionState = isReplicationOptionSet(request.getOptions(), optionKeyReplicatedFrom);
 
-            saveClusters();
+            saveServers();
 
             auditService.add(userName,
-                    sourceClusterName, getCurrentClusterName(),
+                    sourceServerName, getCurrentClusterName(),
                     ExportImportAuditEntry.OPERATION_IMPORT,
                     AtlasType.toJson(result), startTime, endTime, !entityGuids.isEmpty());
 
@@ -178,23 +181,23 @@ public class AuditsWriter {
                 return;
             }
 
-            updateReplicationAttribute(replicationOptionState, this.sourceClusterName, entityGuids,
-                    Constants.ATTR_NAME_REPLICATED_FROM_CLUSTER, result.getExportResult().getLastModifiedTimestamp());
+            updateReplicationAttribute(replicationOptionState, this.sourceServerName, entityGuids,
+                    Constants.ATTR_NAME_REPLICATED_FROM, result.getExportResult().getLastModifiedTimestamp());
         }
 
-        private void saveClusters() throws AtlasBaseException {
-            saveCluster(getCurrentClusterName());
+        private void saveServers() throws AtlasBaseException {
+            saveServer(getCurrentClusterName());
 
-            sourceClusterName = getClusterNameFromOptionsState();
-            if(StringUtils.isNotEmpty(sourceClusterName)) {
-                this.sourceCluster = saveCluster(sourceClusterName);
+            sourceServerName = getClusterNameFromOptionsState();
+            if(StringUtils.isNotEmpty(sourceServerName)) {
+                saveServer(sourceServerName);
             }
         }
 
         private String getClusterNameFromOptionsState() {
             return replicationOptionState
                     ? getClusterNameFromOptions(request.getOptions(), optionKeyReplicatedFrom)
-                    : "";
+                    : StringUtils.EMPTY;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/impexp/ClusterService.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/ClusterService.java b/repository/src/main/java/org/apache/atlas/repository/impexp/ClusterService.java
deleted file mode 100644
index 5da4b75..0000000
--- a/repository/src/main/java/org/apache/atlas/repository/impexp/ClusterService.java
+++ /dev/null
@@ -1,143 +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.atlas.repository.impexp;
-
-import org.apache.atlas.annotation.AtlasService;
-import org.apache.atlas.annotation.GraphTransaction;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasCluster;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.repository.graphdb.AtlasVertex;
-import org.apache.atlas.repository.ogm.DataAccess;
-import org.apache.atlas.repository.store.graph.AtlasEntityStore;
-import org.apache.atlas.repository.store.graph.v2.EntityGraphMapper;
-import org.apache.atlas.repository.store.graph.v2.EntityGraphRetriever;
-import org.apache.atlas.type.AtlasEntityType;
-import org.apache.atlas.type.AtlasStructType;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.inject.Inject;
-import java.util.ArrayList;
-import java.util.List;
-
-@AtlasService
-public class ClusterService {
-    private static final Logger LOG = LoggerFactory.getLogger(ClusterService.class);
-
-    private final DataAccess dataAccess;
-    private final AtlasEntityStore entityStore;
-    private final AtlasTypeRegistry typeRegistry;
-    private final EntityGraphRetriever entityGraphRetriever;
-
-    @Inject
-    public ClusterService(DataAccess dataAccess, AtlasEntityStore entityStore, AtlasTypeRegistry typeRegistry, EntityGraphRetriever entityGraphRetriever) {
-        this.dataAccess = dataAccess;
-        this.entityStore = entityStore;
-        this.typeRegistry = typeRegistry;
-        this.entityGraphRetriever = entityGraphRetriever;
-    }
-
-    public AtlasCluster get(AtlasCluster cluster) throws AtlasBaseException {
-        try {
-            return dataAccess.load(cluster);
-        } catch (AtlasBaseException e) {
-            LOG.error("dataAccess", e);
-            throw e;
-        }
-    }
-
-    @GraphTransaction
-    public AtlasCluster save(AtlasCluster clusterInfo) {
-        try {
-            return dataAccess.save(clusterInfo);
-        } catch (AtlasBaseException e) {
-            return clusterInfo;
-        }
-    }
-
-    @GraphTransaction
-    public void updateEntitiesWithCluster(AtlasCluster cluster, List<String> entityGuids, String attributeName) throws AtlasBaseException {
-        if (cluster != null && StringUtils.isEmpty(cluster.getGuid())) {
-            return;
-        }
-
-        AtlasObjectId objectId = getObjectId(cluster);
-        for (String guid : entityGuids) {
-            AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo = entityStore.getById(guid);
-            updateAttribute(entityWithExtInfo, attributeName, objectId);
-        }
-    }
-
-    private AtlasObjectId getObjectId(AtlasCluster cluster) {
-        return new AtlasObjectId(cluster.getGuid(), AtlasCluster.class.getSimpleName());
-    }
-
-
-    /**
-     * Attribute passed by name is updated with the value passed.
-     * @param entityWithExtInfo Entity to be updated
-     * @param propertyName attribute name
-     * @param objectId Value to be set for attribute
-     */
-    private void updateAttribute(AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo,
-                                 String propertyName,
-                                 AtlasObjectId objectId) {
-        String value = EntityGraphMapper.getSoftRefFormattedValue(objectId);
-        updateAttribute(entityWithExtInfo.getEntity(), propertyName, value);
-        for (AtlasEntity e : entityWithExtInfo.getReferredEntities().values()) {
-            updateAttribute(e, propertyName, value);
-        }
-    }
-
-    private void updateAttribute(AtlasEntity entity, String attributeName, Object value) {
-        if(entity.hasAttribute(attributeName) == false) return;
-
-        try {
-            AtlasVertex vertex = entityGraphRetriever.getEntityVertex(entity.getGuid());
-            if(vertex == null) {
-                return;
-            }
-
-            String qualifiedFieldName = getVertexPropertyName(entity, attributeName);
-            List list = vertex.getListProperty(qualifiedFieldName);
-            if (CollectionUtils.isEmpty(list)) {
-                list = new ArrayList();
-            }
-
-            if (!list.contains(value)) {
-                list.add(value);
-                vertex.setListProperty(qualifiedFieldName, list);
-            }
-        }
-        catch (AtlasBaseException ex) {
-            LOG.error("error retrieving vertex from guid: {}", entity.getGuid(), ex);
-        }
-    }
-
-    private String getVertexPropertyName(AtlasEntity entity, String attributeName) throws AtlasBaseException {
-        AtlasEntityType type = (AtlasEntityType) typeRegistry.getType(entity.getTypeName());
-        AtlasStructType.AtlasAttribute attribute = type.getAttribute(attributeName);
-        return attribute.getVertexPropertyName();
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/impexp/ExportImportAuditService.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/ExportImportAuditService.java b/repository/src/main/java/org/apache/atlas/repository/impexp/ExportImportAuditService.java
index 89b1110..255b72f 100644
--- a/repository/src/main/java/org/apache/atlas/repository/impexp/ExportImportAuditService.java
+++ b/repository/src/main/java/org/apache/atlas/repository/impexp/ExportImportAuditService.java
@@ -120,10 +120,10 @@ public class ExportImportAuditService {
         addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_START_TIME, startTime);
         addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_END_TIME, endTime);
 
-        addClusterFilterCriteria(criteria, cluster);
+        addServerFilterCriteria(criteria, cluster);
     }
 
-    private void addClusterFilterCriteria(SearchParameters.FilterCriteria parentCriteria, String cluster) {
+    private void addServerFilterCriteria(SearchParameters.FilterCriteria parentCriteria, String cluster) {
         if (StringUtils.isEmpty(cluster)) {
             return;
         }
@@ -132,8 +132,8 @@ public class ExportImportAuditService {
         criteria.setCondition(SearchParameters.FilterCriteria.Condition.OR);
         criteria.setCriterion(new ArrayList<>());
 
-        addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_SOURCE_CLUSTER_NAME, cluster);
-        addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_TARGET_CLUSTER_NAME, cluster);
+        addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_SOURCE_SERVER_NAME, cluster);
+        addParameterIfValueNotEmpty(criteria, ExportImportAuditEntryDTO.PROPERTY_TARGET_SERVER_NAME, cluster);
 
         parentCriteria.getCriterion().add(criteria);
     }
@@ -158,8 +158,8 @@ public class ExportImportAuditService {
         ExportImportAuditEntry entry = new ExportImportAuditEntry();
 
         entry.setUserName(userName);
-        entry.setSourceClusterName(sourceCluster);
-        entry.setTargetClusterName(targetCluster);
+        entry.setSourceServerName(sourceCluster);
+        entry.setTargetServerName(targetCluster);
         entry.setOperation(operation);
         entry.setResultSummary(result);
         entry.setStartTime(startTime);
@@ -167,6 +167,6 @@ public class ExportImportAuditService {
 
         save(entry);
         LOG.info("addAuditEntry: user: {}, source: {}, target: {}, operation: {}", entry.getUserName(),
-                entry.getSourceClusterName(), entry.getTargetClusterName(), entry.getOperation());
+                entry.getSourceServerName(), entry.getTargetServerName(), entry.getOperation());
     }
 }

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasClusterDTO.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasClusterDTO.java b/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasClusterDTO.java
deleted file mode 100644
index 3427bd6..0000000
--- a/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasClusterDTO.java
+++ /dev/null
@@ -1,82 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.atlas.repository.ogm;
-
-import org.apache.atlas.model.impexp.AtlasCluster;
-import org.apache.atlas.model.instance.AtlasEntity;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.springframework.stereotype.Component;
-
-import javax.inject.Inject;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class AtlasClusterDTO extends AbstractDataTransferObject<AtlasCluster> {
-    private final String PROPERTY_CLUSTER_NAME = "displayName";
-    private final String PROPERTY_QUALIFIED_NAME = "qualifiedName";
-    private final String PROPERTY_ADDITIONAL_INFO = "additionalInfo";
-    private final String PROPERTY_URLS = "urls";
-
-    @Inject
-    public AtlasClusterDTO(AtlasTypeRegistry typeRegistry) {
-        super(typeRegistry, AtlasCluster.class, AtlasCluster.class.getSimpleName());
-    }
-
-    public AtlasCluster from(AtlasEntity entity) {
-        AtlasCluster cluster = new AtlasCluster();
-
-        setGuid(cluster, entity);
-        cluster.setName((String) entity.getAttribute(PROPERTY_CLUSTER_NAME));
-        cluster.setQualifiedName((String) entity.getAttribute(PROPERTY_QUALIFIED_NAME));
-        cluster.setAdditionalInfo((Map<String,String>) entity.getAttribute(PROPERTY_ADDITIONAL_INFO));
-        cluster.setUrls((List<String>) entity.getAttribute(PROPERTY_URLS));
-
-        return cluster;
-    }
-
-    public AtlasCluster from(AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo) {
-        return from(entityWithExtInfo.getEntity());
-    }
-
-    @Override
-    public AtlasEntity toEntity(AtlasCluster obj) {
-        AtlasEntity entity = getDefaultAtlasEntity(obj);
-
-        entity.setAttribute(PROPERTY_CLUSTER_NAME, obj.getName());
-        entity.setAttribute(PROPERTY_QUALIFIED_NAME, obj.getQualifiedName());
-        entity.setAttribute(PROPERTY_ADDITIONAL_INFO, obj.getAdditionalInfo());
-        entity.setAttribute(PROPERTY_URLS, obj.getUrls());
-
-        return entity;
-    }
-
-    @Override
-    public AtlasEntity.AtlasEntityWithExtInfo toEntityWithExtInfo(AtlasCluster obj) {
-        return new AtlasEntity.AtlasEntityWithExtInfo(toEntity(obj));
-    }
-
-    @Override
-    public Map<String, Object> getUniqueAttributes(final AtlasCluster obj) {
-        return new HashMap<String, Object>() {{
-            put(PROPERTY_QUALIFIED_NAME, obj.getQualifiedName());
-        }};
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasServerDTO.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasServerDTO.java b/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasServerDTO.java
new file mode 100644
index 0000000..2f7ca11
--- /dev/null
+++ b/repository/src/main/java/org/apache/atlas/repository/ogm/AtlasServerDTO.java
@@ -0,0 +1,85 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.atlas.repository.ogm;
+
+import org.apache.atlas.model.impexp.AtlasServer;
+import org.apache.atlas.model.instance.AtlasEntity;
+import org.apache.atlas.type.AtlasTypeRegistry;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AtlasServerDTO extends AbstractDataTransferObject<AtlasServer> {
+    private final String PROPERTY_NAME = "name";
+    private final String PROPERTY_DISPLAY_NAME = "displayName";
+    private final String PROPERTY_FULL_NAME = "fullName";
+    private final String PROPERTY_ADDITIONAL_INFO = "additionalInfo";
+    private final String PROPERTY_URLS = "urls";
+
+    @Inject
+    public AtlasServerDTO(AtlasTypeRegistry typeRegistry) {
+        super(typeRegistry, AtlasServer.class, AtlasServer.class.getSimpleName());
+    }
+
+    public AtlasServer from(AtlasEntity entity) {
+        AtlasServer cluster = new AtlasServer();
+
+        setGuid(cluster, entity);
+        cluster.setName((String) entity.getAttribute(PROPERTY_NAME));
+        cluster.setFullName((String) entity.getAttribute(PROPERTY_FULL_NAME));
+        cluster.setDisplayName((String) entity.getAttribute(PROPERTY_DISPLAY_NAME));
+        cluster.setAdditionalInfo((Map<String,String>) entity.getAttribute(PROPERTY_ADDITIONAL_INFO));
+        cluster.setUrls((List<String>) entity.getAttribute(PROPERTY_URLS));
+
+        return cluster;
+    }
+
+    public AtlasServer from(AtlasEntity.AtlasEntityWithExtInfo entityWithExtInfo) {
+        return from(entityWithExtInfo.getEntity());
+    }
+
+    @Override
+    public AtlasEntity toEntity(AtlasServer obj) {
+        AtlasEntity entity = getDefaultAtlasEntity(obj);
+
+        entity.setAttribute(PROPERTY_NAME, obj.getName());
+        entity.setAttribute(PROPERTY_DISPLAY_NAME, obj.getDisplayName());
+        entity.setAttribute(PROPERTY_FULL_NAME, obj.getFullName());
+        entity.setAttribute(PROPERTY_ADDITIONAL_INFO, obj.getAdditionalInfo());
+        entity.setAttribute(PROPERTY_URLS, obj.getUrls());
+
+        return entity;
+    }
+
+    @Override
+    public AtlasEntity.AtlasEntityWithExtInfo toEntityWithExtInfo(AtlasServer obj) {
+        return new AtlasEntity.AtlasEntityWithExtInfo(toEntity(obj));
+    }
+
+    @Override
+    public Map<String, Object> getUniqueAttributes(final AtlasServer obj) {
+        return new HashMap<String, Object>() {{
+            put(PROPERTY_FULL_NAME, obj.getFullName());
+        }};
+    }
+}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/main/java/org/apache/atlas/repository/ogm/ExportImportAuditEntryDTO.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/ogm/ExportImportAuditEntryDTO.java b/repository/src/main/java/org/apache/atlas/repository/ogm/ExportImportAuditEntryDTO.java
index fd19c80..f7bc85c 100644
--- a/repository/src/main/java/org/apache/atlas/repository/ogm/ExportImportAuditEntryDTO.java
+++ b/repository/src/main/java/org/apache/atlas/repository/ogm/ExportImportAuditEntryDTO.java
@@ -40,14 +40,14 @@ public class ExportImportAuditEntryDTO extends AbstractDataTransferObject<Export
     public static final String PROPERTY_START_TIME             = "operationStartTime";
     public static final String PROPERTY_END_TIME               = "operationEndTime";
     public static final String PROPERTY_RESULT_SUMMARY         = "resultSummary";
-    public static final String PROPERTY_SOURCE_CLUSTER_NAME    = "sourceClusterName";
-    public static final String PROPERTY_TARGET_CLUSTER_NAME    = "targetClusterName";
+    public static final String PROPERTY_SOURCE_SERVER_NAME     = "sourceServerName";
+    public static final String PROPERTY_TARGET_SERVER_NAME     = "targetServerName";
 
     private static final Set<String> ATTRIBUTE_NAMES = new HashSet<>(Arrays.asList(PROPERTY_USER_NAME,
             PROPERTY_OPERATION, PROPERTY_OPERATION_PARAMS,
             PROPERTY_START_TIME, PROPERTY_END_TIME,
             PROPERTY_RESULT_SUMMARY,
-            PROPERTY_SOURCE_CLUSTER_NAME, PROPERTY_TARGET_CLUSTER_NAME));
+            PROPERTY_SOURCE_SERVER_NAME, PROPERTY_TARGET_SERVER_NAME));
 
     @Inject
     public ExportImportAuditEntryDTO(AtlasTypeRegistry typeRegistry) {
@@ -68,8 +68,8 @@ public class ExportImportAuditEntryDTO extends AbstractDataTransferObject<Export
         entry.setOperationParams((String) attributes.get(PROPERTY_OPERATION_PARAMS));
         entry.setStartTime((long) attributes.get(PROPERTY_START_TIME));
         entry.setEndTime((long) attributes.get(PROPERTY_END_TIME));
-        entry.setSourceClusterName((String) attributes.get(PROPERTY_SOURCE_CLUSTER_NAME));
-        entry.setTargetClusterName((String) attributes.get(PROPERTY_TARGET_CLUSTER_NAME));
+        entry.setSourceServerName((String) attributes.get(PROPERTY_SOURCE_SERVER_NAME));
+        entry.setTargetServerName((String) attributes.get(PROPERTY_TARGET_SERVER_NAME));
         entry.setResultSummary((String) attributes.get(PROPERTY_RESULT_SUMMARY));
 
         return entry;
@@ -94,8 +94,8 @@ public class ExportImportAuditEntryDTO extends AbstractDataTransferObject<Export
         entity.setAttribute(PROPERTY_OPERATION_PARAMS, obj.getOperationParams());
         entity.setAttribute(PROPERTY_START_TIME, obj.getStartTime());
         entity.setAttribute(PROPERTY_END_TIME, obj.getEndTime());
-        entity.setAttribute(PROPERTY_SOURCE_CLUSTER_NAME, obj.getSourceClusterName());
-        entity.setAttribute(PROPERTY_TARGET_CLUSTER_NAME, obj.getTargetClusterName());
+        entity.setAttribute(PROPERTY_SOURCE_SERVER_NAME, obj.getSourceServerName());
+        entity.setAttribute(PROPERTY_TARGET_SERVER_NAME, obj.getTargetServerName());
         entity.setAttribute(PROPERTY_RESULT_SUMMARY, obj.getResultSummary());
 
         return entity;

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/java/org/apache/atlas/TestModules.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/TestModules.java b/repository/src/test/java/org/apache/atlas/TestModules.java
index 4549d6b..d3d30d5 100644
--- a/repository/src/test/java/org/apache/atlas/TestModules.java
+++ b/repository/src/test/java/org/apache/atlas/TestModules.java
@@ -41,7 +41,7 @@ import org.apache.atlas.repository.graphdb.AtlasGraph;
 import org.apache.atlas.repository.graphdb.GraphDBMigrator;
 import org.apache.atlas.repository.graphdb.janus.migration.GraphDBGraphSONMigrator;
 import org.apache.atlas.repository.impexp.ExportService;
-import org.apache.atlas.repository.ogm.AtlasClusterDTO;
+import org.apache.atlas.repository.ogm.AtlasServerDTO;
 import org.apache.atlas.repository.ogm.ExportImportAuditEntryDTO;
 import org.apache.atlas.repository.ogm.profiles.AtlasSavedSearchDTO;
 import org.apache.atlas.repository.ogm.profiles.AtlasUserProfileDTO;
@@ -172,7 +172,7 @@ public class TestModules {
             availableDTOs.addBinding().to(AtlasGlossaryDTO.class);
             availableDTOs.addBinding().to(AtlasGlossaryTermDTO.class);
             availableDTOs.addBinding().to(AtlasGlossaryCategoryDTO.class);
-            availableDTOs.addBinding().to(AtlasClusterDTO.class);
+            availableDTOs.addBinding().to(AtlasServerDTO.class);
             availableDTOs.addBinding().to(ExportImportAuditEntryDTO.class);
 
             bind(DTORegistry.class).asEagerSingleton();

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasServerServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasServerServiceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasServerServiceTest.java
new file mode 100644
index 0000000..78865c5
--- /dev/null
+++ b/repository/src/test/java/org/apache/atlas/repository/impexp/AtlasServerServiceTest.java
@@ -0,0 +1,121 @@
+/**
+ * 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.atlas.repository.impexp;
+
+import org.apache.atlas.TestModules;
+import org.apache.atlas.exception.AtlasBaseException;
+import org.apache.atlas.model.impexp.AtlasServer;
+import org.apache.atlas.model.instance.AtlasObjectId;
+import org.apache.atlas.repository.Constants;
+import org.apache.atlas.store.AtlasTypeDefStore;
+import org.apache.atlas.type.AtlasTypeRegistry;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
+import javax.inject.Inject;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.apache.atlas.repository.Constants.ATTR_NAME_REFERENCEABLE;
+import static org.apache.atlas.repository.impexp.ZipFileResourceTestUtils.loadBaseModel;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotEquals;
+import static org.testng.Assert.assertNotNull;
+
+@Guice(modules = TestModules.TestOnlyModule.class)
+public class AtlasServerServiceTest {
+    private final String TOP_LEVEL_ENTITY_NAME  = "db1@cl1";
+    private final String SERVER_NAME            = "testCl1";
+    private final String TARGET_SERVER_NAME     = "testCl2";
+    private final String QUALIFIED_NAME_STOCKS  = "stocks@cl1";
+    private final String TYPE_HIVE_DB           = "hive_db";
+
+    @Inject
+    private AtlasTypeDefStore typeDefStore;
+
+    @Inject
+    private AtlasTypeRegistry typeRegistry;
+
+    @Inject
+    private AtlasServerService atlasServerService;
+    private String topLevelEntityGuid = "AAA-BBB-CCC";
+
+    @BeforeClass
+    public void setup() throws IOException, AtlasBaseException {
+        loadBaseModel(typeDefStore, typeRegistry);
+    }
+
+    @Test
+    public void saveAndRetrieveServerInfo() throws AtlasBaseException {
+        AtlasServer expected = getServer(SERVER_NAME + "_1", TOP_LEVEL_ENTITY_NAME, "EXPORT", 0l, TARGET_SERVER_NAME);
+        AtlasServer expected2 = getServer(TARGET_SERVER_NAME + "_1", TOP_LEVEL_ENTITY_NAME, "IMPORT", 0L, TARGET_SERVER_NAME);
+        AtlasServer expected3 = getServer(TARGET_SERVER_NAME + "_3", TOP_LEVEL_ENTITY_NAME, "IMPORT", 0, TARGET_SERVER_NAME);
+
+        AtlasServer actual = atlasServerService.save(expected);
+        AtlasServer actual2 = atlasServerService.save(expected2);
+        AtlasServer actual3 = atlasServerService.save(expected3);
+        AtlasServer actual2x = atlasServerService.get(expected2);
+
+        assertNotNull(actual.getGuid());
+        assertNotNull(actual2.getGuid());
+        assertNotEquals(actual.getGuid(), actual2.getGuid());
+        assertNotEquals(actual2.getGuid(), actual3.getGuid());
+
+        assertEquals(actual2.getGuid(), actual2x.getGuid());
+
+
+        assertEquals(actual.getName(), expected.getName());
+        assertEquals(actual.getFullName(), expected.getFullName());
+    }
+
+    private AtlasServer getServer(String serverName, String topLevelEntity, String operation, long nextModifiedTimestamp, String targetServerName) {
+        AtlasServer cluster = new AtlasServer(serverName, serverName);
+
+        Map<String, String> syncMap = new HashMap<>();
+
+        syncMap.put("topLevelEntity", topLevelEntity);
+        syncMap.put("operation", operation);
+        syncMap.put("nextModifiedTimestamp", Long.toString(nextModifiedTimestamp));
+        syncMap.put("targetCluster", targetServerName);
+
+        cluster.setAdditionalInfo(syncMap);
+
+        return cluster;
+    }
+
+    @Test
+    public void verifyAdditionalInfo() throws AtlasBaseException {
+        final long expectedLastModifiedTimestamp = 200L;
+
+        AtlasServer expectedCluster = atlasServerService.getCreateAtlasServer(SERVER_NAME, SERVER_NAME);
+
+        String qualifiedNameAttr = Constants.QUALIFIED_NAME.replace(ATTR_NAME_REFERENCEABLE, "");
+        AtlasObjectId objectId = new AtlasObjectId(TYPE_HIVE_DB, qualifiedNameAttr, QUALIFIED_NAME_STOCKS);
+        expectedCluster.setAdditionalInfoRepl(topLevelEntityGuid, expectedLastModifiedTimestamp);
+
+        AtlasServer actualCluster = atlasServerService.save(expectedCluster);
+        assertEquals(actualCluster.getName(), expectedCluster.getName());
+
+        int actualModifiedTimestamp = (int) actualCluster.getAdditionalInfoRepl(topLevelEntityGuid);
+
+        assertEquals(actualModifiedTimestamp, expectedLastModifiedTimestamp);
+    }
+}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/java/org/apache/atlas/repository/impexp/ClusterServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ClusterServiceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ClusterServiceTest.java
deleted file mode 100644
index 2e4481e..0000000
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ClusterServiceTest.java
+++ /dev/null
@@ -1,121 +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.atlas.repository.impexp;
-
-import org.apache.atlas.TestModules;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasCluster;
-import org.apache.atlas.model.instance.AtlasObjectId;
-import org.apache.atlas.repository.Constants;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.type.AtlasTypeRegistry;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Guice;
-import org.testng.annotations.Test;
-
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.atlas.repository.Constants.ATTR_NAME_REFERENCEABLE;
-import static org.apache.atlas.repository.impexp.ZipFileResourceTestUtils.loadBaseModel;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-
-@Guice(modules = TestModules.TestOnlyModule.class)
-public class ClusterServiceTest {
-    private final String TOP_LEVEL_ENTITY_NAME = "db1@cl1";
-    private final String CLUSTER_NAME          = "testCl1";
-    private final String TARGET_CLUSTER_NAME   = "testCl2";
-    private final String QUALIFIED_NAME_STOCKS = "stocks@cl1";
-    private final String TYPE_HIVE_DB          = "hive_db";
-    private final String topLevelEntityGuid    = "AAA-BBB-CCC";
-
-    @Inject
-    private AtlasTypeDefStore typeDefStore;
-
-    @Inject
-    private AtlasTypeRegistry typeRegistry;
-
-    @Inject
-    private ClusterService clusterService;
-
-    @BeforeClass
-    public void setup() throws IOException, AtlasBaseException {
-        loadBaseModel(typeDefStore, typeRegistry);
-    }
-
-    @Test
-    public void saveAndRetrieveClusterInfo() throws AtlasBaseException {
-        AtlasCluster expected = getCluster(CLUSTER_NAME + "_1", TOP_LEVEL_ENTITY_NAME, "EXPORT", 0l, TARGET_CLUSTER_NAME);
-        AtlasCluster expected2 = getCluster(TARGET_CLUSTER_NAME + "_1", TOP_LEVEL_ENTITY_NAME, "IMPORT", 0L, TARGET_CLUSTER_NAME);
-        AtlasCluster expected3 = getCluster(TARGET_CLUSTER_NAME + "_3", TOP_LEVEL_ENTITY_NAME, "IMPORT", 0, TARGET_CLUSTER_NAME);
-
-        AtlasCluster actual = clusterService.save(expected);
-        AtlasCluster actual2 = clusterService.save(expected2);
-        AtlasCluster actual3 = clusterService.save(expected3);
-        AtlasCluster actual2x = clusterService.get(expected2);
-
-        assertNotNull(actual.getGuid());
-        assertNotNull(actual2.getGuid());
-        assertNotEquals(actual.getGuid(), actual2.getGuid());
-        assertNotEquals(actual2.getGuid(), actual3.getGuid());
-
-        assertEquals(actual2.getGuid(), actual2x.getGuid());
-
-
-        assertEquals(actual.getName(), expected.getName());
-        assertEquals(actual.getQualifiedName(), expected.getQualifiedName());
-    }
-
-    private AtlasCluster getCluster(String clusterName, String topLevelEntity, String operation, long nextModifiedTimestamp, String targetClusterName) {
-        AtlasCluster cluster = new AtlasCluster(clusterName, clusterName);
-
-        Map<String, String> syncMap = new HashMap<>();
-
-        syncMap.put("topLevelEntity", topLevelEntity);
-        syncMap.put("operation", operation);
-        syncMap.put("nextModifiedTimestamp", Long.toString(nextModifiedTimestamp));
-        syncMap.put("targetCluster", targetClusterName);
-
-        cluster.setAdditionalInfo(syncMap);
-
-        return cluster;
-    }
-
-    @Test
-    public void verifyAdditionalInfo() throws AtlasBaseException {
-        final long expectedLastModifiedTimestamp = 200L;
-
-        AtlasCluster expectedCluster = new AtlasCluster(CLUSTER_NAME, CLUSTER_NAME);
-
-        String qualifiedNameAttr = Constants.QUALIFIED_NAME.replace(ATTR_NAME_REFERENCEABLE, "");
-        AtlasObjectId objectId = new AtlasObjectId(TYPE_HIVE_DB, qualifiedNameAttr, QUALIFIED_NAME_STOCKS);
-        expectedCluster.setAdditionalInfoRepl(topLevelEntityGuid, expectedLastModifiedTimestamp);
-
-        AtlasCluster actualCluster = clusterService.save(expectedCluster);
-        assertEquals(actualCluster.getName(), expectedCluster.getName());
-
-        int actualModifiedTimestamp = (int) actualCluster.getAdditionalInfoRepl(topLevelEntityGuid);
-
-        assertEquals(actualModifiedTimestamp, expectedLastModifiedTimestamp);
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportAuditServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportAuditServiceTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportAuditServiceTest.java
index 13277a3..16fd39d 100644
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportAuditServiceTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/impexp/ExportImportAuditServiceTest.java
@@ -76,14 +76,14 @@ public class ExportImportAuditServiceTest extends ExportImportTestBase {
 
         assertNotEquals(actualEntry.getGuid(), actualEntry2.getGuid());
         assertNotNull(actualEntry.getGuid());
-        assertEquals(actualEntry.getSourceClusterName(), entry.getSourceClusterName());
-        assertEquals(actualEntry.getTargetClusterName(), entry.getTargetClusterName());
+        assertEquals(actualEntry.getSourceServerName(), entry.getSourceServerName());
+        assertEquals(actualEntry.getTargetServerName(), entry.getTargetServerName());
         assertEquals(actualEntry.getOperation(), entry.getOperation());
     }
 
     @Test
     public void numberOfSavedEntries_Retrieved() throws AtlasBaseException, InterruptedException {
-        final String source1 = "cluster1";
+        final String source1 = "server1";
         final String target1 = "cly";
         int MAX_ENTRIES = 5;
 
@@ -100,7 +100,7 @@ public class ExportImportAuditServiceTest extends ExportImportTestBase {
 
     private ExportImportAuditEntry retrieveEntry(ExportImportAuditEntry entry) throws AtlasBaseException {
         List<ExportImportAuditEntry> result = auditService.get(entry.getUserName(), entry.getOperation(),
-                                                            entry.getSourceClusterName(),
+                                                            entry.getSourceServerName(),
                                                             Long.toString(entry.getStartTime()), "", 10, 0);
         assertNotNull(result);
         assertEquals(result.size(), 1);
@@ -108,10 +108,10 @@ public class ExportImportAuditServiceTest extends ExportImportTestBase {
         return auditService.get(entry);
     }
 
-    private ExportImportAuditEntry saveAndGet(String sourceClusterName, String operation, String targetClusterName) throws AtlasBaseException {
-        ExportImportAuditEntry entry = new ExportImportAuditEntry(sourceClusterName, operation);
+    private ExportImportAuditEntry saveAndGet(String sourceServerName, String operation, String targetServerName) throws AtlasBaseException {
+        ExportImportAuditEntry entry = new ExportImportAuditEntry(sourceServerName, operation);
 
-        entry.setTargetClusterName(targetClusterName);
+        entry.setTargetServerName(targetServerName);
         entry.setUserName("default");
         entry.setStartTime(System.currentTimeMillis());
         entry.setEndTime(System.currentTimeMillis() + 1000L);

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/java/org/apache/atlas/repository/impexp/ReplicationEntityAttributeTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/impexp/ReplicationEntityAttributeTest.java b/repository/src/test/java/org/apache/atlas/repository/impexp/ReplicationEntityAttributeTest.java
index d462491..7ffef7f 100644
--- a/repository/src/test/java/org/apache/atlas/repository/impexp/ReplicationEntityAttributeTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/impexp/ReplicationEntityAttributeTest.java
@@ -24,7 +24,7 @@ import org.apache.atlas.RequestContext;
 import org.apache.atlas.TestModules;
 import org.apache.atlas.TestUtilsV2;
 import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.model.impexp.AtlasCluster;
+import org.apache.atlas.model.impexp.AtlasServer;
 import org.apache.atlas.model.impexp.AtlasExportRequest;
 import org.apache.atlas.model.impexp.AtlasImportRequest;
 import org.apache.atlas.model.impexp.AtlasImportResult;
@@ -63,9 +63,6 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
     private final String EXPORT_REQUEST_FILE = "export-replicatedTo";
     private final String IMPORT_REQUEST_FILE = "import-replicatedFrom";
 
-    private final String DB_GUID = "1637a33e-6512-447b-ade7-249c8cb5344b";
-    private final String TABLE_GUID = "df122fc3-5555-40f8-a30f-3090b8a622f8";
-
     private  String REPLICATED_TO_CLUSTER_NAME = "";
     private  String REPLICATED_FROM_CLUSTER_NAME = "";
 
@@ -85,7 +82,7 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
     ImportService importService;
 
     @Inject
-    ClusterService clusterService;
+    AtlasServerService atlasServerService;
 
     private AtlasEntityChangeNotifier mockChangeNotifier = mock(AtlasEntityChangeNotifier.class);
     private AtlasEntityStoreV2 entityStore;
@@ -120,7 +117,7 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
         assertEquals(zipSource.getCreationOrder().size(), expectedEntityCount);
 
         assertCluster(REPLICATED_TO_CLUSTER_NAME, null);
-        assertReplicationAttribute(Constants.ATTR_NAME_REPLICATED_TO_CLUSTER);
+        assertReplicationAttribute(Constants.ATTR_NAME_REPLICATED_TO);
     }
 
     @Test(dependsOnMethods = "exportWithReplicationToOption_AddsClusterObjectIdToReplicatedFromAttribute", enabled = false)
@@ -129,7 +126,7 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
         AtlasImportResult importResult = runImportWithParameters(importService, request, zipSource);
 
         assertCluster(REPLICATED_FROM_CLUSTER_NAME, importResult);
-        assertReplicationAttribute(Constants.ATTR_NAME_REPLICATED_FROM_CLUSTER);
+        assertReplicationAttribute(Constants.ATTR_NAME_REPLICATED_FROM);
     }
 
     private void assertReplicationAttribute(String attrNameReplication) throws AtlasBaseException {
@@ -139,13 +136,13 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
             Object ex = e.getAttribute(attrNameReplication);
             assertNotNull(ex);
 
-            List<String> clusterNameSyncType = (List) ex;
-            assertEquals(clusterNameSyncType.size(), 1);
+            List<String> attrValue = (List) ex;
+            assertEquals(attrValue.size(), 1);
         }
     }
 
     private void assertCluster(String name, AtlasImportResult importResult) throws AtlasBaseException {
-        AtlasCluster actual = clusterService.get(new AtlasCluster(name, name));
+        AtlasServer actual = atlasServerService.get(new AtlasServer(name, name));
 
         assertNotNull(actual);
         assertEquals(actual.getName(), name);
@@ -155,7 +152,7 @@ public class ReplicationEntityAttributeTest extends ExportImportTestBase {
         }
     }
 
-    private void assertClusterAdditionalInfo(AtlasCluster cluster, AtlasImportResult importResult) throws AtlasBaseException {
+    private void assertClusterAdditionalInfo(AtlasServer cluster, AtlasImportResult importResult) throws AtlasBaseException {
         AtlasExportRequest request = importResult.getExportResult().getRequest();
         AtlasEntityType type = (AtlasEntityType) typeRegistry.getType(request.getItemsToExport().get(0).getTypeName());
         AtlasEntity.AtlasEntityWithExtInfo entity = entityStore.getByUniqueAttributes(type, request.getItemsToExport().get(0).getUniqueAttributes());

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/repository/src/test/resources/json/stocksDB-Entities/replicationAttrs.json
----------------------------------------------------------------------
diff --git a/repository/src/test/resources/json/stocksDB-Entities/replicationAttrs.json b/repository/src/test/resources/json/stocksDB-Entities/replicationAttrs.json
index 4441036..20279c7 100644
--- a/repository/src/test/resources/json/stocksDB-Entities/replicationAttrs.json
+++ b/repository/src/test/resources/json/stocksDB-Entities/replicationAttrs.json
@@ -1,6 +1,6 @@
 {
-  "name": "replicatedFromCluster",
-  "typeName": "array<AtlasCluster>",
+  "name": "replicatedFrom",
+  "typeName": "array<AtlasServer>",
   "cardinality": "SET",
   "isIndexable": false,
   "isOptional": true,

http://git-wip-us.apache.org/repos/asf/atlas/blob/116fb62c/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
index 6f6921f..55e8b9e 100755
--- a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
+++ b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
@@ -29,18 +29,21 @@ import org.apache.atlas.authorize.AtlasAuthorizationUtils;
 import org.apache.atlas.discovery.SearchContext;
 import org.apache.atlas.exception.AtlasBaseException;
 import org.apache.atlas.model.discovery.AtlasSearchResult;
+import org.apache.atlas.model.impexp.AtlasServer;
 import org.apache.atlas.model.impexp.AtlasExportRequest;
 import org.apache.atlas.model.impexp.AtlasExportResult;
 import org.apache.atlas.model.impexp.AtlasImportRequest;
 import org.apache.atlas.model.impexp.AtlasImportResult;
-import org.apache.atlas.model.impexp.*;
+import org.apache.atlas.model.impexp.ExportImportAuditEntry;
+import org.apache.atlas.model.impexp.MigrationStatus;
 import org.apache.atlas.model.metrics.AtlasMetrics;
+import org.apache.atlas.repository.impexp.AtlasServerService;
+import org.apache.atlas.repository.impexp.ExportImportAuditService;
 import org.apache.atlas.repository.impexp.ExportService;
 import org.apache.atlas.repository.impexp.ImportService;
+import org.apache.atlas.repository.impexp.MigrationProgressService;
 import org.apache.atlas.repository.impexp.ZipSink;
 import org.apache.atlas.repository.impexp.ZipSource;
-import org.apache.atlas.repository.impexp.ExportImportAuditService;
-import org.apache.atlas.repository.impexp.*;
 import org.apache.atlas.services.MetricsService;
 import org.apache.atlas.type.AtlasType;
 import org.apache.atlas.type.AtlasTypeRegistry;
@@ -126,10 +129,10 @@ public class AdminResource {
     private final  ImportService            importService;
     private final  SearchTracker            activeSearches;
     private final  AtlasTypeRegistry        typeRegistry;
-    private final  MigrationProgressService migrationProgressService;
+    private final MigrationProgressService migrationProgressService;
     private final  ReentrantLock            importExportOperationLock;
     private final  ExportImportAuditService exportImportAuditService;
-    private final  ClusterService           clusterService;
+    private final  AtlasServerService       atlasServerService;
 
     static {
         try {
@@ -143,7 +146,7 @@ public class AdminResource {
     public AdminResource(ServiceState serviceState, MetricsService metricsService, AtlasTypeRegistry typeRegistry,
                          ExportService exportService, ImportService importService, SearchTracker activeSearches,
                          MigrationProgressService migrationProgressService,
-                         ClusterService clusterService,
+                         AtlasServerService serverService,
                          ExportImportAuditService exportImportAuditService) {
         this.serviceState               = serviceState;
         this.metricsService             = metricsService;
@@ -152,7 +155,7 @@ public class AdminResource {
         this.activeSearches = activeSearches;
         this.typeRegistry = typeRegistry;
         this.migrationProgressService = migrationProgressService;
-        this.clusterService = clusterService;
+        this.atlasServerService = serverService;
         this.exportImportAuditService = exportImportAuditService;
         this.importExportOperationLock = new ReentrantLock();
     }
@@ -448,24 +451,24 @@ public class AdminResource {
 
     /**
      * Fetch details of a cluster.
-     * @param clusterName name of target cluster with which it is paired
-     * @return AtlasCluster
+     * @param serverName name of target cluster with which it is paired
+     * @return AtlasServer
      * @throws AtlasBaseException
      */
     @GET
-    @Path("/cluster/{clusterName}")
+    @Path("/server/{serverName}")
     @Consumes(Servlets.JSON_MEDIA_TYPE)
     @Produces(Servlets.JSON_MEDIA_TYPE)
-    public AtlasCluster getCluster(@PathParam("clusterName") String clusterName) throws AtlasBaseException {
+    public AtlasServer getCluster(@PathParam("serverName") String serverName) throws AtlasBaseException {
         AtlasPerfTracer perf = null;
 
         try {
             if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "cluster.getCluster(" + clusterName + ")");
+                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "cluster.getServer(" + serverName + ")");
             }
 
-            AtlasCluster cluster = new AtlasCluster(clusterName, clusterName);
-            return clusterService.get(cluster);
+            AtlasServer cluster = new AtlasServer(serverName, serverName);
+            return atlasServerService.get(cluster);
         } finally {
             AtlasPerfTracer.log(perf);
         }
@@ -475,7 +478,7 @@ public class AdminResource {
     @Path("/expimp/audit")
     @Consumes(Servlets.JSON_MEDIA_TYPE)
     @Produces(Servlets.JSON_MEDIA_TYPE)
-    public List<ExportImportAuditEntry> getExportImportAudit(@QueryParam("clusterName") String cluster,
+    public List<ExportImportAuditEntry> getExportImportAudit(@QueryParam("serverName") String serverName,
                                                              @QueryParam("userName") String userName,
                                                              @QueryParam("operation") String operation,
                                                              @QueryParam("startTime") String startTime,
@@ -486,10 +489,10 @@ public class AdminResource {
 
         try {
             if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "getExportImportAudit(" + cluster + ")");
+                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "getExportImportAudit(" + serverName + ")");
             }
 
-            return exportImportAuditService.get(userName, operation, cluster, startTime, endTime, limit, offset);
+            return exportImportAuditService.get(userName, operation, serverName, startTime, endTime, limit, offset);
         } finally {
             AtlasPerfTracer.log(perf);
         }