package netflix.adminresources;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import netflix.karyon.health.HealthCheckHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/healthcheck")
@Produces(MediaType.TEXT_HTML)
@Singleton
public class HealthCheckResource {
private static final Logger logger = LoggerFactory.getLogger(HealthCheckResource.class);
private HealthCheckHandler healthCheckHandler;
@Inject
public HealthCheckResource(HealthCheckHandler healthCheckHandler) {
this.healthCheckHandler = healthCheckHandler;
}
@GET
public Response getHealthCheck() {
try {
final int status = healthCheckHandler.getStatus();
return Response.ok().status(status).build();
} catch (Exception e) {
logger.error("Exception in HealthCheckResource -- ", e);
}
return Response.status(Response.Status.BAD_REQUEST.getStatusCode()).build();
}
}