def run(self, *args, **kwargs) -> None: """ run method that invokes _run with client and arguments """ with get_openr_ctrl_client(self.host, self.cli_opts) as client: self._run(client, *args, **kwargs)
def run(self, cli_opts): all_success = True try: decision_route_db = None fib_route_db = None lm_links = None with get_openr_ctrl_client(cli_opts.host, cli_opts) as client: # fetch routes from decision module decision_route_db = client.getRouteDbComputed("") # fetch routes from fib module fib_route_db = client.getRouteDb() # fetch link_db from link-monitor module lm_links = client.getInterfaces().interfaceDetails (decision_unicast_routes, decision_mpls_routes ) = utils.get_shortest_routes(decision_route_db) (fib_unicast_routes, fib_mpls_routes) = utils.get_shortest_routes(fib_route_db) # fetch route from net_agent module agent_unicast_routes = self.client.getRouteTableByClient( self.client.client_id) except Exception as e: print("Failed to validate Fib routes.") print("Exception: {}".format(e)) raise e # return 1 (ret, _) = utils.compare_route_db( decision_unicast_routes, fib_unicast_routes, "unicast", ["Decision:unicast", "Openr-Fib:unicast"], cli_opts.enable_color, ) all_success = all_success and ret (ret, _) = utils.compare_route_db( decision_mpls_routes, fib_mpls_routes, "mpls", ["Decision:mpls", "Openr-Fib:mpls"], cli_opts.enable_color, ) all_success = all_success and ret (ret, _) = utils.compare_route_db( fib_unicast_routes, agent_unicast_routes, "unicast", ["Openr-Fib:unicast", "FibAgent:unicast"], cli_opts.enable_color, ) all_success = all_success and ret # for backward compatibily of Open/R binary try: agent_mpls_routes = self.client.getMplsRouteTableByClient( self.client.client_id) except Exception as e: print("Pls check Open/R version. Exception: {}".format(e)) else: (ret, _) = utils.compare_route_db( fib_mpls_routes, agent_mpls_routes, "mpls", ["Openr-Fib:mpls", "FibAgent:mpls"], cli_opts.enable_color, ) all_success = all_success and ret (ret, _) = utils.validate_route_nexthops( fib_unicast_routes, lm_links, ["Openr-Fib:unicast", "LinkMonitor"], cli_opts.enable_color, ) all_success = all_success and ret return 0 if all_success else -1