diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/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/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java index 88aeefd8738..16e938eb11b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/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/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java @@ -227,6 +227,12 @@ public Response deleteService(@Context HttpServletRequest request, UserGroupInformation ugi = getProxyUser(request); LOG.info("DELETE: deleteService for appName = {} user = {}", appName, ugi); + Service app = getServiceFromClient(ugi, appName); + if (app.getState() != ServiceState.STOPPED || + app.getState() != ServiceState.FAILED) { + LOG.info("Cannot be deleted. {} state is {}", appName, app.getState().name()); + return formatResponse(Status.BAD_REQUEST, "Running service cannot be deleted"); + } return stopService(appName, true, ugi); } catch (AccessControlException e) { return formatResponse(Status.FORBIDDEN, e.getMessage());