def _format_results(self, results):
SI = self._verifycap.get_storage_index()
- verifiedshares = dictutil.DictOfSets() # {sharenum: set(serverid)}
- servers = {} # {serverid: set(sharenums)}
- corruptshare_locators = [] # (serverid, storageindex, sharenum)
- incompatibleshare_locators = [] # (serverid, storageindex, sharenum)
- servers_responding = set() # serverid
+ verifiedshares = dictutil.DictOfSets() # {sharenum: set(server)}
+ servers = {} # {server: set(sharenums)}
+ corruptshare_locators = [] # (server, storageindex, sharenum)
+ incompatibleshare_locators = [] # (server, storageindex, sharenum)
+ servers_responding = set() # server
for verified, server, corrupt, incompatible, responded in results:
- server_id = server.get_serverid()
- servers.setdefault(server_id, set()).update(verified)
+ servers.setdefault(server, set()).update(verified)
for sharenum in verified:
- verifiedshares.setdefault(sharenum, set()).add(server_id)
+ verifiedshares.setdefault(sharenum, set()).add(server)
for sharenum in corrupt:
- corruptshare_locators.append((server_id, SI, sharenum))
+ corruptshare_locators.append((server, SI, sharenum))
for sharenum in incompatible:
- incompatibleshare_locators.append((server_id, SI, sharenum))
+ incompatibleshare_locators.append((server, SI, sharenum))
if responded:
- servers_responding.add(server_id)
+ servers_responding.add(server)
good_share_hosts = len([s for s in servers.keys() if servers[s]])
# The file needs rebalancing if the set of servers that have at least
# one share is less than the number of uniquely-numbered shares
# available.
+ # TODO: this may be wrong, see ticket #1115 comment:27 and ticket #1784.
needs_rebalancing = bool(good_share_hosts < len(verifiedshares))
cr = CheckResults(self._verifycap, SI,