Class RoutingNodes.UnassignedShards.UnassignedIterator
java.lang.Object
org.elasticsearch.cluster.routing.RoutingNodes.UnassignedShards.UnassignedIterator
- All Implemented Interfaces:
Iterator<ShardRouting>,ExistingShardsAllocator.UnassignedAllocationHandler
- Enclosing class:
- RoutingNodes.UnassignedShards
public class RoutingNodes.UnassignedShards.UnassignedIterator
extends Object
implements Iterator<ShardRouting>, ExistingShardsAllocator.UnassignedAllocationHandler
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanhasNext()initialize(String nodeId, String existingAllocationId, long expectedShardSize, RoutingChangesObserver routingChangesObserver)Initializes the current unassigned shard and moves it from the unassigned list.next()voidremove()Unsupported operation, just there for the interface.voidremoveAndIgnore(UnassignedInfo.AllocationStatus attempt, RoutingChangesObserver changes)Removes and ignores the unassigned shard (will be ignored for this run, but will be added back to unassigned once the metadata is constructed again).updateUnassigned(UnassignedInfo unassignedInfo, RecoverySource recoverySource, RoutingChangesObserver changes)updates the unassigned info and recovery source on the current unassigned shardMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
UnassignedIterator
public UnassignedIterator()
-
-
Method Details
-
hasNext
public boolean hasNext()- Specified by:
hasNextin interfaceIterator<ShardRouting>
-
next
- Specified by:
nextin interfaceIterator<ShardRouting>
-
initialize
public ShardRouting initialize(String nodeId, @Nullable String existingAllocationId, long expectedShardSize, RoutingChangesObserver routingChangesObserver)Initializes the current unassigned shard and moves it from the unassigned list.- Specified by:
initializein interfaceExistingShardsAllocator.UnassignedAllocationHandler- Parameters:
existingAllocationId- allocation id to use. If null, a fresh allocation id is generated.
-
removeAndIgnore
public void removeAndIgnore(UnassignedInfo.AllocationStatus attempt, RoutingChangesObserver changes)Removes and ignores the unassigned shard (will be ignored for this run, but will be added back to unassigned once the metadata is constructed again). Typically this is used when an allocation decision prevents a shard from being allocated such that subsequent consumers of this API won't try to allocate this shard again.- Specified by:
removeAndIgnorein interfaceExistingShardsAllocator.UnassignedAllocationHandler- Parameters:
attempt- the result of the allocation attempt
-
updateUnassigned
public ShardRouting updateUnassigned(UnassignedInfo unassignedInfo, RecoverySource recoverySource, RoutingChangesObserver changes)updates the unassigned info and recovery source on the current unassigned shard- Specified by:
updateUnassignedin interfaceExistingShardsAllocator.UnassignedAllocationHandler- Parameters:
unassignedInfo- the new unassigned info to userecoverySource- the new recovery source to use- Returns:
- the shard with unassigned info updated
-
remove
public void remove()Unsupported operation, just there for the interface. UseremoveAndIgnore(AllocationStatus, RoutingChangesObserver)orinitialize(String, String, long, RoutingChangesObserver).- Specified by:
removein interfaceIterator<ShardRouting>
-