atlas-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yhema...@apache.org
Subject incubator-atlas git commit: ATLAS-890 Log received messages in case of error (sumasai via yhemanth)
Date Wed, 15 Jun 2016 18:21:15 GMT
Repository: incubator-atlas
Updated Branches:
  refs/heads/master aad34ae00 -> 39eb9f1ee


ATLAS-890 Log received messages in case of error (sumasai via yhemanth)


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

Branch: refs/heads/master
Commit: 39eb9f1eea636c0cf823570aed5f7dc5e8141bc5
Parents: aad34ae
Author: Hemanth Yamijala <hyamijala@hortonworks.com>
Authored: Wed Jun 15 23:50:50 2016 +0530
Committer: Hemanth Yamijala <hyamijala@hortonworks.com>
Committed: Wed Jun 15 23:50:50 2016 +0530

----------------------------------------------------------------------
 .../notification/hook/HookNotification.java     | 24 ++++++
 release-log.txt                                 |  1 +
 .../atlas/web/resources/EntityResource.java     | 89 +++++++++++---------
 3 files changed, 76 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/39eb9f1e/notification/src/main/java/org/apache/atlas/notification/hook/HookNotification.java
----------------------------------------------------------------------
diff --git a/notification/src/main/java/org/apache/atlas/notification/hook/HookNotification.java
b/notification/src/main/java/org/apache/atlas/notification/hook/HookNotification.java
index 80c96fa..88a0322 100644
--- a/notification/src/main/java/org/apache/atlas/notification/hook/HookNotification.java
+++ b/notification/src/main/java/org/apache/atlas/notification/hook/HookNotification.java
@@ -159,6 +159,11 @@ public class HookNotification implements JsonDeserializer<HookNotification.HookN
         public List<Referenceable> getEntities() throws JSONException {
             return entities;
         }
