'Asks data servers for number of changes for rebalancing.'

def FetchRebalanceInformation(self):

    body = self.rebalance.SerializeToString()
    size = len(body)
    headers = {'Content-Length': size}
    for pool in self.rebalance_pool:
        try:
            res = pool.urlopen('POST', '/rebalance/statistics', headers=headers, body=body)
            if (res.status != constants.RESPONSE_OK):
                self.CancelRebalancing()
                return False
            reb = rdf_data_server.DataServerRebalance()
            reb.ParseFromString(res.data)
            ls = list(reb.moving)
            if ls:
                logging.warning('Moving    %d', ls[0])
                self.rebalance.moving.Append(ls[0])
            else:
                self.CancelRebalancing()
                return False
        except urllib3.exceptions.MaxRetryError:
            self.CancelRebalancing()
            return False
    return True
