drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arina-ielchiieva <...@git.apache.org>
Subject [GitHub] drill pull request #921: DRILL-4286 Graceful shutdown of drillbit
Date Wed, 15 Nov 2017 12:28:44 GMT
Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/921#discussion_r151110780
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java
---
    @@ -58,13 +63,170 @@
       @Inject UserAuthEnabled authEnabled;
       @Inject WorkManager work;
       @Inject SecurityContext sc;
    +  @Inject Drillbit drillbit;
     
       @GET
       @Produces(MediaType.TEXT_HTML)
       public Viewable getClusterInfo() {
         return ViewableWithPermissions.create(authEnabled.get(), "/rest/index.ftl", sc, getClusterInfoJSON());
       }
     
    +
    +  @SuppressWarnings("resource")
    +  @GET
    +  @Path("/state")
    +  @Produces(MediaType.APPLICATION_JSON)
    +  public Response getDrillbitStatus(){
    +    Collection<DrillbitInfo> drillbits = getClusterInfoJSON().getDrillbits();
    +    Map<String, String> drillStatusMap = new HashMap<String ,String>();
    +    for (DrillbitInfo drillbit : drillbits) {
    +      drillStatusMap.put(drillbit.getAddress()+"-"+drillbit.getUserPort(),drillbit.getState());
    +    }
    +    return Response.ok()
    +            .entity(drillStatusMap)
    +            .header("Access-Control-Allow-Origin", "*")
    +            .header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
    +              .header("Access-Control-Allow-Credentials","true")
    +            .allow("OPTIONS").build();
    +  }
    +
    +  @SuppressWarnings("resource")
    +  @GET
    +  @Path("/graceperiod")
    +  @Produces(MediaType.APPLICATION_JSON)
    +  public Map<String, Integer> getGracePeriod(){
    +
    +    final DrillConfig config = work.getContext().getConfig();
    +    final int gracePeriod = config.getInt(ExecConstants.GRACE_PERIOD);
    +    Map<String, Integer> gracePeriodMap = new HashMap<String, Integer>();
    +    gracePeriodMap.put("graceperiod",gracePeriod);
    +    return gracePeriodMap;
    +  }
    +
    +  @SuppressWarnings("resource")
    +  @GET
    +  @Path("/queriesCount")
    +  @Produces(MediaType.APPLICATION_JSON)
    +  public Response getRemainingQueries() {
    +    Map<String, Integer> queriesInfo = new HashMap<String, Integer>();
    +    queriesInfo = work.getRemainingQueries();
    +    return Response.ok()
    +            .entity(queriesInfo)
    +            .header("Access-Control-Allow-Origin", "*")
    +            .header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
    +              .header("Access-Control-Allow-Credentials","true")
    +            .allow("OPTIONS").build();
    +  }
    +
    +  @SuppressWarnings("resource")
    +  @POST
    +  @Path("/graceful_shutdown")
    +  @Produces(MediaType.APPLICATION_JSON)
    +  public Response shutdownDrillbit() throws Exception {
    +    Map<String, String> shutdownInfo = new HashMap<String, String>();
    +    try {
    +      new Thread(new Runnable() {
    +        public void run() {
    +          try {
    +            drillbit.close();
    +          } catch (Exception e) {
    +            e.printStackTrace();
    --- End diff --
    
    There are at least 7 usages in code all should be removed.


---

Mime
View raw message