def invariant_check_prompt(self): answer = msg.raw_input('Check Invariants? [Ny]') if answer != '' and answer.lower() != 'n': msg.interactive("Which one?") msg.interactive(" 'l' - loops") msg.interactive(" 'b' - blackholes") msg.interactive(" 'r' - routing consistency") msg.interactive(" 'c' - connectivity") msg.interactive(" 'o' - omega") answer = msg.raw_input(" ") result = None if answer.lower() == 'l': result = self.invariant_checker.check_loops() elif answer.lower() == 'b': result = self.invariant_checker.check_blackholes() elif answer.lower() == 'r': result = self.invariant_checker.check_routing_consistency() elif answer.lower() == 'c': result = self.invariant_checker.check_connectivity() elif answer.lower() == 'o': result = self.invariant_checker.check_correspondence(self.live_switches, self.live_links, self.access_links) else: log.warn("Unknown input...") if result is None: return else: msg.interactive("Result: %s" % str(result))
def do_correspondence(): any_policy_violations = self.invariant_checker.check_correspondence(self.live_switches, self.live_links, self.access_links) if any_policy_violations: msg.fail("There were policy-violations!") else: msg.interactive("No policy-violations!")