[01/44] hadoop git commit: YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi
Repository: hadoop Updated Branches: refs/heads/HDFS-7240 66610b5fd -> 72a3743cc YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d5537990 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d5537990 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d5537990 Branch: refs/heads/HDFS-7240 Commit: d553799030a5a64df328319aceb35734d0b2de20 Parents: 8ab776d Author: Eric YangAuthored: Tue Apr 10 17:40:49 2018 -0400 Committer: Eric Yang Committed: Tue Apr 10 17:40:49 2018 -0400 -- .../hadoop/yarn/service/webapp/ApiServer.java | 47 +++--- .../hadoop/yarn/service/ServiceClientTest.java | 6 ++ .../hadoop/yarn/service/TestApiServer.java | 26 ++ .../yarn/service/client/ServiceClient.java | 93 +++- .../hadoop/yarn/service/ServiceTestUtils.java | 15 +++- .../yarn/service/TestYarnNativeServices.java| 42 - 6 files changed, 191 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d5537990/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java index 59ee05d..14c77f6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java @@ -231,30 +231,40 @@ public class ApiServer { e.getCause().getMessage()); } catch (YarnException | FileNotFoundException e) { return formatResponse(Status.NOT_FOUND, e.getMessage()); -} catch (IOException | InterruptedException e) { +} catch (Exception e) { LOG.error("Fail to stop service: {}", e); return formatResponse(Status.INTERNAL_SERVER_ERROR, e.getMessage()); } } private Response stopService(String appName, boolean destroy, - final UserGroupInformation ugi) throws IOException, - InterruptedException, YarnException, FileNotFoundException { + final UserGroupInformation ugi) throws Exception { int result = ugi.doAs(new PrivilegedExceptionAction() { @Override - public Integer run() throws IOException, YarnException, - FileNotFoundException { + public Integer run() throws Exception { int result = 0; ServiceClient sc = getServiceClient(); sc.init(YARN_CONFIG); sc.start(); -result = sc.actionStop(appName, destroy); -if (result == EXIT_SUCCESS) { - LOG.info("Successfully stopped service {}", appName); +Exception stopException = null; +try { + result = sc.actionStop(appName, destroy); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully stopped service {}", appName); + } +} catch (Exception e) { + LOG.info("Got exception stopping service", e); + stopException = e; } if (destroy) { result = sc.actionDestroy(appName); - LOG.info("Successfully deleted service {}", appName); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully deleted service {}", appName); + } +} else { + if (stopException != null) { +throw stopException; + } } sc.close(); return result; @@ -262,8 +272,21 @@ public class ApiServer { }); ServiceStatus serviceStatus = new ServiceStatus(); if (destroy) { - serviceStatus.setDiagnostics("Successfully destroyed service " + - appName); + if (result == EXIT_SUCCESS) { +serviceStatus.setDiagnostics("Successfully destroyed service " + +appName); + } else { +if (result == EXIT_NOT_FOUND) { + serviceStatus + .setDiagnostics("Service " + appName + " doesn't exist"); + return formatResponse(Status.BAD_REQUEST, serviceStatus); +} else { + serviceStatus + .setDiagnostics("Service " + appName + " error cleaning up " + + "registry"); + return formatResponse(Status.INTERNAL_SERVER_ERROR, serviceStatus);
hadoop git commit: YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi
Repository: hadoop Updated Branches: refs/heads/branch-3.1 035e0f97e -> a375fe826 YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi (cherry picked from commit d553799030a5a64df328319aceb35734d0b2de20) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a375fe82 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a375fe82 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a375fe82 Branch: refs/heads/branch-3.1 Commit: a375fe82631920c98fb1d45b13e3e82108365baf Parents: 035e0f9 Author: Eric YangAuthored: Tue Apr 10 17:40:49 2018 -0400 Committer: Billie Rinaldi Committed: Thu Apr 12 18:19:58 2018 -0700 -- .../hadoop/yarn/service/webapp/ApiServer.java | 47 +++--- .../hadoop/yarn/service/ServiceClientTest.java | 6 ++ .../hadoop/yarn/service/TestApiServer.java | 26 ++ .../yarn/service/client/ServiceClient.java | 93 +++- .../hadoop/yarn/service/ServiceTestUtils.java | 15 +++- .../yarn/service/TestYarnNativeServices.java| 42 - 6 files changed, 191 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a375fe82/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java index 59ee05d..14c77f6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java @@ -231,30 +231,40 @@ public class ApiServer { e.getCause().getMessage()); } catch (YarnException | FileNotFoundException e) { return formatResponse(Status.NOT_FOUND, e.getMessage()); -} catch (IOException | InterruptedException e) { +} catch (Exception e) { LOG.error("Fail to stop service: {}", e); return formatResponse(Status.INTERNAL_SERVER_ERROR, e.getMessage()); } } private Response stopService(String appName, boolean destroy, - final UserGroupInformation ugi) throws IOException, - InterruptedException, YarnException, FileNotFoundException { + final UserGroupInformation ugi) throws Exception { int result = ugi.doAs(new PrivilegedExceptionAction() { @Override - public Integer run() throws IOException, YarnException, - FileNotFoundException { + public Integer run() throws Exception { int result = 0; ServiceClient sc = getServiceClient(); sc.init(YARN_CONFIG); sc.start(); -result = sc.actionStop(appName, destroy); -if (result == EXIT_SUCCESS) { - LOG.info("Successfully stopped service {}", appName); +Exception stopException = null; +try { + result = sc.actionStop(appName, destroy); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully stopped service {}", appName); + } +} catch (Exception e) { + LOG.info("Got exception stopping service", e); + stopException = e; } if (destroy) { result = sc.actionDestroy(appName); - LOG.info("Successfully deleted service {}", appName); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully deleted service {}", appName); + } +} else { + if (stopException != null) { +throw stopException; + } } sc.close(); return result; @@ -262,8 +272,21 @@ public class ApiServer { }); ServiceStatus serviceStatus = new ServiceStatus(); if (destroy) { - serviceStatus.setDiagnostics("Successfully destroyed service " + - appName); + if (result == EXIT_SUCCESS) { +serviceStatus.setDiagnostics("Successfully destroyed service " + +appName); + } else { +if (result == EXIT_NOT_FOUND) { + serviceStatus + .setDiagnostics("Service " + appName + " doesn't exist"); + return formatResponse(Status.BAD_REQUEST, serviceStatus); +} else { + serviceStatus + .setDiagnostics("Service " + appName + " error cleaning up " + + "registry");
hadoop git commit: YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi
Repository: hadoop Updated Branches: refs/heads/trunk 8ab776d61 -> d55379903 YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d5537990 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d5537990 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d5537990 Branch: refs/heads/trunk Commit: d553799030a5a64df328319aceb35734d0b2de20 Parents: 8ab776d Author: Eric YangAuthored: Tue Apr 10 17:40:49 2018 -0400 Committer: Eric Yang Committed: Tue Apr 10 17:40:49 2018 -0400 -- .../hadoop/yarn/service/webapp/ApiServer.java | 47 +++--- .../hadoop/yarn/service/ServiceClientTest.java | 6 ++ .../hadoop/yarn/service/TestApiServer.java | 26 ++ .../yarn/service/client/ServiceClient.java | 93 +++- .../hadoop/yarn/service/ServiceTestUtils.java | 15 +++- .../yarn/service/TestYarnNativeServices.java| 42 - 6 files changed, 191 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d5537990/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java index 59ee05d..14c77f6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java @@ -231,30 +231,40 @@ public class ApiServer { e.getCause().getMessage()); } catch (YarnException | FileNotFoundException e) { return formatResponse(Status.NOT_FOUND, e.getMessage()); -} catch (IOException | InterruptedException e) { +} catch (Exception e) { LOG.error("Fail to stop service: {}", e); return formatResponse(Status.INTERNAL_SERVER_ERROR, e.getMessage()); } } private Response stopService(String appName, boolean destroy, - final UserGroupInformation ugi) throws IOException, - InterruptedException, YarnException, FileNotFoundException { + final UserGroupInformation ugi) throws Exception { int result = ugi.doAs(new PrivilegedExceptionAction() { @Override - public Integer run() throws IOException, YarnException, - FileNotFoundException { + public Integer run() throws Exception { int result = 0; ServiceClient sc = getServiceClient(); sc.init(YARN_CONFIG); sc.start(); -result = sc.actionStop(appName, destroy); -if (result == EXIT_SUCCESS) { - LOG.info("Successfully stopped service {}", appName); +Exception stopException = null; +try { + result = sc.actionStop(appName, destroy); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully stopped service {}", appName); + } +} catch (Exception e) { + LOG.info("Got exception stopping service", e); + stopException = e; } if (destroy) { result = sc.actionDestroy(appName); - LOG.info("Successfully deleted service {}", appName); + if (result == EXIT_SUCCESS) { +LOG.info("Successfully deleted service {}", appName); + } +} else { + if (stopException != null) { +throw stopException; + } } sc.close(); return result; @@ -262,8 +272,21 @@ public class ApiServer { }); ServiceStatus serviceStatus = new ServiceStatus(); if (destroy) { - serviceStatus.setDiagnostics("Successfully destroyed service " + - appName); + if (result == EXIT_SUCCESS) { +serviceStatus.setDiagnostics("Successfully destroyed service " + +appName); + } else { +if (result == EXIT_NOT_FOUND) { + serviceStatus + .setDiagnostics("Service " + appName + " doesn't exist"); + return formatResponse(Status.BAD_REQUEST, serviceStatus); +} else { + serviceStatus + .setDiagnostics("Service " + appName + " error cleaning up " + + "registry"); + return formatResponse(Status.INTERNAL_SERVER_ERROR, serviceStatus); +