You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by as...@apache.org on 2016/12/12 16:09:11 UTC
[35/50] [abbrv] hadoop git commit: YARN-5970. Validate application
update timeout request parameters. Contributed by Rohith Sharma K S.
YARN-5970. Validate application update timeout request parameters. Contributed by Rohith Sharma K S.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/74d0066d
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/74d0066d
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/74d0066d
Branch: refs/heads/YARN-5085
Commit: 74d0066d3392169bec872f438a0818e2f5323010
Parents: 9ef89ed
Author: Sunil G <su...@apache.org>
Authored: Thu Dec 8 15:53:56 2016 +0530
Committer: Sunil G <su...@apache.org>
Committed: Thu Dec 8 15:53:56 2016 +0530
----------------------------------------------------------------------
.../java/org/apache/hadoop/yarn/util/Times.java | 3 ++
.../server/resourcemanager/RMServerUtils.java | 3 +-
.../resourcemanager/webapp/RMWebServices.java | 10 ++---
.../TestRMWebServicesAppsModification.java | 39 ++++++++++++++------
4 files changed, 38 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/74d0066d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/Times.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/Times.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/Times.java
index f113bd3..3c41558 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/Times.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/Times.java
@@ -105,6 +105,9 @@ public class Times {
*/
public static long parseISO8601ToLocalTimeInMillis(String isoString)
throws ParseException {
+ if (isoString == null) {
+ throw new ParseException("Invalid input.", -1);
+ }
return isoFormat.get().parse(isoString).getTime();
}
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/74d0066d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMServerUtils.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMServerUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMServerUtils.java
index a0cdf68..74898ca 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMServerUtils.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMServerUtils.java
@@ -507,7 +507,8 @@ public class RMServerUtils {
} catch (ParseException ex) {
String message =
"Expire time is not in ISO8601 format. ISO8601 supported "
- + "format is yyyy-MM-dd'T'HH:mm:ss.SSSZ";
+ + "format is yyyy-MM-dd'T'HH:mm:ss.SSSZ. Configured "
+ + "timeout value is " + timeout.getValue();
throw new YarnException(message, ex);
}
if (expireTime < currentTimeMillis) {
http://git-wip-us.apache.org/repos/asf/hadoop/blob/74d0066d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java
index a46fb81..bd0602b 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java
@@ -2434,7 +2434,7 @@ public class RMWebServices extends WebServices {
}
@GET
- @Path("/apps/{appid}/timeout/{type}")
+ @Path("/apps/{appid}/timeouts/{type}")
@Produces({ MediaType.APPLICATION_JSON + "; " + JettyUtils.UTF_8,
MediaType.APPLICATION_XML + "; " + JettyUtils.UTF_8 })
public AppTimeoutInfo getAppTimeout(@Context HttpServletRequest hsr,
@@ -2571,10 +2571,10 @@ public class RMWebServices extends WebServices {
private Response updateApplicationTimeouts(final RMApp app,
UserGroupInformation callerUGI, final AppTimeoutInfo appTimeout)
throws IOException, InterruptedException {
-
- if (appTimeout.getTimeoutType() == null) {
- return Response.status(Status.BAD_REQUEST).entity("Timeout type is null.")
- .build();
+ if (appTimeout.getTimeoutType() == null
+ || appTimeout.getExpireTime() == null) {
+ return Response.status(Status.BAD_REQUEST)
+ .entity("Timeout type or ExpiryTime is null.").build();
}
String userName = callerUGI.getUserName();
http://git-wip-us.apache.org/repos/asf/hadoop/blob/74d0066d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java
index 6458471..5d99e0d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java
@@ -1328,19 +1328,11 @@ public class TestRMWebServicesAppsModification extends JerseyTestBase {
ApplicationTimeoutType.LIFETIME, "UNLIMITED", -1);
}
- AppTimeoutInfo timeoutUpdate = new AppTimeoutInfo();
long timeOutFromNow = 60;
String expireTime = Times
.formatISO8601(System.currentTimeMillis() + timeOutFromNow * 1000);
- timeoutUpdate.setTimeoutType(ApplicationTimeoutType.LIFETIME);
- timeoutUpdate.setExpiryTime(expireTime);
-
- Object entity;
- if (contentType.equals(MediaType.APPLICATION_JSON_TYPE)) {
- entity = appTimeoutToJSON(timeoutUpdate);
- } else {
- entity = timeoutUpdate;
- }
+ Object entity = getAppTimeoutInfoEntity(ApplicationTimeoutType.LIFETIME,
+ contentType, expireTime);
response = this
.constructWebResource("apps", app.getApplicationId().toString(),
"timeout")
@@ -1361,10 +1353,20 @@ public class TestRMWebServicesAppsModification extends JerseyTestBase {
expireTime, timeOutFromNow);
}
+ // verify for negative cases
+ entity = getAppTimeoutInfoEntity(null,
+ contentType, null);
+ response = this
+ .constructWebResource("apps", app.getApplicationId().toString(),
+ "timeout")
+ .entity(entity, contentType).accept(mediaType)
+ .put(ClientResponse.class);
+ assertResponseStatusCode(Status.BAD_REQUEST, response.getStatusInfo());
+
// invoke get
response =
this.constructWebResource("apps", app.getApplicationId().toString(),
- "timeout", ApplicationTimeoutType.LIFETIME.toString())
+ "timeouts", ApplicationTimeoutType.LIFETIME.toString())
.accept(mediaType).get(ClientResponse.class);
assertResponseStatusCode(Status.OK, response.getStatusInfo());
if (mediaType.contains(MediaType.APPLICATION_JSON)) {
@@ -1376,6 +1378,21 @@ public class TestRMWebServicesAppsModification extends JerseyTestBase {
rm.stop();
}
+ private Object getAppTimeoutInfoEntity(ApplicationTimeoutType type,
+ MediaType contentType, String expireTime) throws Exception {
+ AppTimeoutInfo timeoutUpdate = new AppTimeoutInfo();
+ timeoutUpdate.setTimeoutType(type);
+ timeoutUpdate.setExpiryTime(expireTime);
+
+ Object entity;
+ if (contentType.equals(MediaType.APPLICATION_JSON_TYPE)) {
+ entity = appTimeoutToJSON(timeoutUpdate);
+ } else {
+ entity = timeoutUpdate;
+ }
+ return entity;
+ }
+
protected static void verifyAppTimeoutJson(ClientResponse response,
ApplicationTimeoutType type, String expireTime, long timeOutFromNow)
throws JSONException {
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org