示例#1
0
    def run(self, cli_opts):
        try:
            decision_routes = self.get_decision_route_db(cli_opts)
            fib_routes = self.get_fib_route_db(cli_opts)
            agent_routes = self.client.getRouteTableByClient(
                self.client.client_id)
            lm_links = self.get_lm_link_db(cli_opts).interfaceDetails

        except Exception as e:
            print('Failed to validate Fib routes.')
            print('Exception: {}'.format(e))
            sys.exit(1)

        res1, _ = utils.compare_route_db(
            decision_routes,
            fib_routes,
            ['Decision', 'Openr-Fib'],
            cli_opts.enable_color,
        )
        res2, _ = utils.compare_route_db(
            fib_routes,
            agent_routes,
            ['Openr-Fib', 'FibAgent'],
            cli_opts.enable_color,
        )
        res3, _ = utils.validate_route_nexthops(
            fib_routes,
            lm_links,
            ['Openr-Fib', 'LinkMonitor'],
            cli_opts.enable_color,
        )
        return 0 if res1 and res2 and res3 else -1
示例#2
0
文件: fib.py 项目: weizai118/openr
    def run(self, cli_opts):
        try:
            decision_routes = self.get_decision_route_db(cli_opts)
            fib_routes = self.get_fib_route_db(cli_opts)
            agent_routes = self.client.getRouteTableByClient(self.client.client_id)
            lm_links = self.get_lm_link_db(cli_opts).interfaceDetails

        except Exception as e:
            print("Failed to validate Fib routes.")
            print("Exception: {}".format(e))
            return 1

        res1, _ = utils.compare_route_db(
            decision_routes,
            fib_routes,
            ["Decision", "Openr-Fib"],
            cli_opts.enable_color,
        )
        res2, _ = utils.compare_route_db(
            fib_routes, agent_routes, ["Openr-Fib", "FibAgent"], cli_opts.enable_color
        )
        res3, _ = utils.validate_route_nexthops(
            fib_routes, lm_links, ["Openr-Fib", "LinkMonitor"], cli_opts.enable_color
        )
        return 0 if res1 and res2 and res3 else -1
示例#3
0
文件: fib.py 项目: shadowkun/openr
    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)
示例#4
0
    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