Allow gaps in relay numbering
This commit is contained in:
@@ -9,10 +9,19 @@ from utils.logging.debug import debug
|
||||
from utils.logging.log import error, log, warn
|
||||
|
||||
|
||||
def getActiveRelays(net):
|
||||
activeRelays = [x for x in main.network[net].relays.keys() if main.network[net].relays[x]["enabled"]]
|
||||
return activeRelays
|
||||
|
||||
|
||||
def allRelaysActive(net):
|
||||
relayNum = len(main.network[net].relays.keys())
|
||||
"""
|
||||
Check if all enabled relays are active and authenticated.
|
||||
"""
|
||||
activeRelays = getActiveRelays(net)
|
||||
relayNum = len(activeRelays) + 1
|
||||
existNum = 0
|
||||
for i in main.network[net].relays.keys():
|
||||
for i in activeRelays:
|
||||
name = net + str(i)
|
||||
if name in main.IRCPool.keys():
|
||||
if main.IRCPool[name].authenticated:
|
||||
@@ -34,7 +43,7 @@ def getChanFree(net, new):
|
||||
"""
|
||||
chanfree = {}
|
||||
chanlimits = set()
|
||||
for i in main.network[net].relays.keys():
|
||||
for i in getActiveRelays(net):
|
||||
if i in new:
|
||||
continue
|
||||
name = net + str(i)
|
||||
@@ -60,9 +69,8 @@ def emptyChanAllocate(net, flist, relay, new):
|
||||
toalloc = len(flist)
|
||||
if toalloc > sum(chanfree[0].values()):
|
||||
correction = round(toalloc - sum(chanfree[0].values()) / chanfree[1])
|
||||
# print("correction", correction)
|
||||
warn("Ran out of channel spaces, provisioning additional %i relays for %s" % (correction, net))
|
||||
# newNums = modules.provision.provisionMultipleRelays(net, correction)
|
||||
modules.provision.provisionMultipleRelays(net, correction)
|
||||
return False
|
||||
for i in chanfree[0].keys():
|
||||
for x in range(chanfree[0][i]):
|
||||
@@ -88,7 +96,7 @@ def populateChans(net, clist, relay, new):
|
||||
|
||||
|
||||
def notifyJoin(net):
|
||||
for i in main.network[net].relays.keys():
|
||||
for i in getActiveRelays(net):
|
||||
name = net + str(i)
|
||||
if name in main.IRCPool.keys():
|
||||
main.IRCPool[name].checkChannels()
|
||||
@@ -98,7 +106,7 @@ def minifyChans(net, listinfo):
|
||||
if not allRelaysActive(net):
|
||||
error("All relays for %s are not active, cannot minify list" % net)
|
||||
return False
|
||||
for i in main.network[net].relays.keys():
|
||||
for i in getActiveRelays(net):
|
||||
name = net + str(i)
|
||||
for x in main.IRCPool[name].channels:
|
||||
for y in listinfo:
|
||||
@@ -122,12 +130,12 @@ def keepChannels(net, listinfo, mean, sigrelay, relay):
|
||||
error("Network %s is too big to cover: %i relays required" % (net, sigrelay))
|
||||
return
|
||||
if coverAll:
|
||||
needed = relay - len(main.network[net].relays.keys())
|
||||
needed = relay - len(getActiveRelays(net))
|
||||
newNums = modules.provision.provisionMultipleRelays(net, needed)
|
||||
flist = [i[0] for i in listinfo]
|
||||
populateChans(net, flist, relay, newNums)
|
||||
else:
|
||||
needed = sigrelay - len(main.network[net].relays.keys())
|
||||
needed = sigrelay - len(getActiveRelays(net))
|
||||
newNums = modules.provision.provisionMultipleRelays(net, needed)
|
||||
siglist = [i[0] for i in listinfo if int(i[1]) > mean]
|
||||
populateChans(net, siglist, sigrelay, newNums)
|
||||
@@ -156,7 +164,7 @@ def partSingle(net, channel):
|
||||
:return:
|
||||
"""
|
||||
parted = []
|
||||
for i in main.network[net].relays.keys():
|
||||
for i in getActiveRelays(net):
|
||||
name = f"{net}{i}"
|
||||
if name in main.IRCPool.keys():
|
||||
if channel in main.IRCPool[name].channels:
|
||||
|
||||
Reference in New Issue
Block a user