public int run()

in hbase-tools/src/main/java/org/apache/hbase/RegionsOnUnknownServersRecoverer.java [62:109]


  public int run(String[] args) throws Exception {
    String logPath = null;
    if(args.length>=1 && args.length<3) {
      logPath = args[0];
      if(args.length==2) {
        dryRun = args[1].equals("dryRun");
      }
    } else {
      LOG.error("Wrong number of arguments. "
        + "Arguments are: <PATH_TO_MASTER_LOGS> [dryRun]");
      return 1;
    }
    BufferedReader reader = null;
    try(Connection conn = ConnectionFactory.createConnection(conf)) {
      reader = new BufferedReader(new FileReader(new File(logPath)));
      String line = null;
      while((line = reader.readLine()) != null){
        if(line.contains(CATALOG_JANITOR)){
          String[] servers = line.split(UNKNOWN_SERVER);
          for(int i=1; i<servers.length; i++){
            String server = servers[i].split("/")[0];
            if(!unknownServers.contains(server)){
              LOG.info("Adding server {} to our list of servers that will have SCPs.", server);
              unknownServers.add(server);
            }
          }
        }
      }
      if(dryRun){
        StringBuilder builder =
          new StringBuilder("This is a dry run, no SCPs will be submitted. Found unknown servers:");
        builder.append("\n");
        unknownServers.stream().forEach(s -> builder.append(s).append("\n"));
        LOG.info(builder.toString());
      } else {
        HBCK2 hbck2 = new HBCK2(conf);
        LOG.info("Submitting SCPs for the found unknown servers with "
          + "HBCK2 scheduleRecoveries option.");
        hbck2.scheduleRecoveries(conn.getHbck(), unknownServers.toArray(new String[] {}));
      }
    } catch(Exception e){
      LOG.error("Recovering unknown servers failed:", e);
      return 2;
    } finally {
      reader.close();
    }
    return 0;
  }