1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.rest;
22
23 import java.io.IOException;
24
25 import javax.ws.rs.GET;
26 import javax.ws.rs.Produces;
27 import javax.ws.rs.core.CacheControl;
28 import javax.ws.rs.core.Context;
29 import javax.ws.rs.core.Response;
30 import javax.ws.rs.core.UriInfo;
31 import javax.ws.rs.core.Response.ResponseBuilder;
32
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35
36 import org.apache.hadoop.hbase.rest.model.StorageClusterVersionModel;
37
38 public class StorageClusterVersionResource extends ResourceBase {
39 private static final Log LOG =
40 LogFactory.getLog(StorageClusterVersionResource.class);
41
42 static CacheControl cacheControl;
43 static {
44 cacheControl = new CacheControl();
45 cacheControl.setNoCache(true);
46 cacheControl.setNoTransform(false);
47 }
48
49
50
51
52
53 public StorageClusterVersionResource() throws IOException {
54 super();
55 }
56
57 @GET
58 @Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
59 public Response get(final @Context UriInfo uriInfo) {
60 if (LOG.isDebugEnabled()) {
61 LOG.debug("GET " + uriInfo.getAbsolutePath());
62 }
63 servlet.getMetrics().incrementRequests(1);
64 try {
65 StorageClusterVersionModel model = new StorageClusterVersionModel();
66 model.setVersion(servlet.getAdmin().getClusterStatus().getHBaseVersion());
67 ResponseBuilder response = Response.ok(model);
68 response.cacheControl(cacheControl);
69 servlet.getMetrics().incrementSucessfulGetRequests(1);
70 return response.build();
71 } catch (IOException e) {
72 servlet.getMetrics().incrementFailedGetRequests(1);
73 return Response.status(Response.Status.SERVICE_UNAVAILABLE)
74 .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
75 .build();
76 }
77 }
78 }