code: func (c *Conn) GetCatShards() (shards CatShards) {
  	shards = make(CatShards, 0)
  	//force it to only respond with the columns we know about and in a forced order
  	args := map[string]interface{}{"bytes": "b", "h": "index,shard,prirep,state,docs,store,ip,node"}
  	s, err := c.DoCommand("GET", "/_cat/shards", args, nil)
  	if err == nil {
  		catShardLines := strings.Split(string(s[:]), "\n")
  		for _, shardLine := range catShardLines {
  			shard, _ := NewCatShardInfo(shardLine)
  			if nil != shard {
  				shards = append(shards, *shard)
  			}
  		}
  	}
  	return shards
  }
docs: // Get all the shards, even the bad ones