YARN-4823. Refactor the nested reservation id field in listReservation to simple string field. (subru via asuresh)

(cherry picked from commit 00bebb7e58)
This commit is contained in:
Arun Suresh 2016-03-25 15:54:38 -07:00
parent d2c33ba61e
commit 1a194f8751
4 changed files with 16 additions and 97 deletions

View File

@ -1,64 +0,0 @@
/**
* 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.server.resourcemanager.webapp.dao;
import org.apache.hadoop.yarn.api.records.ReservationId;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Simple class that represent a reservation ID.
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ReservationIdInfo {
@XmlElement(name = "cluster-timestamp")
private long clusterTimestamp;
@XmlElement(name = "reservation-id")
private long reservationId;
public ReservationIdInfo() {
this.clusterTimestamp = 0;
this.reservationId = 0;
}
public ReservationIdInfo(ReservationId reservationId) {
this.clusterTimestamp = reservationId.getClusterTimestamp();
this.reservationId = reservationId.getId();
}
public long getClusterTimestamp() {
return this.clusterTimestamp;
}
public void setClusterTimestamp(long newClusterTimestamp) {
this.clusterTimestamp = newClusterTimestamp;
}
public long getReservationId() {
return this.reservationId;
}
public void setReservationId(long newReservationId) {
this.reservationId = newReservationId;
}
}

View File

@ -44,7 +44,7 @@ public class ReservationInfo {
private List<ResourceAllocationInfo> resourceAllocations = new ArrayList<>();
@XmlElement(name = "reservation-id")
private ReservationIdInfo reservationId;
private String reservationId;
@XmlElement(name = "reservation-definition")
private ReservationDefinitionInfo reservationDefinition;
@ -55,7 +55,6 @@ public ReservationInfo() {
user = "";
reservationDefinition = new ReservationDefinitionInfo();
reservationId = new ReservationIdInfo();
}
public ReservationInfo(ReservationAllocationState allocation, boolean
@ -74,7 +73,7 @@ public ReservationInfo(ReservationAllocationState allocation, boolean
}
}
reservationId = new ReservationIdInfo(allocation.getReservationId());
reservationId = allocation.getReservationId().toString();
reservationDefinition = new ReservationDefinitionInfo(
allocation.getReservationDefinition());
}
@ -95,7 +94,7 @@ public List<ResourceAllocationInfo> getResourceAllocations() {
return resourceAllocations;
}
public ReservationIdInfo getReservationId() {
public String getReservationId() {
return reservationId;
}

View File

@ -714,9 +714,8 @@ public void testReservationIdRequestListReservation() throws Exception {
testRDLHelper(reservations);
long reservationId = reservations.getJSONObject("reservation-id")
.getLong("reservation-id");
assertEquals(id1.getId(), reservationId);
String reservationId = reservations.getString("reservation-id");
assertEquals(id1.toString(), reservationId);
rm.stop();
}
@ -769,9 +768,8 @@ public void testIncludeResourceAllocations() throws Exception {
testRDLHelper(reservations);
long reservationId = reservations.getJSONObject("reservation-id")
.getLong("reservation-id");
assertEquals(id1.getId(), reservationId);
String reservationId = reservations.getString("reservation-id");
assertEquals(id1.toString(), reservationId);
assertTrue(reservations.has("resource-allocations"));
@ -804,9 +802,8 @@ public void testExcludeResourceAllocations() throws Exception {
testRDLHelper(reservations);
long reservationId = reservations.getJSONObject("reservation-id")
.getLong("reservation-id");
assertEquals(id1.getId(), reservationId);
String reservationId = reservations.getString("reservation-id");
assertEquals(id1.toString(), reservationId);
assertTrue(!reservations.has("resource-allocations"));

View File

@ -3147,7 +3147,7 @@ The Cluster Reservation API can be used to list reservations. When listing reser
|:---- |:---- |:---- |
| acceptance-time | long | Time that the reservation was accepted |
| resource-allocations | array of ResourceAllocationInfo(JSON) / zero or more ResourceAllocationInfo objects(XML) | Resource allocation information for the reservation |
| reservation-id | A single ReservationId object | The unique reservation identifier |
| reservation-id | A single ReservationId string | The unique reservation identifier |
| reservation-definition | A single ReservationDefinition Object | A set of constraints representing the need for resources over time of a user |
| user | string | User who made the reservation |
@ -3159,21 +3159,14 @@ The Cluster Reservation API can be used to list reservations. When listing reser
| startTime | long | Start time that the resource is allocated for |
| endTime | long | End time that the resource is allocated for |
### elements of the *resource* object
### Elements of the *resource* object
| Item | Data Type | Description |
|:---- |:---- |:---- |
| memory | int | The memory allocated for the reservation allocation |
| vCores | int | The number of cores allocated for the reservation allocation |
### Elements of the *reservation-id* object
| Item | Data Type | Description |
|:---- |:---- |:---- |
| cluster-timestamp | long | Timestamp representing the time the reservation was created |
| reservation-id | long | The id of the reservation that was listed |
Elements of the *reservation-definition* object
### Elements of the *reservation-definition* object
| Item | Data Type | Description |
|:---- |:---- |:---- |
@ -3182,14 +3175,14 @@ Elements of the *reservation-definition* object
| reservation-name | string | A mnemonic name of the reservaiton (not a valid identifier). |
| reservation-requests | object | A list of "stages" or phases of this reservation, each describing resource requirements and duration |
Elements of the *reservation-requests* object
### Elements of the *reservation-requests* object
| Item | Data Type | Description |
|:---- |:---- |:---- |
| reservation-request-interpreter | int | A numeric choice of how to interpret the set of ReservationRequest: 0 is an ANY, 1 for ALL, 2 for ORDER, 3 for ORDER\_NO\_GAP |
| reservation-request | object | The description of the resource and time capabilities for a phase/stage of this reservation |
Elements of the *reservation-request* object
### Elements of the *reservation-request* object
| Item | Data Type | Description |
|:---- |:---- |:---- |
@ -3253,10 +3246,7 @@ Response Body:
"endTime": "1465542252000"
}
],
"reservation-id": {
"cluster-timestamp": "1455133859510",
"reservation-id": "6"
},
"reservation-id": "reservation_1458852875788_0002",
"reservation-definition": {
"arrival": "1465541532000",
"deadline": "1465542252000",
@ -3318,10 +3308,7 @@ Response Body:
<startTime>1465542251000</startTime>
<endTime>1465542252000</endTime>
</resource-allocations>
<reservation-id>
<cluster-timestamp>1455228059846</cluster-timestamp>
<reservation-id>1</reservation-id>
</reservation-id>
<reservation-id>reservation_1458852875788_0002</reservation-id>
<reservation-definition>
<arrival>1465541532000</arrival>
<deadline>1465542252000</deadline>