use of org.elasticsearch.cluster.routing.allocation.decider.Decision.Type in project elasticsearch by elastic.
the class AllocationDecisionTests method testFromDecisionType.
/**
* Tests getting a {@link AllocationDecision} from {@link Type}.
*/
public void testFromDecisionType() {
Type type = randomFrom(Type.values());
AllocationDecision allocationDecision = AllocationDecision.fromDecisionType(type);
AllocationDecision expected = type == Type.NO ? AllocationDecision.NO : type == Type.THROTTLE ? AllocationDecision.THROTTLED : AllocationDecision.YES;
assertEquals(expected, allocationDecision);
}
use of org.elasticsearch.cluster.routing.allocation.decider.Decision.Type in project elasticsearch by elastic.
the class MoveDecisionTests method testSerialization.
public void testSerialization() throws IOException {
List<NodeAllocationResult> nodeDecisions = new ArrayList<>();
DiscoveryNode node1 = new DiscoveryNode("node1", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT);
DiscoveryNode node2 = new DiscoveryNode("node2", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT);
Type finalDecision = randomFrom(Type.values());
DiscoveryNode assignedNode = finalDecision == Type.YES ? node1 : null;
nodeDecisions.add(new NodeAllocationResult(node1, Decision.NO, 2));
nodeDecisions.add(new NodeAllocationResult(node2, finalDecision == Type.YES ? Decision.YES : randomFrom(Decision.NO, Decision.THROTTLE, Decision.YES), 1));
MoveDecision moveDecision = MoveDecision.cannotRemain(Decision.NO, AllocationDecision.fromDecisionType(finalDecision), assignedNode, nodeDecisions);
BytesStreamOutput output = new BytesStreamOutput();
moveDecision.writeTo(output);
MoveDecision readDecision = new MoveDecision(output.bytes().streamInput());
assertEquals(moveDecision.canRemain(), readDecision.canRemain());
assertEquals(moveDecision.getExplanation(), readDecision.getExplanation());
assertEquals(moveDecision.forceMove(), readDecision.forceMove());
assertEquals(moveDecision.getNodeDecisions().size(), readDecision.getNodeDecisions().size());
assertEquals(moveDecision.getTargetNode(), readDecision.getTargetNode());
assertEquals(moveDecision.getAllocationDecision(), readDecision.getAllocationDecision());
// node2 should have the highest sort order
assertEquals("node2", readDecision.getNodeDecisions().iterator().next().getNode().getId());
}
use of org.elasticsearch.cluster.routing.allocation.decider.Decision.Type in project elasticsearch by elastic.
the class AllocateUnassignedDecision method fromDecision.
/**
* Creates a {@link AllocateUnassignedDecision} from the given {@link Decision} and the assigned node, if any.
*/
public static AllocateUnassignedDecision fromDecision(Decision decision, @Nullable DiscoveryNode assignedNode, @Nullable List<NodeAllocationResult> nodeDecisions) {
final Type decisionType = decision.type();
AllocationStatus allocationStatus = decisionType != Type.YES ? AllocationStatus.fromDecision(decisionType) : null;
return new AllocateUnassignedDecision(allocationStatus, assignedNode, null, nodeDecisions, false, 0L, 0L);
}
Aggregations