Search in sources :

Example 1 with Timed

use of org.apache.atlas.annotation.Timed in project atlas by apache.

the class GlossaryREST method getEntitiesAssignedWithTerm.

/**
 * Get all entity headers assigned with the specified term
 * @param termGuid GUID of the term
 * @param limit page size - by default there is no paging
 * @param offset offset for pagination purpose
 * @param sort ASC (default) or DESC
 * @return
 * @throws AtlasBaseException
 * @HTTP 200 List of entity headers (if any) for the given glossary or an empty list
 * @HTTP 404 If glossary term guid in invalid
 */
@GET
@Path("/terms/{termGuid}/assignedEntities")
@Timed
public List<AtlasRelatedObjectId> getEntitiesAssignedWithTerm(@PathParam("termGuid") String termGuid, @DefaultValue("-1") @QueryParam("limit") String limit, @DefaultValue("0") @QueryParam("offset") String offset, @DefaultValue("ASC") @QueryParam("sort") final String sort) throws AtlasBaseException {
    Servlets.validateQueryParamLength("termGuid", termGuid);
    AtlasPerfTracer perf = null;
    try {
        if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
            perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.getEntitiesAssignedWithTerm(" + termGuid + ")");
        }
        return glossaryService.getAssignedEntities(termGuid, Integer.parseInt(offset), Integer.parseInt(limit), toSortOrder(sort));
    } finally {
        AtlasPerfTracer.log(perf);
    }
}
Also used : AtlasPerfTracer(org.apache.atlas.utils.AtlasPerfTracer) Path(javax.ws.rs.Path) Timed(org.apache.atlas.annotation.Timed) GET(javax.ws.rs.GET)

Example 2 with Timed

use of org.apache.atlas.annotation.Timed in project atlas by apache.

the class GlossaryREST method updateGlossaryTerm.

/**
 * Update the given glossary term
 * @param termGuid unique identifier for glossary term
 * @param glossaryTerm updated glossary term
 * @return Updated glossary term
 * @throws AtlasBaseException
 * @HTTP 200 If glossary term update was successful
 * @HTTP 404 If glossary term guid in invalid
 * @HTTP 400 If Glossary temr definition has invalid or missing information
 */
@PUT
@Path("/term/{termGuid}")
@Timed
public AtlasGlossaryTerm updateGlossaryTerm(@PathParam("termGuid") String termGuid, AtlasGlossaryTerm glossaryTerm) throws AtlasBaseException {
    Servlets.validateQueryParamLength("termGuid", termGuid);
    AtlasPerfTracer perf = null;
    try {
        if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
            perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.updateGlossaryTerm()");
        }
        glossaryTerm.setGuid(termGuid);
        return glossaryService.updateTerm(glossaryTerm);
    } finally {
        AtlasPerfTracer.log(perf);
    }
}
Also used : AtlasPerfTracer(org.apache.atlas.utils.AtlasPerfTracer) Path(javax.ws.rs.Path) Timed(org.apache.atlas.annotation.Timed) PUT(javax.ws.rs.PUT)

Example 3 with Timed

use of org.apache.atlas.annotation.Timed in project atlas by apache.

the class GlossaryREST method partialUpdateGlossary.

/**
 * Partially update the glossary
 * @param glossaryGuid unique identifier for glossary term
 * @param partialUpdates Map containing keys as attribute names and values as corresponding attribute values
 * @return Updated glossary
 * @throws AtlasBaseException
 * @HTTP 200 If glossary partial update was successful
 * @HTTP 404 If glossary guid in invalid
 * @HTTP 400 If partial update parameters are invalid
 */
@PUT
@Path("/{glossaryGuid}/partial")
@Timed
public AtlasGlossary partialUpdateGlossary(@PathParam("glossaryGuid") String glossaryGuid, Map<String, String> partialUpdates) throws AtlasBaseException {
    Servlets.validateQueryParamLength("glossaryGuid", glossaryGuid);
    AtlasPerfTracer perf = null;
    try {
        if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
            perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.partialUpdateGlossary()");
        }
        if (MapUtils.isEmpty(partialUpdates)) {
            throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "PartialUpdates missing or empty");
        }
        AtlasGlossary glossary = glossaryService.getGlossary(glossaryGuid);
        for (Map.Entry<String, String> entry : partialUpdates.entrySet()) {
            try {
                glossary.setAttribute(entry.getKey(), entry.getValue());
            } catch (IllegalArgumentException e) {
                throw new AtlasBaseException(AtlasErrorCode.INVALID_PARTIAL_UPDATE_ATTR, entry.getKey(), "Glossary");
            }
        }
        return glossaryService.updateGlossary(glossary);
    } finally {
        AtlasPerfTracer.log(perf);
    }
}
Also used : AtlasGlossary(org.apache.atlas.model.glossary.AtlasGlossary) AtlasBaseException(org.apache.atlas.exception.AtlasBaseException) AtlasPerfTracer(org.apache.atlas.utils.AtlasPerfTracer) Map(java.util.Map) Path(javax.ws.rs.Path) Timed(org.apache.atlas.annotation.Timed) PUT(javax.ws.rs.PUT)

