diff options
| author | Jafar Al-Gharaibeh <jafar@atcorp.com> | 2025-03-08 21:52:16 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-08 21:52:16 -0600 |
| commit | 3f785c913d19175333e11af664a8dd558e47ba3e (patch) | |
| tree | 9dc01b718dab3e4f7521ec384832ed18fbec3066 /tests | |
| parent | 8f8d0923a7d0670abd48d3bc15a6c7a6296d6d2b (diff) | |
| parent | 009f42dd5bd02eb5ee0bd9852704357c6bc7aaa1 (diff) | |
Merge pull request #18348 from donaldsharp/topotest_startup_order
Topotest startup order
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/topotests/lib/topotest.py | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/tests/topotests/lib/topotest.py b/tests/topotests/lib/topotest.py index e2c70cdccd..07033698d0 100644 --- a/tests/topotests/lib/topotest.py +++ b/tests/topotests/lib/topotest.py @@ -1960,7 +1960,13 @@ class Router(Node): ) else: binary = os.path.join(self.daemondir, daemon) - check_daemon_files.extend([runbase + ".pid", runbase + ".vty"]) + if daemon == "zebra": + zapi_base = "/var/run/{}/zserv.api".format(self.routertype) + check_daemon_files.extend( + [runbase + ".pid", runbase + ".vty", zapi_base] + ) + else: + check_daemon_files.extend([runbase + ".pid", runbase + ".vty"]) cmdenv = "ASAN_OPTIONS=" if asan_abort: @@ -2244,17 +2250,39 @@ class Router(Node): else: logger.debug("%s: %s %s started", self, self.routertype, daemon) + # Check if the daemons are running + def _check_daemons_running(check_daemon_files): + wait_time = 30 if (gdb_routers or gdb_daemons) else 10 + timeout = Timeout(wait_time) + for remaining in timeout: + if not check_daemon_files: + break + check = check_daemon_files[0] + if self.path_exists(check): + check_daemon_files.pop(0) + continue + self.logger.debug( + "Waiting {}s for {} to appear".format(remaining, check) + ) + time.sleep(0.5) + # Start mgmtd first if "mgmtd" in daemons_list: start_daemon("mgmtd") while "mgmtd" in daemons_list: daemons_list.remove("mgmtd") + # Wait till mgmtd is up and running to some + # very small extent before moving on + _check_daemons_running(check_daemon_files) # Start Zebra after mgmtd if "zebra" in daemons_list: start_daemon("zebra") while "zebra" in daemons_list: daemons_list.remove("zebra") + # Wait till zebra is up and running to some + # very small extent before moving on + _check_daemons_running(check_daemon_files) # Start staticd next if required if "staticd" in daemons_list: @@ -2290,17 +2318,7 @@ class Router(Node): start_daemon(daemon) # Check if daemons are running. - wait_time = 30 if (gdb_routers or gdb_daemons) else 10 - timeout = Timeout(wait_time) - for remaining in timeout: - if not check_daemon_files: - break - check = check_daemon_files[0] - if self.path_exists(check): - check_daemon_files.pop(0) - continue - self.logger.debug("Waiting {}s for {} to appear".format(remaining, check)) - time.sleep(0.5) + _check_daemons_running(check_daemon_files) if check_daemon_files: assert False, "Timeout({}) waiting for {} to appear on {}".format( |
