client.go
func (c *Client) statusToNodeShardsForIndex(status Status, indexName string) (map[uint64]*URI, error) {
	result := make(map[uint64]*URI)
	if maxShard, ok := status.indexMaxShard[indexName]; ok {
		for shard := 0; shard <= int(maxShard); shard++ {
			fragmentNodes, err := c.fetchFragmentNodes(indexName, uint64(shard))
			if err != nil {
				return nil, err
			}
			if len(fragmentNodes) == 0 {
				return nil, ErrNoFragmentNodes
			}
			node := fragmentNodes[0]
			uri := &URI{
				host:   node.Host,
				port:   node.Port,
				scheme: node.Scheme,
			}

			result[uint64(shard)] = uri
		}
	} else {
		return nil, ErrNoShard
	}
	return result, nil
}
func (c *Client) statusToNodeShardsForIndex(status Status, indexName string) (map[uint64]*URI, error) {
	result := make(map[uint64]*URI)
	if maxShard, ok := status.indexMaxShard[indexName]; ok {
		for shard := 0; shard <= int(maxShard); shard++ {
			fragmentNodes, err := c.fetchFragmentNodes(indexName, uint64(shard))
			if err != nil {
				return nil, err
			}
			if len(fragmentNodes) == 0 {
				return nil, ErrNoFragmentNodes
			}
			node := fragmentNodes[0]
			uri := &URI{
				host:   node.Host,
				port:   node.Port,
				scheme: node.Scheme,
			}

			result[uint64(shard)] = uri
		}
	} else {
		return nil, ErrNoShard
	}
	return result, nil
}
func ( c * Client ) statusToNodeShardsForIndex ( status Status , indexName string ) ( map [ uint64 ] * URI , error ) { result := make ( map [ uint64 ] * URI ) if maxShard , ok := status . indexMaxShard [ indexName ] ; ok { for shard := 0 ; shard <= int ( maxShard ) ; shard ++ { fragmentNodes , err := c . fetchFragmentNodes ( indexName , uint64 ( shard ) ) if err != nil { return nil , err } if len ( fragmentNodes ) == 0 { return nil , ErrNoFragmentNodes } node := fragmentNodes [ 0 ] uri := & URI { host : node . Host , port : node . Port , scheme : node . Scheme , } result [ uint64 ( shard ) ] = uri } } else { return nil , ErrNoShard } return result , nil }
// statusToNodeShardsForIndex finds the hosts which contains shards for the given index
statusToNodeShardsForIndex finds the hosts which contains shards for the given index