Example 4 with Timed

use of org.apache.atlas.annotation.Timed in project atlas by apache.

the class GlossaryREST method getGlossaryCategory.

/**
 * Get specific glossary category
 * @param categoryGuid unique identifier for glossary category
 * @return Glossary category
 * @throws AtlasBaseException
 * @HTTP 200 If glossary category exists for given GUID
 * @HTTP 404 If glossary category GUID is invalid
 */
@GET
@Path("/category/{categoryGuid}")
@Timed
public AtlasGlossaryCategory getGlossaryCategory(@PathParam("categoryGuid") String categoryGuid) throws AtlasBaseException {
    Servlets.validateQueryParamLength("categoryGuid", categoryGuid);
    AtlasPerfTracer perf = null;
    try {
        if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
            perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.getGlossaryCategory(" + categoryGuid + ")");
        }
        AtlasGlossaryCategory ret = glossaryService.getCategory(categoryGuid);
        if (ret == null) {
            throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND);
        }
        return ret;
    } finally {
        AtlasPerfTracer.log(perf);
    }
}
Also used : AtlasBaseException(org.apache.atlas.exception.AtlasBaseException) AtlasPerfTracer(org.apache.atlas.utils.AtlasPerfTracer) AtlasGlossaryCategory(org.apache.atlas.model.glossary.AtlasGlossaryCategory) Path(javax.ws.rs.Path) Timed(org.apache.atlas.annotation.Timed) GET(javax.ws.rs.GET)

Example 5 with Timed

use of org.apache.atlas.annotation.Timed in project atlas by apache.

the class GlossaryREST method partialUpdateGlossaryCategory.

/**
 * Partially update the glossary category
 * @param categoryGuid unique identifier for glossary term
 * @param partialUpdates Map containing keys as attribute names and values as corresponding attribute values
 * @return Updated glossary category
 * @throws AtlasBaseException
 * @HTTP 200 If glossary category partial update was successful
 * @HTTP 404 If glossary category guid in invalid
 * @HTTP 400 If category attributes are invalid
 */
@PUT
@Path("/category/{categoryGuid}/partial")
@Timed
public AtlasGlossaryCategory partialUpdateGlossaryCategory(@PathParam("categoryGuid") String categoryGuid, Map<String, String> partialUpdates) throws AtlasBaseException {
    Servlets.validateQueryParamLength("categoryGuid", categoryGuid);
    AtlasPerfTracer perf = null;
    try {
        if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
            perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.partialUpdateGlossaryCategory()");
        }
        if (MapUtils.isEmpty(partialUpdates)) {
            throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "PartialUpdates missing or empty");
        }
        AtlasGlossaryCategory glossaryCategory = glossaryService.getCategory(categoryGuid);
        for (Map.Entry<String, String> entry : partialUpdates.entrySet()) {
            try {
                glossaryCategory.setAttribute(entry.getKey(), entry.getValue());
            } catch (IllegalArgumentException e) {
                throw new AtlasBaseException(AtlasErrorCode.INVALID_PARTIAL_UPDATE_ATTR, "Glossary Category", entry.getKey());
            }
        }
        return glossaryService.updateCategory(glossaryCategory);
    } finally {
        AtlasPerfTracer.log(perf);
    }
}
Also used : AtlasBaseException(org.apache.atlas.exception.AtlasBaseException) AtlasPerfTracer(org.apache.atlas.utils.AtlasPerfTracer) AtlasGlossaryCategory(org.apache.atlas.model.glossary.AtlasGlossaryCategory) Map(java.util.Map) Path(javax.ws.rs.Path) Timed(org.apache.atlas.annotation.Timed) PUT(javax.ws.rs.PUT)

Aggregations

Timed (org.apache.atlas.annotation.Timed)74 Path (javax.ws.rs.Path)72 AtlasPerfTracer (org.apache.atlas.utils.AtlasPerfTracer)58 GET (javax.ws.rs.GET)45 AtlasBaseException (org.apache.atlas.exception.AtlasBaseException)23 AtlasEntityType (org.apache.atlas.type.AtlasEntityType)14 PUT (javax.ws.rs.PUT)12 DELETE (javax.ws.rs.DELETE)9 POST (javax.ws.rs.POST)6 Map (java.util.Map)5 AtlasGlossary (org.apache.atlas.model.glossary.AtlasGlossary)3 HashMap (java.util.HashMap)2 Produces (javax.ws.rs.Produces)2 SearchFilter (org.apache.atlas.model.SearchFilter)2 AtlasGlossaryCategory (org.apache.atlas.model.glossary.AtlasGlossaryCategory)2 AtlasGlossaryTerm (org.apache.atlas.model.glossary.AtlasGlossaryTerm)2 AtlasUserSavedSearch (org.apache.atlas.model.profile.AtlasUserSavedSearch)2 AtlasBaseTypeDef (org.apache.atlas.model.typedef.AtlasBaseTypeDef)2 AtlasBusinessMetadataDef (org.apache.atlas.model.typedef.AtlasBusinessMetadataDef)2 AtlasClassificationDef (org.apache.atlas.model.typedef.AtlasClassificationDef)2