org.apache.hadoop.yarn.api.records.ContainerReport.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.hadoop.yarn.api.records.ContainerReport.java

Source

/**
 * 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);
}