def _set_default_route(gateway, family, dev=None): try: ipwrapper.routeAdd(['default', 'via', gateway], family=family, dev=dev) except ipwrapper.IPRoute2Error: # there already is a default route logging.warning( 'Existing default route will be removed so a new one can be set.') ipwrapper.routeDel('default', family=family) ipwrapper.routeAdd(['default', 'via', gateway], family=family, dev=dev)
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(route_data): r = route_data with _translate_iproute2_exception(IPRouteDeleteError, route_data): routeDel(Route(r.to, r.via, r.src, r.device, r.table), r.family)