def getNewRules(oldTargets, newTargets): newRulesList = [] for i in range(0, len(oldTargets)): currIP = oldTargets[i]['ip'] currWild = oldTargets[i]['wild'] currReplica = oldTargets[i]['replica'] matchRule = findMatch(newTargets, currIP, currWild) # 2 New Rules for 1 Old Rule if matchRule == []: newChildRules = findChildRules(newTargets, currIP, currWild) if newChildRules != []: newRulesList.append({'NewRules': newChildRules, 'OldRules': [oldTargets[i]]}) for i in range(0, len(newTargets)): currRule = IPTransition.copyRule(newTargets[i]) currIP = currRule['ip'] currWild = currRule['wild'] currReplica = currRule['replica'] matchRule = findMatch(oldTargets, currIP, currWild) # 1 New Rule for 1 Old Rule if matchRule != []: # if currRule['replica'] != matchRule[0]['replica']: newRulesList.append({'NewRules': [currRule], 'OldRules': matchRule}) # 1 New Rule for 2 Old Rules else: oldChildRules = findChildRules(oldTargets, currIP, currWild) alreadyRule = False for i, childRule in enumerate(oldChildRules): if findMatch(newTargets, childRule['ip'], childRule['wild']) != []: alreadyRule = True if oldChildRules != [] and not alreadyRule: newRulesList.append({'NewRules': [currRule], 'OldRules': oldChildRules}) return newRulesList
# Init Forwarding Table Multipath.calcForwardingTable() # NEW ALPHAS os.system('cp ' + Globals.HOME + 'alpha1.txt ' + Globals.HOME + 'alpha.txt') time.sleep(1) alphaFileUpdate() Globals.TARGETRULES[0]['traffic'] = 99 alphaFileUpdate() Globals.TARGETRULES[0]['traffic'] = 1 # NEW ALPHAS os.system('cp ' + Globals.HOME + 'alpha2.txt ' + Globals.HOME + 'alpha.txt') time.sleep(1) alphaFileUpdate() Globals.TARGETRULES[1]['traffic'] = 10 hardTimeoutHandler(Globals.TRANSITRULES[0]) timeoutRules = [] for i, transitRule in enumerate(Globals.TRANSITRULES): timeoutRules.append(IPTransition.copyRule(transitRule)) for i, transitRule in enumerate(timeoutRules): hardTimeoutHandler(transitRule)