+
+        @Override
+        public String toString() {
+            return entities.toString();
+        }
     }
 
     /**
@@ -210,6 +215,16 @@ public class HookNotification implements JsonDeserializer<HookNotification.HookN
         public String getAttributeValue() {
             return attributeValue;
         }
+
+        @Override
+        public String toString() {
+            return  "{"
+                + "entityType='" + typeName + '\''
+                + ", attribute=" + attribute
+                + ", value=" + attributeValue
+                + ", entity=" + entity
+                + '}';
+        }
     }
 
     /**
@@ -247,5 +262,14 @@ public class HookNotification implements JsonDeserializer<HookNotification.HookN
         public String getAttributeValue() {
             return attributeValue;
         }
+
+        @Override
+        public String toString() {
+            return  "{"
+                + "entityType='" + typeName + '\''
+                + ", attribute=" + attribute
+                + ", value=" + attributeValue
+                + '}';
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/39eb9f1e/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 0f384d2..57525d7 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -23,6 +23,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file
(dosset
 ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via
shwethags)
 
 ALL CHANGES:
+ATLAS-890 Log received messages in case of error (sumasai via yhemanth)
 ATLAS-888 NPE in NotificationHookConsumer (sumasai via shwethags)
 ATLAS-884 Process registration should call Entity update instead of create (sumasai)
 ATLAS-515 Ability to initialize Kafka topics with more than 1 replica (yhemanth)

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/39eb9f1e/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java b/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java
index 364f17a..0713d30 100755
--- a/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java
+++ b/webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java
@@ -105,6 +105,8 @@ public class EntityResource {
     @Consumes({Servlets.JSON_MEDIA_TYPE, MediaType.APPLICATION_JSON})
     @Produces(Servlets.JSON_MEDIA_TYPE)
     public Response submit(@Context HttpServletRequest request) {
+
+        String entityJson = null;
         try {
             String entities = Servlets.getRequestPayload(request);
 
@@ -118,7 +120,8 @@ public class EntityResource {
                 }}.toString();
             }
 
-            LOG.debug("submitting entities {} ", AtlasClient.toString(new JSONArray(entities)));
+            entityJson = AtlasClient.toString(new JSONArray(entities));
+            LOG.debug("submitting entities {} ", entityJson);
 
             final List<String> guids = metadataService.createEntities(entities);
             JSONObject response = getResponse(new AtlasClient.EntityResult(guids, null, null));
@@ -128,16 +131,16 @@ public class EntityResource {
             return Response.created(locationURI).entity(response).build();
 
         } catch(EntityExistsException e) {
-            LOG.error("Unique constraint violation", e);
+            LOG.error("Unique constraint violation for entity entityDef={}", entityJson,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.CONFLICT));
         } catch (ValueConversionException ve) {
-            LOG.error("Unable to persist entity instance due to a deserialization error ",
ve);
+            LOG.error("Unable to persist entity instance due to a deserialization error entityDef={}",
entityJson, ve);
             throw new WebApplicationException(Servlets.getErrorResponse(ve.getCause(), Response.Status.BAD_REQUEST));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to persist entity instance", e);
+            LOG.error("Unable to persist entity instance entityDef={}", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to persist entity instance", e);
+            LOG.error("Unable to persist entity instance entityDef={}", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -180,24 +183,28 @@ public class EntityResource {
     @Consumes({Servlets.JSON_MEDIA_TYPE, MediaType.APPLICATION_JSON})
     @Produces(Servlets.JSON_MEDIA_TYPE)
     public Response updateEntities(@Context HttpServletRequest request) {
+
+        String entityJson = null;
         try {
             final String entities = Servlets.getRequestPayload(request);
-            LOG.debug("updating entities {} ", AtlasClient.toString(new JSONArray(entities)));
+
+            entityJson = AtlasClient.toString(new JSONArray(entities));
+            LOG.debug("updating entities {} ", entityJson);
 
             AtlasClient.EntityResult entityResult = metadataService.updateEntities(entities);
             JSONObject response = getResponse(entityResult);
             return Response.ok(response).build();
         } catch(EntityExistsException e) {
-            LOG.error("Unique constraint violation", e);
+            LOG.error("Unique constraint violation for entityDef={}", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.CONFLICT));
         } catch (ValueConversionException ve) {
-            LOG.error("Unable to persist entity instance due to a deserialization error ",
ve);
+            LOG.error("Unable to persist entity instance due to a deserialization error entityDef={}",
entityJson, ve);
             throw new WebApplicationException(Servlets.getErrorResponse(ve.getCause(), Response.Status.BAD_REQUEST));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to persist entity instance", e);
+            LOG.error("Unable to persist entity instance entityDef={}", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to persist entity instance", e);
+            LOG.error("Unable to persist entity instance entityDef={}", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -241,32 +248,35 @@ public class EntityResource {
     public Response updateByUniqueAttribute(@QueryParam("type") String entityType,
                                             @QueryParam("property") String attribute,
                                             @QueryParam("value") String value, @Context HttpServletRequest
request) {
+
+        String entityJson = null;
         try {
-            String entities = Servlets.getRequestPayload(request);
+            entityJson = Servlets.getRequestPayload(request);
 
-            LOG.debug("Partially updating entity by unique attribute {} {} {} {} ", entityType,
attribute, value, entities);
+            LOG.debug("Partially updating entity by unique attribute {} {} {} {} ", entityType,
attribute, value, entityJson);
 
             Referenceable updatedEntity =
-                InstanceSerialization.fromJsonReferenceable(entities, true);
+                InstanceSerialization.fromJsonReferenceable(entityJson, true);
+
             AtlasClient.EntityResult entityResult =
                     metadataService.updateEntityByUniqueAttribute(entityType, attribute,
value, updatedEntity);
 
             JSONObject response = getResponse(entityResult);
             return Response.ok(response).build();
         } catch (ValueConversionException ve) {
-            LOG.error("Unable to persist entity instance due to a deserialization error ",
ve);
+            LOG.error("Unable to persist entity instance due to a deserialization error {}
", entityJson, ve);
             throw new WebApplicationException(Servlets.getErrorResponse(ve.getCause(), Response.Status.BAD_REQUEST));
         } catch(EntityExistsException e) {
-            LOG.error("Unique constraint violation", e);
+            LOG.error("Unique constraint violation for entity {} ", entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.CONFLICT));
         } catch (EntityNotFoundException e) {
-            LOG.error("An entity with type={} and qualifiedName={} does not exist", entityType,
value, e);
+            LOG.error("An entity with type={} and qualifiedName={} does not exist {} ", entityType,
value, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to create/update entity {}" + entityType + ":" + attribute
+ "." + value, e);
+            LOG.error("Unable to partially update entity {} {} " + entityType + ":" + attribute
+ "." + value, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to update entity {}" + entityType + ":" + attribute + "." +
value, e);
+            LOG.error("Unable to partially update entity {} {} " + entityType + ":" + attribute
+ "." + value, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -294,9 +304,10 @@ public class EntityResource {
     }
     
     private Response updateEntityPartialByGuid(String guid, HttpServletRequest request) {
+        String entityJson = null;
         try {
             ParamChecker.notEmpty(guid, "Guid property cannot be null");
-            final String entityJson = Servlets.getRequestPayload(request);
+            entityJson = Servlets.getRequestPayload(request);
             LOG.debug("partially updating entity for guid {} : {} ", guid, entityJson);
 
             Referenceable updatedEntity =
@@ -305,13 +316,13 @@ public class EntityResource {
             JSONObject response = getResponse(entityResult);
             return Response.ok(response).build();
         } catch (EntityNotFoundException e) {
-            LOG.error("An entity with GUID={} does not exist", guid, e);
+            LOG.error("An entity with GUID={} does not exist {} ", guid, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to update entity {}", guid, e);
+            LOG.error("Unable to update entity by GUID {} {}", guid, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to update entity {}", guid, e);
+            LOG.error("Unable to update entity by GUID {} {} ", guid, entityJson, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -327,22 +338,23 @@ public class EntityResource {
      * @return response payload as json
      */
     private Response updateEntityAttributeByGuid(String guid, String property, HttpServletRequest
request) {
+        String value = null;
         try {
             Preconditions.checkNotNull(property, "Entity property cannot be null");
-            String value = Servlets.getRequestPayload(request);
+            value = Servlets.getRequestPayload(request);
             Preconditions.checkNotNull(value, "Entity value cannot be null");
 
             AtlasClient.EntityResult entityResult = metadataService.updateEntityAttributeByGuid(guid,
property, value);
             JSONObject response = getResponse(entityResult);
             return Response.ok(response).build();
         } catch (EntityNotFoundException e) {
-            LOG.error("An entity with GUID={} does not exist", guid, e);
+            LOG.error("An entity with GUID={} does not exist {} ", guid, value, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to add property {} to entity id {}", property, guid, e);
+            LOG.error("Unable to add property {} to entity id {} {} ", property, guid, value,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to add property {} to entity id {}", property, guid, e);
+            LOG.error("Unable to add property {} to entity id {} {} ", property, guid, value,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -377,16 +389,16 @@ public class EntityResource {
             return Response.ok(response).build();
         } catch (EntityNotFoundException e) {
             if(guids != null || !guids.isEmpty()) {
-                LOG.error("An entity with GUID={} does not exist", guids, e);
+                LOG.error("An entity with GUID={} does not exist ", guids, e);
             } else {
                 LOG.error("An entity with qualifiedName {}-{}-{} does not exist", entityType,
attribute, value, e);
             }
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         }  catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to delete entities {}", guids, e);
+            LOG.error("Unable to delete entities {} {} {} {} ", guids, entityType, attribute,
value, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to delete entities {}", guids, e);
+            LOG.error("Unable to delete entities {} {} {} {} ", guids, entityType, attribute,
value, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -420,10 +432,10 @@ public class EntityResource {
             return Response.status(status).entity(response).build();
 
         } catch (EntityNotFoundException e) {
-            LOG.error("An entity with GUID={} does not exist", guid, e);
+            LOG.error("An entity with GUID={} does not exist ", guid, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Bad GUID={}", guid, e);
+            LOG.error("Bad GUID={} ", guid, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
             LOG.error("Unable to get instance definition for GUID {}", guid, e);
@@ -564,8 +576,9 @@ public class EntityResource {
     @Consumes({Servlets.JSON_MEDIA_TYPE, MediaType.APPLICATION_JSON})
     @Produces(Servlets.JSON_MEDIA_TYPE)
     public Response addTrait(@Context HttpServletRequest request, @PathParam("guid") final
String guid) {
+        String traitDefinition = null;
         try {
-            final String traitDefinition = Servlets.getRequestPayload(request);
+            traitDefinition = Servlets.getRequestPayload(request);
             LOG.debug("Adding trait={} for entity={} ", traitDefinition, guid);
             metadataService.addTrait(guid, traitDefinition);
 
@@ -578,13 +591,13 @@ public class EntityResource {
 
             return Response.created(locationURI).entity(response).build();
         } catch (EntityNotFoundException | TypeNotFoundException e) {
-            LOG.error("An entity with GUID={} does not exist", guid, e);
+            LOG.error("An entity with GUID={} does not exist traitDef={} ", guid, traitDefinition,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to add trait for entity={}", guid, e);
+            LOG.error("Unable to add trait for entity={} traitDef={}", guid, traitDefinition,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to add trait for entity={}", guid, e);
+            LOG.error("Unable to add trait for entity={} traitDef={}", guid, traitDefinition,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }
@@ -611,7 +624,7 @@ public class EntityResource {
 
             return Response.ok(response).build();
         } catch (EntityNotFoundException | TypeNotFoundException e) {
-            LOG.error("An entity with GUID={} does not exist", guid, e);
+            LOG.error("An entity with GUID={} does not exist traitName={} ", guid, traitName,
e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.NOT_FOUND));
         } catch (TraitNotFoundException e) {
             LOG.error("The trait name={} for entity={} does not exist.", traitName, guid,
e);
@@ -650,10 +663,10 @@ public class EntityResource {
             response.put(AtlasClient.EVENTS, getJSONArray(events));
             return Response.ok(response).build();
         } catch (AtlasException | IllegalArgumentException e) {
-            LOG.error("Unable to get audit events for entity {}", guid, e);
+            LOG.error("Unable to get audit events for entity guid={} startKey={}", guid,
startKey, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.BAD_REQUEST));
         } catch (Throwable e) {
-            LOG.error("Unable to get audit events for entity {}", guid, e);
+            LOG.error("Unable to get audit events for entity guid={} startKey={}", guid,
startKey, e);
             throw new WebApplicationException(Servlets.getErrorResponse(e, Response.Status.INTERNAL_SERVER_ERROR));
         }
     }


Mime
View raw message