/** * Get the node entry of a container * @param container container to look up * @return the entry * @throws RuntimeException if the container has no hostname */ public NodeEntry getOrCreateNodeEntry(Container container) { return getOrCreateNodeInstance(container).getOrCreate(container); }
/** * Get the node entry of a container * @param container container to look up * @return the entry * @throws RuntimeException if the container has no hostname */ public NodeEntry getOrCreateNodeEntry(Container container) { return getOrCreateNodeInstance(container).getOrCreate(container); }
/** * A container has been assigned to a role instance on a node -update the data structures * @param container container */ public void onContainerAssigned(Container container) { NodeInstance node = getOrCreateNodeInstance(container); NodeEntry nodeEntry = node.getOrCreate(container); nodeEntry.onStarting(); log.debug("Node {} has updated NodeEntry {}", node, nodeEntry); }
/** * A container has been assigned to a role instance on a node -update the data structures * @param container container */ public void onContainerAssigned(Container container) { NodeInstance node = getOrCreateNodeInstance(container); NodeEntry nodeEntry = node.getOrCreate(container); nodeEntry.onStarting(); log.debug("Node {} has updated NodeEntry {}", node, nodeEntry); }
/** * If the node is marked as available; queue it for assignments. * Unsynced: requires caller to be in a sync block. * @param container completed container * @param nodeEntry node * @param available available flag * @return true if the node was queued */ private boolean maybeQueueNodeForWork(Container container, NodeEntry nodeEntry, boolean available) { if (available) { //node is free nodeEntry.setLastUsed(now()); NodeInstance ni = getOrCreateNodeInstance(container); int roleId = ContainerPriority.extractRole(container); log.debug("Node {} is now available for role id {}", ni, roleId); listRecentNodesForRoleId(roleId).addFirst(ni); } return available; }
/** * If the node is marked as available; queue it for assignments. * Unsynced: requires caller to be in a sync block. * @param container completed container * @param nodeEntry node * @param available available flag * @return true if the node was queued */ private boolean maybeQueueNodeForWork(Container container, NodeEntry nodeEntry, boolean available) { if (available) { //node is free nodeEntry.setLastUsed(now()); NodeInstance ni = getOrCreateNodeInstance(container); int roleId = ContainerPriority.extractRole(container); log.debug("Node {} is now available for role id {}", ni, roleId); listRecentNodesForRoleId(roleId).addFirst(ni); } return available; }
role.completeOutstandingAARequest(); NodeInstance node = roleHistory.getOrCreateNodeInstance(container); if (node.canHost(role.getKey(), role.getLabelExpression())) { log.error("Assigned node still declares as available {}", node.toFullString() );
role.completeOutstandingAARequest(); NodeInstance node = roleHistory.getOrCreateNodeInstance(container); if (node.canHost(role.getKey(), role.getLabelExpression())) { log.error("Assigned node still declares as available {}", node.toFullString() );
discarded ++; } else { NodeInstance instance = getOrCreateNodeInstance(hostname); instance.set(roleId, nodeEntry);
discarded ++; } else { NodeInstance instance = getOrCreateNodeInstance(hostname); instance.set(roleId, nodeEntry);