use of org.apache.atlas.annotation.Timed in project atlas by apache.
the class GlossaryREST method partialUpdateGlossaryTerm.
/**
* Partially update the glossary term
* @param termGuid unique identifier for glossary term
* @param partialUpdates Map containing keys as attribute names and values as corresponding attribute values
* @return Updated glossary term
* @throws AtlasBaseException
* @HTTP 200 If glossary partial update was successful
* @HTTP 404 If glossary term guid in invalid
* @HTTP 400 If partial attributes are invalid
*/
@PUT
@Path("/term/{termGuid}/partial")
@Timed
public AtlasGlossaryTerm partialUpdateGlossaryTerm(@PathParam("termGuid") String termGuid, Map<String, String> partialUpdates) throws AtlasBaseException {
Servlets.validateQueryParamLength("termGuid", termGuid);
AtlasPerfTracer perf = null;
try {
if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.partialUpdateGlossaryTerm()");
}
if (MapUtils.isEmpty(partialUpdates)) {
throw new AtlasBaseException(AtlasErrorCode.BAD_REQUEST, "PartialUpdates missing or empty");
}
AtlasGlossaryTerm glossaryTerm = glossaryService.getTerm(termGuid);
for (Map.Entry<String, String> entry : partialUpdates.entrySet()) {
try {
glossaryTerm.setAttribute(entry.getKey(), entry.getValue());
} catch (IllegalArgumentException e) {
throw new AtlasBaseException(AtlasErrorCode.INVALID_PARTIAL_UPDATE_ATTR, "Glossary Term", entry.getKey());
}
}
return glossaryService.updateTerm(glossaryTerm);
} finally {
AtlasPerfTracer.log(perf);
}
}
use of org.apache.atlas.annotation.Timed in project atlas by apache.
the class GlossaryREST method getGlossaryTerm.
/**
* Get specific glossary term
* @param termGuid unique identifier for glossary term
* @return Glossary term
* @throws AtlasBaseException
* @HTTP 200 If glossary term exists for given GUID
* @HTTP 404 If glossary term GUID is invalid
*/
@GET
@Path("/term/{termGuid}")
@Timed
public AtlasGlossaryTerm getGlossaryTerm(@PathParam("termGuid") String termGuid) throws AtlasBaseException {
Servlets.validateQueryParamLength("termGuid", termGuid);
AtlasPerfTracer perf = null;
try {
if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.getGlossaryTerm(" + termGuid + ")");
}
AtlasGlossaryTerm ret = glossaryService.getTerm(termGuid);
if (ret == null) {
throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND);
}
return ret;
} finally {
AtlasPerfTracer.log(perf);
}
}
use of org.apache.atlas.annotation.Timed in project atlas by apache.
the class GlossaryREST method getGlossary.
/**
* Get a specific Glossary
* @param glossaryGuid unique glossary identifier
* @return Glossary
* @throws AtlasBaseException
* @HTTP 200 If glossary with given guid exists
* @HTTP 404 If glossary GUID is invalid
*/
@GET
@Path("/{glossaryGuid}")
@Timed
public AtlasGlossary getGlossary(@PathParam("glossaryGuid") String glossaryGuid) throws AtlasBaseException {
Servlets.validateQueryParamLength("glossaryGuid", glossaryGuid);
AtlasPerfTracer perf = null;
try {
if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "GlossaryREST.getGlossary(" + glossaryGuid + ")");
}
AtlasGlossary ret = glossaryService.getGlossary(glossaryGuid);
if (ret == null) {
throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND);
}
return ret;
} finally {
AtlasPerfTracer.log(perf);
}
}
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);
}
}
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);
}
}
Aggregations