package io.hops.util;
import io.hops.metadata.yarn.entity.ContainerStatus;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.server.api.records.MasterKey;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by antonis on 8/22/16.
*/
public class StreamingRTComps {
// TODO: For the moment currentPrice and currentPriceTick are skipped
// <NodeId, [ContainersId]>
private final Map<String, Set<ContainerId>> containersToClean;
// <NodeId, [ApplicationIds]>
private final Map<String, List<ApplicationId>> finishedApps;
private final Set<String> nodeIds;
private final Map<String, Boolean> nextHeartbeat;
private final List<ContainerStatus> containerStatusList;
private final MasterKey currentNMMasterKey;
private final MasterKey nextNMMasterKey;
private final MasterKey currentRMContainerMasterKey;
private final MasterKey nextRMContainerMasterKey;
public StreamingRTComps(
Map<String, Set<ContainerId>> containersToClean,
Map<String, List<ApplicationId>> finishedApps,
Set<String> nodeIds,
Map<String, Boolean> nextHeartbeat,
List<ContainerStatus> containerStatusList,
MasterKey currentNMMasterKey,
MasterKey nextNMMasterKey,
MasterKey currentRMContainerMasterKey,
MasterKey nextRMContainerMasterKey) {
this.containersToClean = containersToClean;
this.finishedApps = finishedApps;
this.nodeIds = nodeIds;
this.nextHeartbeat = nextHeartbeat;
this.containerStatusList = containerStatusList;
this.currentNMMasterKey = currentNMMasterKey;
this.nextNMMasterKey = nextNMMasterKey;
this.currentRMContainerMasterKey = currentRMContainerMasterKey;
this.nextRMContainerMasterKey = nextRMContainerMasterKey;
}
public Set<ContainerId> getContainersToCleanByNodeId(String nodeId) {
return containersToClean.get(nodeId);
}
public List<ApplicationId> getFinishedAppsByNodeId(String nodeId) {
return finishedApps.get(nodeId);
}
public Set<String> getNodeIds() {
return nodeIds;
}
public Boolean isNextHeartbeatForNodeId(String nodeId) {
return nextHeartbeat.get(nodeId);
}
public List<ContainerStatus> getHopContainerStatusList() {
return containerStatusList;
}
public MasterKey getCurrentNMMasterKey() {
return currentNMMasterKey;
}
public MasterKey getNextNMMasterKey() {
return nextNMMasterKey;
}
public MasterKey getCurrentRMContainerMasterKey() {
return currentRMContainerMasterKey;
}
public MasterKey getNextRMContainerMasterKey() {
return nextRMContainerMasterKey;
}
}