You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-commits@hadoop.apache.org by ji...@apache.org on 2014/05/12 22:45:22 UTC
svn commit: r1594085 - in /hadoop/common/trunk/hadoop-yarn-project: ./
hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/
hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/
Author: jianhe
Date: Mon May 12 20:45:21 2014
New Revision: 1594085
URL: http://svn.apache.org/r1594085
Log:
YARN-2016. Fix a bug in GetApplicationsRequestPBImpl to add the missed fields to proto. Contributed by Junping Du
Added:
hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestGetApplicationsRequest.java
Modified:
hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt
hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java
Modified: hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt?rev=1594085&r1=1594084&r2=1594085&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt Mon May 12 20:45:21 2014
@@ -105,6 +105,9 @@ Release 2.5.0 - UNRELEASED
YARN-1975. Fix yarn application CLI to print the scheme of the tracking url
of failed/killed applications. (Junping Du via jianhe)
+ YARN-2016. Fix a bug in GetApplicationsRequestPBImpl to add the missed fields
+ to proto. (Junping Du via jianhe)
+
Release 2.4.1 - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java?rev=1594085&r1=1594084&r2=1594085&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java (original)
+++ hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java Mon May 12 20:45:21 2014
@@ -121,6 +121,25 @@ public class GetApplicationsRequestPBImp
if (this.scope != null) {
builder.setScope(ProtoUtils.convertToProtoFormat(scope));
}
+ if (this.start != null) {
+ builder.setStartBegin(start.getMinimumLong());
+ builder.setStartEnd(start.getMaximumLong());
+ }
+
+ if (this.finish != null) {
+ builder.setFinishBegin(start.getMinimumLong());
+ builder.setFinishEnd(start.getMaximumLong());
+ }
+
+ builder.setLimit(limit);
+
+ if (this.users != null && !this.users.isEmpty()) {
+ builder.addAllUsers(this.users);
+ }
+
+ if (this.queues != null && !this.queues.isEmpty()) {
+ builder.addAllQueues(this.queues);
+ }
}
private void addLocalApplicationTypesToProto() {
@@ -326,7 +345,7 @@ public class GetApplicationsRequestPBImp
public LongRange getStartRange() {
if (this.start == null) {
GetApplicationsRequestProtoOrBuilder p = viaProto ? proto: builder;
- if (p.hasStartBegin() || p.hasFinishBegin()) {
+ if (p.hasStartBegin() || p.hasStartEnd()) {
long begin = p.hasStartBegin() ? p.getStartBegin() : 0L;
long end = p.hasStartEnd() ? p.getStartEnd() : Long.MAX_VALUE;
this.start = new LongRange(begin, end);
Added: hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestGetApplicationsRequest.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestGetApplicationsRequest.java?rev=1594085&view=auto
==============================================================================
--- hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestGetApplicationsRequest.java (added)
+++ hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestGetApplicationsRequest.java Mon May 12 20:45:21 2014
@@ -0,0 +1,107 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.yarn.api;
+
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.lang.math.LongRange;
+import org.apache.hadoop.yarn.api.protocolrecords.ApplicationsRequestScope;
+import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetApplicationsRequestPBImpl;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestGetApplicationsRequest {
+
+ @Test
+ public void testGetApplicationsRequest(){
+ GetApplicationsRequest request = GetApplicationsRequest.newInstance();
+
+ EnumSet<YarnApplicationState> appStates =
+ EnumSet.of(YarnApplicationState.ACCEPTED);
+ request.setApplicationStates(appStates);
+
+ Set<String> tags = new HashSet<String>();
+ tags.add("tag1");
+ request.setApplicationTags(tags);
+
+ Set<String> types = new HashSet<String>();
+ types.add("type1");
+ request.setApplicationTypes(types);
+
+ long begin = System.currentTimeMillis();
+ long end = System.currentTimeMillis() + 1;
+ request.setStartRange(begin, end);
+ request.setFinishRange(begin, end);
+
+ long limit = 100L;
+ request.setLimit(limit);
+
+ Set<String> queues = new HashSet<String>();
+ queues.add("queue1");
+ request.setQueues(queues);
+
+
+ Set<String> users = new HashSet<String>();
+ users.add("user1");
+ request.setUsers(users);
+
+ ApplicationsRequestScope scope = ApplicationsRequestScope.ALL;
+ request.setScope(scope);
+
+ GetApplicationsRequest requestFromProto = new GetApplicationsRequestPBImpl(
+ ((GetApplicationsRequestPBImpl)request).getProto());
+
+ // verify all properties are the same as original request
+ Assert.assertEquals(
+ "ApplicationStates from proto is not the same with original request",
+ requestFromProto.getApplicationStates(), appStates);
+
+ Assert.assertEquals(
+ "ApplicationTags from proto is not the same with original request",
+ requestFromProto.getApplicationTags(), tags);
+
+ Assert.assertEquals(
+ "ApplicationTypes from proto is not the same with original request",
+ requestFromProto.getApplicationTypes(), types);
+
+ Assert.assertEquals(
+ "StartRange from proto is not the same with original request",
+ requestFromProto.getStartRange(), new LongRange(begin, end));
+
+ Assert.assertEquals(
+ "FinishRange from proto is not the same with original request",
+ requestFromProto.getFinishRange(), new LongRange(begin, end));
+
+ Assert.assertEquals(
+ "Limit from proto is not the same with original request",
+ requestFromProto.getLimit(), limit);
+
+ Assert.assertEquals(
+ "Queues from proto is not the same with original request",
+ requestFromProto.getQueues(), queues);
+
+ Assert.assertEquals(
+ "Users from proto is not the same with original request",
+ requestFromProto.getUsers(), users);
+ }
+
+}