def run(self, cli_opts): try: # fetch routes from decision module (decision_unicast_routes, decision_mpls_routes) = utils.get_shortest_routes( decision_client.DecisionClient(cli_opts).get_route_db()) # fetch routes from fib module (fib_unicast_routes, fib_mpls_routes) = utils.get_shortest_routes( fib_client.FibClient(cli_opts).get_route_db()) # fetch route from net_agent module agent_unicast_routes = self.client.getRouteTableByClient( self.client.client_id) agent_mpls_routes = self.client.getMplsRouteTableByClient( self.client.client_id) # fetch link_db from link-monitor module lm_links = lm_client.LMClient( cli_opts).dump_links().interfaceDetails except Exception as e: print("Failed to validate Fib routes.") print("Exception: {}".format(e)) raise e # return 1 (res1_unicast, _) = utils.compare_route_db( decision_unicast_routes, fib_unicast_routes, "unicast", ["Decision:unicast", "Openr-Fib:unicast"], cli_opts.enable_color, ) (res1_mpls, _) = utils.compare_route_db( decision_mpls_routes, fib_mpls_routes, "mpls", ["Decision:mpls", "Openr-Fib:mpls"], cli_opts.enable_color, ) (res2_unicast, _) = utils.compare_route_db( fib_unicast_routes, agent_unicast_routes, "unicast", ["Openr-Fib:unicast", "FibAgent:unicast"], cli_opts.enable_color, ) (res2_mpls, _) = utils.compare_route_db( fib_mpls_routes, agent_mpls_routes, "mpls", ["Openr-Fib:mpls", "FibAgent:mpls"], cli_opts.enable_color, ) (res3, _) = utils.validate_route_nexthops( fib_unicast_routes, lm_links, ["Openr-Fib:unicast", "LinkMonitor"], cli_opts.enable_color, ) return (0 if res1_unicast and res1_mpls and res2_unicast and res2_mpls and res3 else -1)
def _decision_client(): decision_client_inst = decision_client.DecisionClient( zmq.Context(), "tcp://localhost:5000") self.assertEqual(decision_client_inst.get_route_db(), route_db_cache) self.assertEqual(decision_client_inst.get_adj_dbs(), adj_dbs_cache) self.assertEqual(decision_client_inst.get_prefix_dbs(), prefix_dbs_cache)
def __init__(self, cli_opts): """ initialize the Decision client """ self.host = cli_opts.host self.timeout = cli_opts.timeout self.cli_opts = cli_opts self.fib_agent_port = cli_opts.fib_agent_port self.enable_color = cli_opts.enable_color self.client = decision_client.DecisionClient(cli_opts) self.kvstore_client = kvstore_client.KvStoreClient(cli_opts)
def _decision_client(): decision_client_inst = decision_client.DecisionClient( bunch.Bunch({ "ctx": zmq.Context(), "host": "localhost", "decision_rep_port": 5000, })) self.assertEqual(decision_client_inst.get_route_db(), route_db_cache) self.assertEqual(decision_client_inst.get_adj_dbs(), adj_dbs_cache) self.assertEqual(decision_client_inst.get_prefix_dbs(), prefix_dbs_cache)
def __init__(self, cli_opts): ''' initialize the Decision client ''' self.host = cli_opts.host self.timeout = cli_opts.timeout self.lm_cmd_port = cli_opts.lm_cmd_port self.kv_rep_port = cli_opts.kv_rep_port self.fib_agent_port = cli_opts.fib_agent_port self.enable_color = cli_opts.enable_color self.client = decision_client.DecisionClient( cli_opts.zmq_ctx, "tcp://[{}]:{}".format(cli_opts.host, cli_opts.decision_rep_port), cli_opts.timeout, cli_opts.proto_factory)
def get_decision_route_db(self): self.decision_client = decision_client.DecisionClient( zmq.Context(), "tcp://[{}]:{}".format(self.client.host, self.decision_rep_port)) return self.decision_client.get_route_db()
def get_decision_route_db(self, cli_opts): self.decision_client = decision_client.DecisionClient(cli_opts) return utils.get_shortest_routes(self.decision_client.get_route_db())
def get_decision_route_db(self, cli_opts): self.decision_client = decision_client.DecisionClient( zmq.Context(), "tcp://[{}]:{}".format(cli_opts.host, cli_opts.decision_rep_port)) return utils.get_shortest_routes(self.decision_client.get_route_db())