Class RoutingNodes.UnassignedShards.UnassignedIterator

    • Constructor Detail

      • UnassignedIterator

        public UnassignedIterator()
    • Method Detail

      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<ShardRouting>
      • initialize

        public ShardRouting initialize​(java.lang.String nodeId,
                                       @Nullable
                                       java.lang.String existingAllocationId,
                                       long expectedShardSize,
                                       RoutingChangesObserver routingChangesObserver)
        Initializes the current unassigned shard and moves it from the unassigned list.
        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.
        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
        Parameters:
        unassignedInfo - the new unassigned info to use
        recoverySource - the new recovery source to use
        Returns:
        the shard with unassigned info updated