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 cd...@apache.org on 2014/10/06 19:39:19 UTC
[04/33] YARN-1708. Public YARN APIs for creating/updating/deleting
reservations. (cherry picked from commit
3f2e3b275bcf29264a112c5d2f4eae289fe7f52c) (cherry picked from commit
c9266df40434fdde05bd3a4c75f7a6bc29db760f)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionRequestPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionRequestPBImpl.java
new file mode 100644
index 0000000..9f10f4c
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionRequestPBImpl.java
@@ -0,0 +1,152 @@
+/**
+ * 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.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionRequest;
+import org.apache.hadoop.yarn.api.records.ReservationDefinition;
+import org.apache.hadoop.yarn.api.records.impl.pb.ReservationDefinitionPBImpl;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationDefinitionProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationSubmissionRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationSubmissionRequestProtoOrBuilder;
+
+import com.google.protobuf.TextFormat;
+
+public class ReservationSubmissionRequestPBImpl extends
+ ReservationSubmissionRequest {
+
+ ReservationSubmissionRequestProto proto = ReservationSubmissionRequestProto
+ .getDefaultInstance();
+ ReservationSubmissionRequestProto.Builder builder = null;
+ boolean viaProto = false;
+
+ private ReservationDefinition reservationDefinition;
+
+ public ReservationSubmissionRequestPBImpl() {
+ builder = ReservationSubmissionRequestProto.newBuilder();
+ }
+
+ public ReservationSubmissionRequestPBImpl(
+ ReservationSubmissionRequestProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationSubmissionRequestProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.reservationDefinition != null) {
+ builder
+ .setReservationDefinition(convertToProtoFormat(reservationDefinition));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationSubmissionRequestProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public ReservationDefinition getReservationDefinition() {
+ ReservationSubmissionRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationDefinition != null) {
+ return reservationDefinition;
+ }
+ if (!p.hasReservationDefinition()) {
+ return null;
+ }
+ reservationDefinition =
+ convertFromProtoFormat(p.getReservationDefinition());
+ return reservationDefinition;
+ }
+
+ @Override
+ public void setReservationDefinition(
+ ReservationDefinition reservationDefinition) {
+ maybeInitBuilder();
+ if (reservationDefinition == null) {
+ builder.clearReservationDefinition();
+ }
+ this.reservationDefinition = reservationDefinition;
+ }
+
+ @Override
+ public String getQueue() {
+ ReservationSubmissionRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasQueue()) {
+ return null;
+ }
+ return (p.getQueue());
+ }
+
+ @Override
+ public void setQueue(String planName) {
+ maybeInitBuilder();
+ if (planName == null) {
+ builder.clearQueue();
+ return;
+ }
+ builder.setQueue(planName);
+ }
+
+ private ReservationDefinitionProto convertToProtoFormat(
+ ReservationDefinition r) {
+ return ((ReservationDefinitionPBImpl) r).getProto();
+ }
+
+ private ReservationDefinitionPBImpl convertFromProtoFormat(
+ ReservationDefinitionProto r) {
+ return new ReservationDefinitionPBImpl(r);
+ }
+
+ @Override
+ public int hashCode() {
+ return getProto().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (other.getClass().isAssignableFrom(this.getClass())) {
+ return this.getProto().equals(this.getClass().cast(other).getProto());
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return TextFormat.shortDebugString(getProto());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionResponsePBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionResponsePBImpl.java
new file mode 100644
index 0000000..82151f4
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationSubmissionResponsePBImpl.java
@@ -0,0 +1,129 @@
+/**
+ * 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.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionResponse;
+import org.apache.hadoop.yarn.api.records.ReservationId;
+import org.apache.hadoop.yarn.api.records.impl.pb.ReservationIdPBImpl;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationIdProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationSubmissionResponseProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationSubmissionResponseProtoOrBuilder;
+
+import com.google.protobuf.TextFormat;
+
+public class ReservationSubmissionResponsePBImpl extends
+ ReservationSubmissionResponse {
+
+ ReservationSubmissionResponseProto proto = ReservationSubmissionResponseProto
+ .getDefaultInstance();
+ ReservationSubmissionResponseProto.Builder builder = null;
+ boolean viaProto = false;
+
+ private ReservationId reservationId;
+
+ public ReservationSubmissionResponsePBImpl() {
+ builder = ReservationSubmissionResponseProto.newBuilder();
+ }
+
+ public ReservationSubmissionResponsePBImpl(
+ ReservationSubmissionResponseProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationSubmissionResponseProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.reservationId != null) {
+ builder.setReservationId(convertToProtoFormat(this.reservationId));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationSubmissionResponseProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public ReservationId getReservationId() {
+ ReservationSubmissionResponseProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationId != null) {
+ return reservationId;
+ }
+ if (!p.hasReservationId()) {
+ return null;
+ }
+ reservationId = convertFromProtoFormat(p.getReservationId());
+ return reservationId;
+ }
+
+ @Override
+ public void setReservationId(ReservationId reservationId) {
+ maybeInitBuilder();
+ if (reservationId == null) {
+ builder.clearReservationId();
+ return;
+ }
+ this.reservationId = reservationId;
+ }
+
+ private ReservationIdPBImpl convertFromProtoFormat(ReservationIdProto p) {
+ return new ReservationIdPBImpl(p);
+ }
+
+ private ReservationIdProto convertToProtoFormat(ReservationId t) {
+ return ((ReservationIdPBImpl) t).getProto();
+ }
+
+ @Override
+ public int hashCode() {
+ return getProto().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (other.getClass().isAssignableFrom(this.getClass())) {
+ return this.getProto().equals(this.getClass().cast(other).getProto());
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return TextFormat.shortDebugString(getProto());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateRequestPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateRequestPBImpl.java
new file mode 100644
index 0000000..89999f2
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateRequestPBImpl.java
@@ -0,0 +1,169 @@
+/**
+ * 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.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateRequest;
+import org.apache.hadoop.yarn.api.records.ReservationDefinition;
+import org.apache.hadoop.yarn.api.records.ReservationId;
+import org.apache.hadoop.yarn.api.records.impl.pb.ReservationDefinitionPBImpl;
+import org.apache.hadoop.yarn.api.records.impl.pb.ReservationIdPBImpl;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationDefinitionProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationIdProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationUpdateRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationUpdateRequestProtoOrBuilder;
+
+import com.google.protobuf.TextFormat;
+
+public class ReservationUpdateRequestPBImpl extends ReservationUpdateRequest {
+
+ ReservationUpdateRequestProto proto = ReservationUpdateRequestProto
+ .getDefaultInstance();
+ ReservationUpdateRequestProto.Builder builder = null;
+ boolean viaProto = false;
+
+ private ReservationDefinition reservationDefinition;
+ private ReservationId reservationId;
+
+ public ReservationUpdateRequestPBImpl() {
+ builder = ReservationUpdateRequestProto.newBuilder();
+ }
+
+ public ReservationUpdateRequestPBImpl(ReservationUpdateRequestProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationUpdateRequestProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.reservationId != null) {
+ builder.setReservationId(convertToProtoFormat(this.reservationId));
+ }
+ if (this.reservationDefinition != null) {
+ builder
+ .setReservationDefinition(convertToProtoFormat(reservationDefinition));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationUpdateRequestProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public ReservationDefinition getReservationDefinition() {
+ ReservationUpdateRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationDefinition != null) {
+ return reservationDefinition;
+ }
+ if (!p.hasReservationDefinition()) {
+ return null;
+ }
+ reservationDefinition =
+ convertFromProtoFormat(p.getReservationDefinition());
+ return reservationDefinition;
+ }
+
+ @Override
+ public void setReservationDefinition(
+ ReservationDefinition reservationDefinition) {
+ maybeInitBuilder();
+ if (reservationDefinition == null) {
+ builder.clearReservationDefinition();
+ }
+ this.reservationDefinition = reservationDefinition;
+ }
+
+ @Override
+ public ReservationId getReservationId() {
+ ReservationUpdateRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationId != null) {
+ return reservationId;
+ }
+ if (!p.hasReservationId()) {
+ return null;
+ }
+ reservationId = convertFromProtoFormat(p.getReservationId());
+ return reservationId;
+ }
+
+ @Override
+ public void setReservationId(ReservationId reservationId) {
+ maybeInitBuilder();
+ if (reservationId == null) {
+ builder.clearReservationId();
+ return;
+ }
+ this.reservationId = reservationId;
+ }
+
+ private ReservationIdPBImpl convertFromProtoFormat(ReservationIdProto p) {
+ return new ReservationIdPBImpl(p);
+ }
+
+ private ReservationIdProto convertToProtoFormat(ReservationId t) {
+ return ((ReservationIdPBImpl) t).getProto();
+ }
+
+ private ReservationDefinitionProto convertToProtoFormat(
+ ReservationDefinition r) {
+ return ((ReservationDefinitionPBImpl) r).getProto();
+ }
+
+ private ReservationDefinitionPBImpl convertFromProtoFormat(
+ ReservationDefinitionProto r) {
+ return new ReservationDefinitionPBImpl(r);
+ }
+
+ @Override
+ public int hashCode() {
+ return getProto().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (other.getClass().isAssignableFrom(this.getClass())) {
+ return this.getProto().equals(this.getClass().cast(other).getProto());
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return TextFormat.shortDebugString(getProto());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateResponsePBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateResponsePBImpl.java
new file mode 100644
index 0000000..57c7b1b
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/ReservationUpdateResponsePBImpl.java
@@ -0,0 +1,68 @@
+/**
+ * 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.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateResponse;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.ReservationUpdateResponseProto;
+
+import com.google.protobuf.TextFormat;
+
+public class ReservationUpdateResponsePBImpl extends ReservationUpdateResponse {
+
+ ReservationUpdateResponseProto proto = ReservationUpdateResponseProto
+ .getDefaultInstance();
+ ReservationUpdateResponseProto.Builder builder = null;
+ boolean viaProto = false;
+
+ public ReservationUpdateResponsePBImpl() {
+ builder = ReservationUpdateResponseProto.newBuilder();
+ }
+
+ public ReservationUpdateResponsePBImpl(ReservationUpdateResponseProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationUpdateResponseProto getProto() {
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ @Override
+ public int hashCode() {
+ return getProto().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null)
+ return false;
+ if (other.getClass().isAssignableFrom(this.getClass())) {
+ return this.getProto().equals(this.getClass().cast(other).getProto());
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return TextFormat.shortDebugString(getProto());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java
index e4f183b..489cf8c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationSubmissionContextPBImpl.java
@@ -57,6 +57,7 @@ extends ApplicationSubmissionContext {
private Resource resource = null;
private Set<String> applicationTags = null;
private LogAggregationContext logAggregationContext = null;
+ private ReservationId reservationId = null;
public ApplicationSubmissionContextPBImpl() {
builder = ApplicationSubmissionContextProto.newBuilder();
@@ -114,10 +115,6 @@ extends ApplicationSubmissionContext {
builder.clearApplicationTags();
builder.addAllApplicationTags(this.applicationTags);
}
- if (this.logAggregationContext != null) {
- builder.setLogAggregationContext(
- convertToProtoFormat(this.logAggregationContext));
- }
}
private void mergeLocalToProto() {
@@ -366,6 +363,29 @@ extends ApplicationSubmissionContext {
}
@Override
+ public ReservationId getReservationID() {
+ ApplicationSubmissionContextProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationId != null) {
+ return reservationId;
+ }
+ if (!p.hasReservationId()) {
+ return null;
+ }
+ reservationId = convertFromProtoFormat(p.getReservationId());
+ return reservationId;
+ }
+
+ @Override
+ public void setReservationID(ReservationId reservationID) {
+ maybeInitBuilder();
+ if (reservationID == null) {
+ builder.clearReservationId();
+ return;
+ }
+ this.reservationId = reservationID;
+ }
+
+ @Override
public void
setKeepContainersAcrossApplicationAttempts(boolean keepContainers) {
maybeInitBuilder();
@@ -455,4 +475,12 @@ extends ApplicationSubmissionContext {
builder.clearLogAggregationContext();
this.logAggregationContext = logAggregationContext;
}
+
+ private ReservationIdPBImpl convertFromProtoFormat(ReservationIdProto p) {
+ return new ReservationIdPBImpl(p);
+ }
+
+ private ReservationIdProto convertToProtoFormat(ReservationId t) {
+ return ((ReservationIdPBImpl) t).getProto();
+ }
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java
index 4a3c137..f18a77c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.api.records.NodeState;
import org.apache.hadoop.yarn.api.records.QueueACL;
import org.apache.hadoop.yarn.api.records.QueueState;
+import org.apache.hadoop.yarn.api.records.ReservationRequestInterpreter;
import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.proto.YarnProtos.AMCommandProto;
@@ -47,10 +48,12 @@ import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto;
import org.apache.hadoop.yarn.proto.YarnProtos.NodeStateProto;
import org.apache.hadoop.yarn.proto.YarnProtos.QueueACLProto;
import org.apache.hadoop.yarn.proto.YarnProtos.QueueStateProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestInterpreterProto;
import org.apache.hadoop.yarn.proto.YarnProtos.YarnApplicationAttemptStateProto;
import org.apache.hadoop.yarn.proto.YarnProtos.YarnApplicationStateProto;
import com.google.protobuf.ByteString;
+
import org.apache.hadoop.yarn.proto.YarnServiceProtos;
@Private
@@ -237,4 +240,18 @@ public class ProtoUtils {
return ApplicationAccessType.valueOf(e.name().replace(
APP_ACCESS_TYPE_PREFIX, ""));
}
+
+ /*
+ * Reservation Request interpreter type
+ */
+ public static ReservationRequestInterpreterProto convertToProtoFormat(
+ ReservationRequestInterpreter e) {
+ return ReservationRequestInterpreterProto.valueOf(e.name());
+ }
+
+ public static ReservationRequestInterpreter convertFromProtoFormat(
+ ReservationRequestInterpreterProto e) {
+ return ReservationRequestInterpreter.valueOf(e.name());
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java
new file mode 100644
index 0000000..9f87108
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java
@@ -0,0 +1,169 @@
+/**
+ * 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.records.impl.pb;
+
+import org.apache.hadoop.yarn.api.records.ReservationDefinition;
+import org.apache.hadoop.yarn.api.records.ReservationRequests;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationDefinitionProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationDefinitionProtoOrBuilder;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestsProto;
+
+public class ReservationDefinitionPBImpl extends ReservationDefinition {
+
+ ReservationDefinitionProto proto = ReservationDefinitionProto
+ .getDefaultInstance();
+ ReservationDefinitionProto.Builder builder = null;
+ boolean viaProto = false;
+
+ private ReservationRequests reservationReqs;
+
+ public ReservationDefinitionPBImpl() {
+ builder = ReservationDefinitionProto.newBuilder();
+ }
+
+ public ReservationDefinitionPBImpl(ReservationDefinitionProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationDefinitionProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.reservationReqs != null) {
+ builder
+ .setReservationRequests(convertToProtoFormat(this.reservationReqs));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationDefinitionProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public long getArrival() {
+ ReservationDefinitionProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasArrival()) {
+ return 0;
+ }
+ return (p.getArrival());
+ }
+
+ @Override
+ public void setArrival(long earliestStartTime) {
+ maybeInitBuilder();
+ if (earliestStartTime <= 0) {
+ builder.clearArrival();
+ return;
+ }
+ builder.setArrival(earliestStartTime);
+ }
+
+ @Override
+ public long getDeadline() {
+ ReservationDefinitionProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasDeadline()) {
+ return 0;
+ }
+ return (p.getDeadline());
+ }
+
+ @Override
+ public void setDeadline(long latestEndTime) {
+ maybeInitBuilder();
+ if (latestEndTime <= 0) {
+ builder.clearDeadline();
+ return;
+ }
+ builder.setDeadline(latestEndTime);
+ }
+
+ @Override
+ public ReservationRequests getReservationRequests() {
+ ReservationDefinitionProtoOrBuilder p = viaProto ? proto : builder;
+ if (reservationReqs != null) {
+ return reservationReqs;
+ }
+ if (!p.hasReservationRequests()) {
+ return null;
+ }
+ reservationReqs = convertFromProtoFormat(p.getReservationRequests());
+ return reservationReqs;
+ }
+
+ @Override
+ public void setReservationRequests(ReservationRequests reservationRequests) {
+ if (reservationRequests == null) {
+ builder.clearReservationRequests();
+ return;
+ }
+ this.reservationReqs = reservationRequests;
+ }
+
+ @Override
+ public String getReservationName() {
+ ReservationDefinitionProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasReservationName()) {
+ return null;
+ }
+ return (p.getReservationName());
+ }
+
+ @Override
+ public void setReservationName(String name) {
+ maybeInitBuilder();
+ if (name == null) {
+ builder.clearReservationName();
+ return;
+ }
+ builder.setReservationName(name);
+ }
+
+ private ReservationRequestsPBImpl convertFromProtoFormat(
+ ReservationRequestsProto p) {
+ return new ReservationRequestsPBImpl(p);
+ }
+
+ private ReservationRequestsProto convertToProtoFormat(ReservationRequests t) {
+ return ((ReservationRequestsPBImpl) t).getProto();
+ }
+
+ @Override
+ public String toString() {
+ return "{Arrival: " + getArrival() + ", Deadline: " + getDeadline()
+ + ", Reservation Name: " + getReservationName() + ", Resources: "
+ + getReservationRequests() + "}";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationIdPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationIdPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationIdPBImpl.java
new file mode 100644
index 0000000..609d4ab
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationIdPBImpl.java
@@ -0,0 +1,75 @@
+/**
+ * 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.records.impl.pb;
+
+import org.apache.hadoop.classification.InterfaceAudience.Private;
+import org.apache.hadoop.classification.InterfaceStability.Unstable;
+import org.apache.hadoop.yarn.api.records.ReservationId;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationIdProto;
+
+import com.google.common.base.Preconditions;
+
+@Private
+@Unstable
+public class ReservationIdPBImpl extends ReservationId {
+ ReservationIdProto proto = null;
+ ReservationIdProto.Builder builder = null;
+
+ public ReservationIdPBImpl() {
+ builder = ReservationIdProto.newBuilder();
+ }
+
+ public ReservationIdPBImpl(ReservationIdProto proto) {
+ this.proto = proto;
+ }
+
+ public ReservationIdProto getProto() {
+ return proto;
+ }
+
+ @Override
+ public long getId() {
+ Preconditions.checkNotNull(proto);
+ return proto.getId();
+ }
+
+ @Override
+ protected void setId(long id) {
+ Preconditions.checkNotNull(builder);
+ builder.setId(id);
+ }
+
+ @Override
+ public long getClusterTimestamp() {
+ Preconditions.checkNotNull(proto);
+ return proto.getClusterTimestamp();
+ }
+
+ @Override
+ protected void setClusterTimestamp(long clusterTimestamp) {
+ Preconditions.checkNotNull(builder);
+ builder.setClusterTimestamp((clusterTimestamp));
+ }
+
+ @Override
+ protected void build() {
+ proto = builder.build();
+ builder = null;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java
new file mode 100644
index 0000000..e36b9fb
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestPBImpl.java
@@ -0,0 +1,152 @@
+/**
+ * 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.records.impl.pb;
+
+import org.apache.hadoop.classification.InterfaceAudience.Private;
+import org.apache.hadoop.classification.InterfaceStability.Unstable;
+import org.apache.hadoop.yarn.api.records.ReservationRequest;
+import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestProtoOrBuilder;
+import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto;
+
+@Private
+@Unstable
+public class ReservationRequestPBImpl extends ReservationRequest {
+ ReservationRequestProto proto = ReservationRequestProto.getDefaultInstance();
+ ReservationRequestProto.Builder builder = null;
+ boolean viaProto = false;
+
+ private Resource capability = null;
+
+ public ReservationRequestPBImpl() {
+ builder = ReservationRequestProto.newBuilder();
+ }
+
+ public ReservationRequestPBImpl(ReservationRequestProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationRequestProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.capability != null) {
+ builder.setCapability(convertToProtoFormat(this.capability));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationRequestProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public Resource getCapability() {
+ ReservationRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (this.capability != null) {
+ return this.capability;
+ }
+ if (!p.hasCapability()) {
+ return null;
+ }
+ this.capability = convertFromProtoFormat(p.getCapability());
+ return this.capability;
+ }
+
+ @Override
+ public void setCapability(Resource capability) {
+ maybeInitBuilder();
+ if (capability == null)
+ builder.clearCapability();
+ this.capability = capability;
+ }
+
+ @Override
+ public int getNumContainers() {
+ ReservationRequestProtoOrBuilder p = viaProto ? proto : builder;
+ return (p.getNumContainers());
+ }
+
+ @Override
+ public void setNumContainers(int numContainers) {
+ maybeInitBuilder();
+ builder.setNumContainers((numContainers));
+ }
+
+ @Override
+ public int getConcurrency() {
+ ReservationRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasConcurrency()) {
+ return 1;
+ }
+ return (p.getConcurrency());
+ }
+
+ @Override
+ public void setConcurrency(int numContainers) {
+ maybeInitBuilder();
+ builder.setConcurrency(numContainers);
+ }
+
+ @Override
+ public long getDuration() {
+ ReservationRequestProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasDuration()) {
+ return 0;
+ }
+ return (p.getDuration());
+ }
+
+ @Override
+ public void setDuration(long duration) {
+ maybeInitBuilder();
+ builder.setDuration(duration);
+ }
+
+ private ResourcePBImpl convertFromProtoFormat(ResourceProto p) {
+ return new ResourcePBImpl(p);
+ }
+
+ private ResourceProto convertToProtoFormat(Resource t) {
+ return ((ResourcePBImpl) t).getProto();
+ }
+
+ @Override
+ public String toString() {
+ return "{Capability: " + getCapability() + ", # Containers: "
+ + getNumContainers() + ", Concurrency: " + getConcurrency()
+ + ", Lease Duration: " + getDuration() + "}";
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestsPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestsPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestsPBImpl.java
new file mode 100644
index 0000000..4b39836
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationRequestsPBImpl.java
@@ -0,0 +1,189 @@
+/**
+ * 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.records.impl.pb;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.yarn.api.records.ReservationRequest;
+import org.apache.hadoop.yarn.api.records.ReservationRequestInterpreter;
+import org.apache.hadoop.yarn.api.records.ReservationRequests;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestInterpreterProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestsProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ReservationRequestsProtoOrBuilder;
+
+public class ReservationRequestsPBImpl extends ReservationRequests {
+
+ ReservationRequestsProto proto = ReservationRequestsProto
+ .getDefaultInstance();
+ ReservationRequestsProto.Builder builder = null;
+ boolean viaProto = false;
+
+ public List<ReservationRequest> reservationRequests;
+
+ public ReservationRequestsPBImpl() {
+ builder = ReservationRequestsProto.newBuilder();
+ }
+
+ public ReservationRequestsPBImpl(ReservationRequestsProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ public ReservationRequestsProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.reservationRequests != null) {
+ addReservationResourcesToProto();
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ReservationRequestsProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ @Override
+ public List<ReservationRequest> getReservationResources() {
+ initReservationRequestsList();
+ return reservationRequests;
+ }
+
+ @Override
+ public void setReservationResources(List<ReservationRequest> resources) {
+ if (resources == null) {
+ builder.clearReservationResources();
+ return;
+ }
+ this.reservationRequests = resources;
+ }
+
+ @Override
+ public ReservationRequestInterpreter getInterpreter() {
+ ReservationRequestsProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasInterpreter()) {
+ return null;
+ }
+ return (convertFromProtoFormat(p.getInterpreter()));
+ }
+
+ @Override
+ public void setInterpreter(ReservationRequestInterpreter interpreter) {
+ maybeInitBuilder();
+ if (interpreter == null) {
+ builder.clearInterpreter();
+ return;
+ }
+ builder.setInterpreter(convertToProtoFormat(interpreter));
+ }
+
+ private void initReservationRequestsList() {
+ if (this.reservationRequests != null) {
+ return;
+ }
+ ReservationRequestsProtoOrBuilder p = viaProto ? proto : builder;
+ List<ReservationRequestProto> resourceProtos =
+ p.getReservationResourcesList();
+ reservationRequests = new ArrayList<ReservationRequest>();
+
+ for (ReservationRequestProto r : resourceProtos) {
+ reservationRequests.add(convertFromProtoFormat(r));
+ }
+ }
+
+ private void addReservationResourcesToProto() {
+ maybeInitBuilder();
+ builder.clearReservationResources();
+ if (reservationRequests == null)
+ return;
+ Iterable<ReservationRequestProto> iterable =
+ new Iterable<ReservationRequestProto>() {
+ @Override
+ public Iterator<ReservationRequestProto> iterator() {
+ return new Iterator<ReservationRequestProto>() {
+
+ Iterator<ReservationRequest> iter = reservationRequests
+ .iterator();
+
+ @Override
+ public boolean hasNext() {
+ return iter.hasNext();
+ }
+
+ @Override
+ public ReservationRequestProto next() {
+ return convertToProtoFormat(iter.next());
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+ };
+
+ }
+
+ };
+ builder.addAllReservationResources(iterable);
+ }
+
+ private ReservationRequestProto convertToProtoFormat(ReservationRequest r) {
+ return ((ReservationRequestPBImpl) r).getProto();
+ }
+
+ private ReservationRequestPBImpl convertFromProtoFormat(
+ ReservationRequestProto r) {
+ return new ReservationRequestPBImpl(r);
+ }
+
+ private ReservationRequestInterpreterProto convertToProtoFormat(
+ ReservationRequestInterpreter r) {
+ return ProtoUtils.convertToProtoFormat(r);
+ }
+
+ private ReservationRequestInterpreter convertFromProtoFormat(
+ ReservationRequestInterpreterProto r) {
+ return ProtoUtils.convertFromProtoFormat(r);
+ }
+
+ @Override
+ public String toString() {
+ return "{Reservation Resources: " + getReservationResources()
+ + ", Reservation Type: " + getInterpreter() + "}";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a167056/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/UTCClock.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/UTCClock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/UTCClock.java
new file mode 100644
index 0000000..ecef3dd
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/UTCClock.java
@@ -0,0 +1,39 @@
+/**
+ * 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.util;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.apache.hadoop.classification.InterfaceAudience.Public;
+import org.apache.hadoop.classification.InterfaceStability.Evolving;
+
+/**
+ * Implementation of {@link Clock} that gives the current UTC time in
+ * milliseconds.
+ */
+@Public
+@Evolving
+public class UTCClock implements Clock {
+
+ private final TimeZone utcZone = TimeZone.getTimeZone("UTC");
+
+ public long getTime() {
+ return Calendar.getInstance(utcZone).getTimeInMillis();
+ }
+}
\ No newline at end of file