Index: shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java =================================================================== --- shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java (revision 1519789) +++ shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java (working copy) @@ -740,7 +740,7 @@ throw new UnsupportedOperationException("HCatalog does not support Hadoop 0.20.x"); } @Override - public WebHCatJTShim getWebHCatShim(Configuration conf) throws IOException { + public WebHCatJTShim getWebHCatShim(Configuration conf, UserGroupInformation ugi) throws IOException { throw new UnsupportedOperationException("WebHCat does not support Hadoop 0.20.x"); } } Index: shims/src/0.20S/java/org/apache/hadoop/mapred/WebHCatJTShim20S.java =================================================================== --- shims/src/0.20S/java/org/apache/hadoop/mapred/WebHCatJTShim20S.java (revision 1519789) +++ shims/src/0.20S/java/org/apache/hadoop/mapred/WebHCatJTShim20S.java (working copy) @@ -19,9 +19,8 @@ /** * Create a connection to the Job Tracker. */ - public WebHCatJTShim20S(Configuration conf) + public WebHCatJTShim20S(Configuration conf, UserGroupInformation ugi) throws IOException { - UserGroupInformation ugi = UserGroupInformation.getLoginUser(); cnx = (JobSubmissionProtocol) RPC.getProxy(JobSubmissionProtocol.class, JobSubmissionProtocol.versionID, Index: shims/src/0.20S/java/org/apache/hadoop/hive/shims/Hadoop20SShims.java =================================================================== --- shims/src/0.20S/java/org/apache/hadoop/hive/shims/Hadoop20SShims.java (revision 1519789) +++ shims/src/0.20S/java/org/apache/hadoop/hive/shims/Hadoop20SShims.java (working copy) @@ -44,6 +44,7 @@ import org.apache.hadoop.mapreduce.TaskID; import org.apache.hadoop.util.Progressable; import org.apache.hadoop.mapred.lib.TotalOrderPartitioner; +import org.apache.hadoop.security.UserGroupInformation; /** @@ -326,7 +327,7 @@ } } @Override - public WebHCatJTShim getWebHCatShim(Configuration conf) throws IOException { - return new WebHCatJTShim20S(conf);//this has state, so can't be cached + public WebHCatJTShim getWebHCatShim(Configuration conf, UserGroupInformation ugi) throws IOException { + return new WebHCatJTShim20S(conf, ugi);//this has state, so can't be cached } } Index: shims/src/0.23/java/org/apache/hadoop/mapred/WebHCatJTShim23.java =================================================================== --- shims/src/0.23/java/org/apache/hadoop/mapred/WebHCatJTShim23.java (revision 1519789) +++ shims/src/0.23/java/org/apache/hadoop/mapred/WebHCatJTShim23.java (working copy) @@ -1,6 +1,7 @@ package org.apache.hadoop.mapred; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.hive.shims.HadoopShims.WebHCatJTShim; import java.io.IOException; @@ -11,7 +12,7 @@ /** * Create a connection to the Job Tracker. */ - public WebHCatJTShim23(Configuration conf) + public WebHCatJTShim23(Configuration conf, final UserGroupInformation ugi) throws IOException { jc = new JobClient(conf); Index: shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java =================================================================== --- shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java (revision 1519789) +++ shims/src/0.23/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java (working copy) @@ -49,6 +49,7 @@ import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.util.Progressable; import org.apache.hadoop.mapred.lib.TotalOrderPartitioner; +import org.apache.hadoop.security.UserGroupInformation; /** @@ -335,7 +336,7 @@ } } @Override - public WebHCatJTShim getWebHCatShim(Configuration conf) throws IOException { - return new WebHCatJTShim23(conf);//this has state, so can't be cached + public WebHCatJTShim getWebHCatShim(Configuration conf, UserGroupInformation ugi) throws IOException { + return new WebHCatJTShim23(conf, ugi);//this has state, so can't be cached } } Index: shims/src/common/java/org/apache/hadoop/hive/shims/HadoopShims.java =================================================================== --- shims/src/common/java/org/apache/hadoop/hive/shims/HadoopShims.java (revision 1519789) +++ shims/src/common/java/org/apache/hadoop/hive/shims/HadoopShims.java (working copy) @@ -509,7 +509,7 @@ * Provides a Hadoop JobTracker shim. * @param conf not {@code null} */ - public WebHCatJTShim getWebHCatShim(Configuration conf) throws IOException; + public WebHCatJTShim getWebHCatShim(Configuration conf, UserGroupInformation ugi) throws IOException; public interface WebHCatJTShim { /** * Grab a handle to a job that is already known to the JobTracker. Index: hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/ListDelegator.java =================================================================== --- hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/ListDelegator.java (revision 1519789) +++ hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/ListDelegator.java (working copy) @@ -36,13 +36,13 @@ super(appConf); } - public List run(String user) + public List run(String user, boolean showall) throws NotAuthorizedException, BadParam, IOException, InterruptedException { - UserGroupInformation ugi = UserGroupInformation.createRemoteUser(user); + UserGroupInformation ugi = UgiFactory.getUgi(user); WebHCatJTShim tracker = null; try { - tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf); + tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf, ugi); ArrayList ids = new ArrayList(); @@ -54,7 +54,7 @@ try { String id = job.getJobID().toString(); state = new JobState(id, Main.getAppConfigInstance()); - if (user.equals(state.getUser())) + if (showall || user.equals(state.getUser())) ids.add(id); } finally { if (state != null) { Index: hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/DeleteDelegator.java =================================================================== --- hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/DeleteDelegator.java (revision 1519789) +++ hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/DeleteDelegator.java (working copy) @@ -37,11 +37,11 @@ public QueueStatusBean run(String user, String id) throws NotAuthorizedException, BadParam, IOException, InterruptedException { - UserGroupInformation ugi = UserGroupInformation.createRemoteUser(user); + UserGroupInformation ugi = UgiFactory.getUgi(user); WebHCatJTShim tracker = null; JobState state = null; try { - tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf); + tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf, ugi); JobID jobid = StatusDelegator.StringToJobID(id); if (jobid == null) throw new BadParam("Invalid jobid: " + id); Index: hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/Server.java =================================================================== --- hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/Server.java (revision 1519789) +++ hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/Server.java (working copy) @@ -717,13 +717,13 @@ @GET @Path("queue") @Produces({MediaType.APPLICATION_JSON}) - public List showQueueList() + public List showQueueList(@QueryParam("showall") boolean showall) throws NotAuthorizedException, BadParam, IOException, InterruptedException { verifyUser(); ListDelegator d = new ListDelegator(appConf); - return d.run(getDoAsUser()); + return d.run(getDoAsUser(), showall); } /** Index: hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/StatusDelegator.java =================================================================== --- hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/StatusDelegator.java (revision 1519789) +++ hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/StatusDelegator.java (working copy) @@ -24,6 +24,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.shims.HadoopShims.WebHCatJTShim; import org.apache.hadoop.hive.shims.ShimLoader; +import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.mapred.JobID; import org.apache.hadoop.mapred.JobProfile; import org.apache.hadoop.mapred.JobStatus; @@ -45,7 +46,8 @@ WebHCatJTShim tracker = null; JobState state = null; try { - tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf); + UserGroupInformation ugi = UgiFactory.getUgi(user); + tracker = ShimLoader.getHadoopShims().getWebHCatShim(appConf, ugi); JobID jobid = StatusDelegator.StringToJobID(id); if (jobid == null) throw new BadParam("Invalid jobid: " + id);