def removeSourceRoute(routes, rules, device): for route in routes: try: routeDel(route) except IPRoute2Error as e: if 'No such process' in e.message[0]: # The kernel or dhclient has won the race and removed the # route already. We have yet to remove routing rules. pass else: raise for rule in rules: ruleDel(rule)
def delete(rule_data): r = rule_data with _translate_iproute2_exception(IPRuleDeleteError, rule_data): ruleDel(Rule(r.table, r.src, r.to, r.iif))
def restoreRules(base): current = ipwrapper.ruleList() added = set(current) - set(base) for rule in added: ipwrapper.ruleDel(ipwrapper.Rule.fromText(rule))
def delete(rule_data): r = rule_data with _translate_iproute2_exception(IPRuleDeleteError, rule_data): ruleDel(Rule(r.table, r.src, r.to, r.iif, prio=r.prio))