You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2018/06/05 14:53:13 UTC
[1/3] atlas git commit: ATLAS-2730: added validation of TimeBoundry
values in classifications
Repository: atlas
Updated Branches:
refs/heads/branch-1.0 32699ab53 -> 32a87a314
ATLAS-2730: added validation of TimeBoundry values in classifications
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
(cherry picked from commit e73a80998ee39aab54eee637aee7ccb99e4156c1)
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/047f31be
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/047f31be
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/047f31be
Branch: refs/heads/branch-1.0
Commit: 047f31beb4a40c8b784c64a2203a1348be91a440
Parents: 32699ab
Author: nixonrodrigues <ni...@apache.org>
Authored: Fri Jun 1 12:46:47 2018 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Jun 5 07:52:37 2018 -0700
----------------------------------------------------------------------
intg/pom.xml | 6 ++
.../java/org/apache/atlas/AtlasErrorCode.java | 3 +
.../atlas/type/AtlasClassificationType.java | 87 ++++++++++++++++++++
.../atlas/type/TestAtlasClassificationType.java | 32 ++++++-
pom.xml | 1 +
.../store/graph/v2/AtlasEntityStoreV2.java | 5 ++
6 files changed, 131 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/intg/pom.xml
----------------------------------------------------------------------
diff --git a/intg/pom.xml b/intg/pom.xml
index 03e4325..089dbfb 100644
--- a/intg/pom.xml
+++ b/intg/pom.xml
@@ -47,6 +47,12 @@
</dependency>
<dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>${commons-validator.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-base</artifactId>
<version>${jackson.version}</version>
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/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 06b4345..f0585eb 100644
--- a/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
+++ b/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
@@ -148,6 +148,9 @@ public enum AtlasErrorCode {
MISSING_CATEGORY_DISPLAY_NAME(400, "ATLAS-400-00-082", "Category name is empty/null"),
INVALID_DISPLAY_NAME(400, "ATLAS-400-00-083", "name cannot contain following special chars ('@', '.')"),
TERM_HAS_ENTITY_ASSOCIATION(400, "ATLAS-400-00-086", "Term (guid={0}) can't be deleted as it has been assigned to {1} entities."),
+ INVALID_TIMEBOUNDRY_START_TIME(400, "ATLAS-400-00-87B", "Invalid startTime {0}"),
+ INVALID_TIMEBOUNDRY_END_TIME(400, "ATLAS-400-00-87C", "Invalid endTime {0}"),
+ INVALID_TIMEBOUNDRY_DATERANGE(400, "ATLAS-400-00-87D", "Invalid dateRange: startTime {0} must be before endTime {1}"),
UNAUTHORIZED_ACCESS(403, "ATLAS-403-00-001", "{0} is not authorized to perform {1}"),
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/intg/src/main/java/org/apache/atlas/type/AtlasClassificationType.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/type/AtlasClassificationType.java b/intg/src/main/java/org/apache/atlas/type/AtlasClassificationType.java
index abacd78..1adb362 100644
--- a/intg/src/main/java/org/apache/atlas/type/AtlasClassificationType.java
+++ b/intg/src/main/java/org/apache/atlas/type/AtlasClassificationType.java
@@ -20,11 +20,13 @@ package org.apache.atlas.type;
import org.apache.atlas.AtlasErrorCode;
import org.apache.atlas.exception.AtlasBaseException;
+import org.apache.atlas.model.TimeBoundary;
import org.apache.atlas.model.instance.AtlasClassification;
import org.apache.atlas.model.typedef.AtlasClassificationDef;
import org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.validator.routines.DateValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -302,6 +304,10 @@ public class AtlasClassificationType extends AtlasStructType {
}
}
+ if (!validateTimeBoundaries(obj, null)) {
+ return false;
+ }
+
return super.isValidValue(obj);
}
@@ -328,6 +334,10 @@ public class AtlasClassificationType extends AtlasStructType {
}
}
+ if (!validateTimeBoundaries(obj, null)) {
+ return false;
+ }
+
return super.isValidValueForUpdate(obj);
}
@@ -381,6 +391,8 @@ public class AtlasClassificationType extends AtlasStructType {
ret = superType.validateValue(obj, objName, messages) && ret;
}
+ ret = validateTimeBoundaries(obj, messages) && ret;
+
ret = super.validateValue(obj, objName, messages) && ret;
}
@@ -396,6 +408,8 @@ public class AtlasClassificationType extends AtlasStructType {
ret = superType.validateValueForUpdate(obj, objName, messages) && ret;
}
+ ret = validateTimeBoundaries(obj, messages) && ret;
+
ret = super.validateValueForUpdate(obj, objName, messages) && ret;
}
@@ -516,4 +530,77 @@ public class AtlasClassificationType extends AtlasStructType {
}
}
}
+
+ private boolean validateTimeBoundaries(Object classificationObj, List<String> messages) {
+ boolean ret = true;
+ AtlasClassification classification = null;
+
+ if (classificationObj instanceof AtlasClassification) {
+ classification = (AtlasClassification) classificationObj;
+ } else if (classificationObj instanceof Map) {
+ classification = new AtlasClassification((Map) classificationObj);
+ }
+
+ if (classification != null && classification.getValidityPeriods() != null) {
+ for (TimeBoundary timeBoundary : classification.getValidityPeriods()) {
+ if (timeBoundary != null) {
+ ret = validateTimeBoundry(timeBoundary, messages) && ret;
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ private boolean validateTimeBoundry(TimeBoundary timeBoundary, List<String> messages) {
+ boolean ret = true;
+ DateValidator dateValidator = DateValidator.getInstance();
+ Date startDate = null;
+ Date endDate = null;
+ final TimeZone timezone;
+
+ if (StringUtils.isNotEmpty(timeBoundary.getTimeZone())) {
+ timezone = TimeZone.getTimeZone(timeBoundary.getTimeZone());
+ } else {
+ timezone = java.util.TimeZone.getDefault();
+ }
+
+ if (StringUtils.isNotEmpty(timeBoundary.getStartTime())) {
+ startDate = dateValidator.validate(timeBoundary.getStartTime(), TimeBoundary.TIME_FORMAT, timezone);
+
+ if (startDate == null) {
+ addValidationMessageIfNotPresent(new AtlasBaseException(AtlasErrorCode.INVALID_TIMEBOUNDRY_START_TIME, timeBoundary.getStartTime()), messages);
+
+ ret = false;
+ }
+ }
+
+ if (StringUtils.isNotEmpty(timeBoundary.getEndTime())) {
+ endDate = dateValidator.validate(timeBoundary.getEndTime(), TimeBoundary.TIME_FORMAT, timezone);
+
+ if (endDate == null) {
+ addValidationMessageIfNotPresent(new AtlasBaseException(AtlasErrorCode.INVALID_TIMEBOUNDRY_END_TIME, timeBoundary.getEndTime()), messages);
+
+ ret = false;
+ }
+ }
+
+ if (startDate != null && endDate != null) {
+ if (endDate.before(startDate)) {
+ addValidationMessageIfNotPresent(new AtlasBaseException(AtlasErrorCode.INVALID_TIMEBOUNDRY_DATERANGE, timeBoundary.getStartTime(), timeBoundary.getEndTime()), messages);
+
+ ret = false;
+ }
+ }
+
+ return ret;
+ }
+
+ private void addValidationMessageIfNotPresent(AtlasBaseException excp, List<String> messages) {
+ String msg = excp.getMessage();
+
+ if (messages != null && !messages.contains(msg)) {
+ messages.add(msg);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/intg/src/test/java/org/apache/atlas/type/TestAtlasClassificationType.java
----------------------------------------------------------------------
diff --git a/intg/src/test/java/org/apache/atlas/type/TestAtlasClassificationType.java b/intg/src/test/java/org/apache/atlas/type/TestAtlasClassificationType.java
index 0badfcf..1ade5f7 100644
--- a/intg/src/test/java/org/apache/atlas/type/TestAtlasClassificationType.java
+++ b/intg/src/test/java/org/apache/atlas/type/TestAtlasClassificationType.java
@@ -21,6 +21,7 @@ import java.util.*;
import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.ModelTestUtil;
+import org.apache.atlas.model.TimeBoundary;
import org.apache.atlas.model.instance.AtlasClassification;
import org.apache.atlas.model.typedef.AtlasBaseTypeDef;
import org.apache.atlas.model.typedef.AtlasClassificationDef;
@@ -39,9 +40,28 @@ public class TestAtlasClassificationType {
{
classificationType = getClassificationType(ModelTestUtil.getClassificationDefWithSuperTypes());
- AtlasClassification invalidValue1 = classificationType.createDefaultValue();
- AtlasClassification invalidValue2 = classificationType.createDefaultValue();
- Map<String, Object> invalidValue3 = classificationType.createDefaultValue().getAttributes();
+ AtlasClassification invalidValue1 = classificationType.createDefaultValue();
+ AtlasClassification invalidValue2 = classificationType.createDefaultValue();
+ Map<String, Object> invalidValue3 = classificationType.createDefaultValue().getAttributes();
+ AtlasClassification validValueTB1 = classificationType.createDefaultValue();
+ AtlasClassification validValueTB2 = classificationType.createDefaultValue();
+ AtlasClassification validValueTB3 = classificationType.createDefaultValue();
+ AtlasClassification invalidValueTB1 = classificationType.createDefaultValue();
+ AtlasClassification invalidValueTB2 = classificationType.createDefaultValue();
+ AtlasClassification invalidValueTB3 = classificationType.createDefaultValue();
+ TimeBoundary validTB1 = new TimeBoundary("2018/07/07 04:38:55"); // valid start-time
+ TimeBoundary validTB2 = new TimeBoundary(null, "2018/07/08 04:38:55"); // valid end-time
+ TimeBoundary validTB3 = new TimeBoundary("2018/07/07 04:38:55", "2018/07/08 04:38:55"); // valid start and end times
+ TimeBoundary invalidTB1 = new TimeBoundary("2018-07-07 04:38:55"); // invalid start-time
+ TimeBoundary invalidTB2 = new TimeBoundary(null, "2018-07-08 04:38:55"); // invalid end-time
+ TimeBoundary invalidTB3 = new TimeBoundary("2018/07/08 04:38:55", "2018/07/07 04:38:55"); // invalid time-ranger
+
+ validValueTB1.addValityPeriod(validTB1);
+ validValueTB2.addValityPeriod(validTB2);
+ validValueTB3.addValityPeriod(validTB3);
+ invalidValueTB1.addValityPeriod(invalidTB1);
+ invalidValueTB2.addValityPeriod(invalidTB2);
+ invalidValueTB3.addValityPeriod(invalidTB3);
// invalid value for int
invalidValue1.setAttribute(ModelTestUtil.getDefaultAttributeName(AtlasBaseTypeDef.ATLAS_TYPE_INT), "xyz");
@@ -53,6 +73,9 @@ public class TestAtlasClassificationType {
validValues.add(null);
validValues.add(classificationType.createDefaultValue());
validValues.add(classificationType.createDefaultValue().getAttributes()); // Map<String, Object>
+ validValues.add(validValueTB1);
+ validValues.add(validValueTB2);
+ validValues.add(validValueTB3);
invalidValues.add(invalidValue1);
invalidValues.add(invalidValue2);
invalidValues.add(invalidValue3);
@@ -62,6 +85,9 @@ public class TestAtlasClassificationType {
invalidValues.add(new HashSet()); // incorrect datatype
invalidValues.add(new ArrayList()); // incorrect datatype
invalidValues.add(new String[] {}); // incorrect datatype
+ invalidValues.add(invalidValueTB1);
+ invalidValues.add(invalidValueTB2);
+ invalidValues.add(invalidValueTB3);
}
@Test
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1741651..fbf2f9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -583,6 +583,7 @@
<commons-collections.version>3.2.2</commons-collections.version>
<commons-logging.version>1.1.3</commons-logging.version>
<commons-lang.version>2.6</commons-lang.version>
+ <commons-validator.version>1.4.0</commons-validator.version>
<javax-inject.version>1</javax-inject.version>
<jettison.version>1.3.7</jettison.version>
<paranamer.version>2.7</paranamer.version>
http://git-wip-us.apache.org/repos/asf/atlas/blob/047f31be/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
index 5e33cf5..40593be 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
@@ -403,6 +403,7 @@ public class AtlasEntityStoreV2 implements AtlasEntityStore {
}
GraphTransactionInterceptor.lockObjectAndReleasePostCommit(guid);
+
for (AtlasClassification classification : classifications) {
validateAndNormalize(classification);
}
@@ -436,6 +437,10 @@ public class AtlasEntityStoreV2 implements AtlasEntityStore {
GraphTransactionInterceptor.lockObjectAndReleasePostCommit(guid);
+ for (AtlasClassification classification : classifications) {
+ validateAndNormalize(classification);
+ }
+
entityGraphMapper.updateClassifications(new EntityMutationContext(), guid, classifications);
}
[3/3] atlas git commit: ATLAS-2732: updated
import-hive.sh/import-hbase.sh to handle kerberos security command-line
arguments
Posted by ma...@apache.org.
ATLAS-2732: updated import-hive.sh/import-hbase.sh to handle kerberos security command-line arguments
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
(cherry picked from commit f93da20b3fc8a4853c4c7d991cac375cb3a6ad6a)
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/32a87a31
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/32a87a31
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/32a87a31
Branch: refs/heads/branch-1.0
Commit: 32a87a3140d9af3b82906a0192265632966a6eab
Parents: 1e4b743
Author: rmani <rm...@hortonworks.com>
Authored: Sat Jun 2 13:48:59 2018 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Jun 5 07:53:03 2018 -0700
----------------------------------------------------------------------
addons/hbase-bridge/src/bin/import-hbase.sh | 26 +++++++++++++++++------
addons/hive-bridge/src/bin/import-hive.sh | 27 ++++++++++++++++++------
2 files changed, 40 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/atlas/blob/32a87a31/addons/hbase-bridge/src/bin/import-hbase.sh
----------------------------------------------------------------------
diff --git a/addons/hbase-bridge/src/bin/import-hbase.sh b/addons/hbase-bridge/src/bin/import-hbase.sh
index 0a5989f..d429ea2 100644
--- a/addons/hbase-bridge/src/bin/import-hbase.sh
+++ b/addons/hbase-bridge/src/bin/import-hbase.sh
@@ -35,8 +35,6 @@ BASEDIR=`cd ${BASEDIR}/..;pwd`
echo ">>>>> $BASEDIR"
-allargs=$@
-
if test -z "${JAVA_HOME}"
then
JAVA_BIN=`which java`
@@ -125,16 +123,32 @@ fi
JAVA_PROPERTIES="$ATLAS_OPTS -Datlas.log.dir=$ATLAS_LOG_DIR -Datlas.log.file=import-hbase.log
-Dlog4j.configuration=atlas-hbase-import-log4j.xml"
-shift
-while [[ ${1} =~ ^\-D ]]; do
- JAVA_PROPERTIES="${JAVA_PROPERTIES} ${1}"
+IMPORT_ARGS=
+JVM_ARGS=
+
+while true
+do
+ option=$1
shift
+
+ case "$option" in
+ -n) IMPORT_ARGS="$IMPORT_ARGS -n $1"; shift;;
+ -t) IMPORT_ARGS="$IMPORT_ARGS -t $1"; shift;;
+ -f) IMPORT_ARGS="$IMPORT_ARGS -f $1"; shift;;
+ --namespace) IMPORT_ARGS="$IMPORT_ARGS --namespace $1"; shift;;
+ --table) IMPORT_ARGS="$IMPORT_ARGS --table $1"; shift;;
+ --filename) IMPORT_ARGS="$IMPORT_ARGS --filename $1"; shift;;
+ "") break;;
+ *) JVM_ARGS="$JVM_ARGS $option"
+ esac
done
+JAVA_PROPERTIES="${JAVA_PROPERTIES} ${JVM_ARGS}"
+
echo "Log file for import is $LOGFILE"
-"${JAVA_BIN}" ${JAVA_PROPERTIES} -cp "${CP}" org.apache.atlas.hbase.bridge.HBaseBridge $allargs
+"${JAVA_BIN}" ${JAVA_PROPERTIES} -cp "${CP}" org.apache.atlas.hbase.bridge.HBaseBridge $IMPORT_ARGS
RETVAL=$?
[ $RETVAL -eq 0 ] && echo HBase Data Model imported successfully!!!
http://git-wip-us.apache.org/repos/asf/atlas/blob/32a87a31/addons/hive-bridge/src/bin/import-hive.sh
----------------------------------------------------------------------
diff --git a/addons/hive-bridge/src/bin/import-hive.sh b/addons/hive-bridge/src/bin/import-hive.sh
index 98f4c84..49e6d70 100755
--- a/addons/hive-bridge/src/bin/import-hive.sh
+++ b/addons/hive-bridge/src/bin/import-hive.sh
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.
#
-
# resolve links - $0 may be a softlink
PRG="${0}"
@@ -31,8 +30,6 @@ done
BASEDIR=`dirname ${PRG}`
BASEDIR=`cd ${BASEDIR}/..;pwd`
-allargs=$@
-
if test -z "${JAVA_HOME}"
then
JAVA_BIN=`which java`
@@ -121,16 +118,32 @@ fi
JAVA_PROPERTIES="$ATLAS_OPTS -Datlas.log.dir=$ATLAS_LOG_DIR -Datlas.log.file=import-hive.log
-Dlog4j.configuration=atlas-hive-import-log4j.xml"
-shift
-while [[ ${1} =~ ^\-D ]]; do
- JAVA_PROPERTIES="${JAVA_PROPERTIES} ${1}"
+IMPORT_ARGS=
+JVM_ARGS=
+
+while true
+do
+ option=$1
shift
+
+ case "$option" in
+ -d) IMPORT_ARGS="$IMPORT_ARGS -d $1"; shift;;
+ -t) IMPORT_ARGS="$IMPORT_ARGS -t $1"; shift;;
+ -f) IMPORT_ARGS="$IMPORT_ARGS -f $1"; shift;;
+ --database) IMPORT_ARGS="$IMPORT_ARGS --database $1"; shift;;
+ --table) IMPORT_ARGS="$IMPORT_ARGS --table $1"; shift;;
+ --filename) IMPORT_ARGS="$IMPORT_ARGS --filename $1"; shift;;
+ "") break;;
+ *) JVM_ARGS="$JVM_ARGS $option"
+ esac
done
+JAVA_PROPERTIES="${JAVA_PROPERTIES} ${JVM_ARGS}"
+
echo "Log file for import is $LOGFILE"
-"${JAVA_BIN}" ${JAVA_PROPERTIES} -cp "${CP}" org.apache.atlas.hive.bridge.HiveMetaStoreBridge $allargs
+"${JAVA_BIN}" ${JAVA_PROPERTIES} -cp "${CP}" org.apache.atlas.hive.bridge.HiveMetaStoreBridge $IMPORT_ARGS
RETVAL=$?
[ $RETVAL -eq 0 ] && echo Hive Meta Data imported successfully!!!
[2/3] atlas git commit: ATLAS-2731: UI : attributes on table's
detailsPage buffers forever due no access on that entity
Posted by ma...@apache.org.
ATLAS-2731: UI : attributes on table's detailsPage buffers forever due no access on that entity
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
(cherry picked from commit b57420cd0f4af242caed81d8b69c2438794f1fd9)
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/1e4b743b
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/1e4b743b
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/1e4b743b
Branch: refs/heads/branch-1.0
Commit: 1e4b743b296b569eff513e0aceec9a66375d7585
Parents: 047f31b
Author: Abhishek Kadam <ab...@gmail.com>
Authored: Tue Jun 5 18:42:02 2018 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Jun 5 07:52:47 2018 -0700
----------------------------------------------------------------------
.../public/js/utils/CommonViewFunction.js | 27 ++++++++++++++------
.../views/audit/CreateAuditTableLayoutView.js | 2 +-
.../views/entity/EntityDetailTableLayoutView.js | 2 +-
3 files changed, 21 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/atlas/blob/1e4b743b/dashboardv2/public/js/utils/CommonViewFunction.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/utils/CommonViewFunction.js b/dashboardv2/public/js/utils/CommonViewFunction.js
index b8e023a..3d39eb8 100644
--- a/dashboardv2/public/js/utils/CommonViewFunction.js
+++ b/dashboardv2/public/js/utils/CommonViewFunction.js
@@ -75,6 +75,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
var scope = options.scope,
valueObject = options.valueObject,
extractJSON = options.extractJSON,
+ relationshipAttributes = options.relationshipAttributes,
isTable = _.isUndefined(options.isTable) ? true : options.isTable,
attributeDefs = options.attributeDefs;
@@ -104,11 +105,16 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
scope.$('td div[data-id="' + id + '"]').append(deleteButton);
}
},
+ cust_error: function() {
+ scope.$('td div[data-id="' + id + '"]').html('<div><span class="text-danger"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Not Authorized</span></div>');
+ },
complete: function() {}
});
},
- extractObject = function(keyValue) {
- var valueOfArray = [];
+ extractObject = function(opt) {
+ var valueOfArray = [],
+ keyValue = opt.keyValue,
+ key = opt.key;
if (!_.isArray(keyValue) && _.isObject(keyValue)) {
keyValue = [keyValue];
}
@@ -163,10 +169,15 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
if (id && inputOutputField) {
var name = Utils.getName(inputOutputField);
if ((name === "-" || name === id) && !inputOutputField.attributes) {
- var fetch = true;
- var fetchId = (_.isObject(id) ? id.id : id);
- fetchInputOutputValue(fetchId);
- tempLink += '<div data-id="' + fetchId + '"><div class="value-loader"></div></div>';
+ var rAttrValue = relationshipAttributes && relationshipAttributes[key];
+ if (!rAttrValue) {
+ var fetch = true;
+ var fetchId = (_.isObject(id) ? id.id : id);
+ fetchInputOutputValue(fetchId);
+ tempLink += '<div data-id="' + fetchId + '"><div class="value-loader"></div></div>';
+ } else {
+ tempLink += '<div data-id="' + rAttrValue.guid + '"><a href="#!/detailPage/' + rAttrValue.guid + '">' + Utils.getName(rAttrValue) + '</a></div>';
+ }
} else {
tempLink += '<a href="#!/detailPage/' + id + '">' + name + '</a>'
}
@@ -205,11 +216,11 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
if (defEntityType === 'date') {
keyValue = new Date(keyValue);
} else if (_.isObject(keyValue)) {
- keyValue = extractObject(keyValue);
+ keyValue = extractObject({ "keyValue": keyValue, "key": key });
}
} else {
if (_.isObject(keyValue)) {
- keyValue = extractObject(keyValue)
+ keyValue = extractObject({ "keyValue": keyValue, "key": key })
}
}
var val = "";
http://git-wip-us.apache.org/repos/asf/atlas/blob/1e4b743b/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js b/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
index aa6f5f4..0d66235 100644
--- a/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/CreateAuditTableLayoutView.js
@@ -87,7 +87,7 @@ define(['require',
this.ui.name.text(name);
if (parseDetailsObject) {
this.ui.auditHeaderValue.html('<th>Key</th><th>New Value</th>');
- table = CommonViewFunction.propertyTable({ scope: this, valueObject: parseDetailsObject, attributeDefs: this.attributeDefs });
+ table = CommonViewFunction.propertyTable({ scope: this, valueObject: parseDetailsObject, relationshipAttributes: parseDetailsObject.relationshipAttributes, attributeDefs: this.attributeDefs });
if (table.length) {
this.ui.noData.hide();
this.ui.tableAudit.show();
http://git-wip-us.apache.org/repos/asf/atlas/blob/1e4b743b/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js b/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
index 28eb749..138e2cc 100644
--- a/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
+++ b/dashboardv2/public/js/views/entity/EntityDetailTableLayoutView.js
@@ -56,7 +56,7 @@ define(['require',
this.entityTableGenerate();
},
entityTableGenerate: function() {
- var table = CommonViewFunction.propertyTable({ scope: this, valueObject: this.entity.attributes, attributeDefs: this.attributeDefs });
+ var table = CommonViewFunction.propertyTable({ scope: this, valueObject: this.entity.attributes, relationshipAttributes: this.entity.relationshipAttributes, attributeDefs: this.attributeDefs });
this.ui.detailValue.append(table);
}
});