[01/44] hadoop git commit: YARN-7984. Improved YARN service stop/destroy and clean up. Contributed by Billie Rinaldi

2018-04-13 Thread xyao
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 Yang 
Authored: 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

2018-04-12 Thread billie
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 Yang 
Authored: 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

2018-04-10 Thread eyang
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 Yang 
Authored: 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);
+