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);
+  }
+
+}