use of com.linkedin.pinot.common.restlet.swagger.Responses in project pinot by linkedin.
the class PinotInstanceRestletResource method getAllInstances.
/**
* Get all instances in the cluster
* @return List of all instances in the cluster.
* @throws JSONException
*/
@HttpVerb("get")
@Summary("Views all instances")
@Tags({ "instance" })
@Paths({ "/instances", "/instances/" })
@Responses({ @Response(statusCode = "200", description = "A list of instances") })
private Representation getAllInstances() throws JSONException {
JSONObject object = new JSONObject();
JSONArray instanceArray = new JSONArray();
List<String> instanceNames = _pinotHelixResourceManager.getAllInstanceNames();
for (String instanceName : instanceNames) {
instanceArray.put(instanceName);
}
object.put("instances", instanceArray);
return new StringRepresentation(object.toString());
}
use of com.linkedin.pinot.common.restlet.swagger.Responses in project pinot by linkedin.
the class PinotSchemaRestletResource method getSchema.
@HttpVerb("get")
@Summary("Gets a schema")
@Tags({ "schema" })
@Paths({ "/schemas/{schemaName}", "/schemas/{schemaName}/" })
@Responses({ @Response(statusCode = "200", description = "The contents of the specified schema"), @Response(statusCode = "404", description = "The specified schema does not exist") })
private Representation getSchema(@Parameter(name = "schemaName", in = "path", description = "The name of the schema to get") String schemaName) throws IOException {
LOGGER.info("looking for schema {}", schemaName);
Schema schema = _pinotHelixResourceManager.getSchema(schemaName);
if (schema == null) {
setStatus(Status.CLIENT_ERROR_NOT_FOUND);
return new StringRepresentation("{}");
}
LOGGER.info("schema string is : " + schema.getJSONSchema());
return new StringRepresentation(schema.getJSONSchema());
}
use of com.linkedin.pinot.common.restlet.swagger.Responses in project pinot by linkedin.
the class PinotSchemaRestletResource method getAllSchemas.
@HttpVerb("get")
@Summary("Get a list of all schemas")
@Tags({ "schema" })
@Paths({ "/schemas", "/schemas/" })
@Responses({ @Response(statusCode = "200", description = "A list of all schemas") })
private Representation getAllSchemas() {
List<String> schemaNames = _pinotHelixResourceManager.getSchemaNames();
JSONArray ret = new JSONArray();
if (schemaNames == null) {
return new StringRepresentation(ret.toString());
}
for (String schema : schemaNames) {
ret.put(schema);
}
return new StringRepresentation(ret.toString());
}
use of com.linkedin.pinot.common.restlet.swagger.Responses in project pinot by linkedin.
the class PinotSchemaRestletResource method uploadNewSchema.
@HttpVerb("post")
@Summary("Adds a new schema")
@Tags({ "schema" })
@Paths({ "/schemas", "/schemas/" })
@Responses({ @Response(statusCode = "200", description = "The schema was added"), @Response(statusCode = "500", description = "There was an error while adding the schema") })
private Representation uploadNewSchema() throws Exception {
File dataFile = getUploadContents();
if (dataFile != null) {
Schema schema = Schema.fromFile(dataFile);
try {
if (!schema.validate(LOGGER)) {
throw new RuntimeException("Schema validation failed");
}
_pinotHelixResourceManager.addOrUpdateSchema(schema);
return new StringRepresentation(dataFile + " sucessfully added", MediaType.TEXT_PLAIN);
} catch (Exception e) {
LOGGER.error("error adding schema ", e);
LOGGER.error("Caught exception in file upload", e);
setStatus(Status.SERVER_ERROR_INTERNAL);
ControllerRestApplication.getControllerMetrics().addMeteredGlobalValue(ControllerMeter.CONTROLLER_SCHEMA_UPLOAD_ERROR, 1L);
return PinotSegmentUploadRestletResource.exceptionToStringRepresentation(e);
}
} else {
// Some problem occurs, send back a simple line of text.
LOGGER.warn("No file was uploaded");
ControllerRestApplication.getControllerMetrics().addMeteredGlobalValue(ControllerMeter.CONTROLLER_SCHEMA_UPLOAD_ERROR, 1L);
setStatus(Status.SERVER_ERROR_INTERNAL);
return new StringRepresentation("schema not added", MediaType.TEXT_PLAIN);
}
}
Aggregations