protected int runTempletonControllerJob(TempletonControllerJob controllerJob, List<String> args)
    throws IOException, InterruptedException, TimeoutException, Exception {
    String[] array = new String[args.size()];
    return ToolRunner.run(controllerJob, args.toArray(array));
  }
Enqueue the TempletonControllerJob directly calling doAs.
hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/LauncherDelegator.java