| /** |
| * 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; |
| |
| import org.apache.hadoop.classification.InterfaceAudience.Private; |
| import org.apache.hadoop.classification.InterfaceAudience.Public; |
| import org.apache.hadoop.classification.InterfaceStability.Unstable; |
| import org.apache.hadoop.yarn.util.Records; |
| |
| /** |
| * {@code ContainerReport} is a report of an container. |
| * <p> |
| * It includes details such as: |
| * <ul> |
| * <li>{@link ContainerId} of the container.</li> |
| * <li>Allocated Resources to the container.</li> |
| * <li>Assigned Node id.</li> |
| * <li>Assigned Priority.</li> |
| * <li>Creation Time.</li> |
| * <li>Finish Time.</li> |
| * <li>Container Exit Status.</li> |
| * <li>{@link ContainerState} of the container.</li> |
| * <li>Diagnostic information in case of errors.</li> |
| * <li>Log URL.</li> |
| * <li>nodeHttpAddress</li> |
| * </ul> |
| */ |
| |
| @Public |
| @Unstable |
| public abstract class ContainerReport { |
| @Private |
| @Unstable |
| public static ContainerReport newInstance(ContainerId containerId, |
| Resource allocatedResource, NodeId assignedNode, Priority priority, |
| long creationTime, long finishTime, String diagnosticInfo, String logUrl, |
| int containerExitStatus, ContainerState containerState, |
| String nodeHttpAddress) { |
| return newInstance(containerId, allocatedResource, assignedNode, priority, |
| creationTime, finishTime, diagnosticInfo, logUrl, containerExitStatus, |
| containerState, nodeHttpAddress, ExecutionType.GUARANTEED); |
| } |
| |
| @Private |
| @Unstable |
| public static ContainerReport newInstance(ContainerId containerId, |
| Resource allocatedResource, NodeId assignedNode, Priority priority, |
| long creationTime, long finishTime, String diagnosticInfo, String logUrl, |
| int containerExitStatus, ContainerState containerState, |
| String nodeHttpAddress, ExecutionType executionType) { |
| ContainerReport report = Records.newRecord(ContainerReport.class); |
| report.setContainerId(containerId); |
| report.setAllocatedResource(allocatedResource); |
| report.setAssignedNode(assignedNode); |
| report.setPriority(priority); |
| report.setCreationTime(creationTime); |
| report.setFinishTime(finishTime); |
| report.setDiagnosticsInfo(diagnosticInfo); |
| report.setLogUrl(logUrl); |
| report.setContainerExitStatus(containerExitStatus); |
| report.setContainerState(containerState); |
| report.setNodeHttpAddress(nodeHttpAddress); |
| report.setExecutionType(executionType); |
| return report; |
| } |
| |
| /** |
| * Get the <code>ContainerId</code> of the container. |
| * |
| * @return <code>ContainerId</code> of the container. |
| */ |
| @Public |
| @Unstable |
| public abstract ContainerId getContainerId(); |
| |
| @Public |
| @Unstable |
| public abstract void setContainerId(ContainerId containerId); |
| |
| /** |
| * Get the allocated <code>Resource</code> of the container. |
| * |
| * @return allocated <code>Resource</code> of the container. |
| */ |
| @Public |
| @Unstable |
| public abstract Resource getAllocatedResource(); |
| |
| @Public |
| @Unstable |
| public abstract void setAllocatedResource(Resource resource); |
| |
| /** |
| * Get the allocated <code>NodeId</code> where container is running. |
| * |
| * @return allocated <code>NodeId</code> where container is running. |
| */ |
| @Public |
| @Unstable |
| public abstract NodeId getAssignedNode(); |
| |
| @Public |
| @Unstable |
| public abstract void setAssignedNode(NodeId nodeId); |
| |
| /** |
| * Get the allocated <code>Priority</code> of the container. |
| * |
| * @return allocated <code>Priority</code> of the container. |
| */ |
| @Public |
| @Unstable |
| public abstract Priority getPriority(); |
| |
| @Public |
| @Unstable |
| public abstract void setPriority(Priority priority); |
| |
| /** |
| * Get the creation time of the container. |
| * |
| * @return creation time of the container |
| */ |
| @Public |
| @Unstable |
| public abstract long getCreationTime(); |
| |
| @Public |
| @Unstable |
| public abstract void setCreationTime(long creationTime); |
| |
| /** |
| * Get the Finish time of the container. |
| * |
| * @return Finish time of the container |
| */ |
| @Public |
| @Unstable |
| public abstract long getFinishTime(); |
| |
| @Public |
| @Unstable |
| public abstract void setFinishTime(long finishTime); |
| |
| /** |
| * Get the DiagnosticsInfo of the container. |
| * |
| * @return DiagnosticsInfo of the container |
| */ |
| @Public |
| @Unstable |
| public abstract String getDiagnosticsInfo(); |
| |
| @Public |
| @Unstable |
| public abstract void setDiagnosticsInfo(String diagnosticsInfo); |
| |
| /** |
| * Get the LogURL of the container. |
| * |
| * @return LogURL of the container |
| */ |
| @Public |
| @Unstable |
| public abstract String getLogUrl(); |
| |
| @Public |
| @Unstable |
| public abstract void setLogUrl(String logUrl); |
| |
| /** |
| * Get the final <code>ContainerState</code> of the container. |
| * |
| * @return final <code>ContainerState</code> of the container. |
| */ |
| @Public |
| @Unstable |
| public abstract ContainerState getContainerState(); |
| |
| @Public |
| @Unstable |
| public abstract void setContainerState(ContainerState containerState); |
| |
| /** |
| * Get the final <code>exit status</code> of the container. |
| * |
| * @return final <code>exit status</code> of the container. |
| */ |
| @Public |
| @Unstable |
| public abstract int getContainerExitStatus(); |
| |
| @Public |
| @Unstable |
| public abstract void setContainerExitStatus(int containerExitStatus); |
| |
| /** |
| * Get the Node Http address of the container |
| * |
| * @return the node http address of the container |
| */ |
| @Public |
| @Unstable |
| public abstract String getNodeHttpAddress(); |
| |
| @Private |
| @Unstable |
| public abstract void setNodeHttpAddress(String nodeHttpAddress); |
| |
| /** |
| * Get the execution type of the container. |
| * |
| * @return the execution type of the container |
| */ |
| @Public |
| @Unstable |
| public abstract ExecutionType getExecutionType(); |
| |
| @Private |
| @Unstable |
| public abstract void setExecutionType(ExecutionType executionType); |
| } |