diff options
author | MS <ms@taler.net> | 2022-08-25 16:11:32 +0200 |
---|---|---|
committer | MS <ms@taler.net> | 2022-08-25 16:11:32 +0200 |
commit | 30863eff4bb2f83fff89f962d045266e220d9124 (patch) | |
tree | f9c399f65c5b0bff839936c7d14d0a9bbc905647 | |
parent | 977e86189d322a85812c0bb8ce302804ffb867f9 (diff) | |
download | deployment-30863eff4bb2f83fff89f962d045266e220d9124.tar.gz deployment-30863eff4bb2f83fff89f962d045266e220d9124.tar.bz2 deployment-30863eff4bb2f83fff89f962d045266e220d9124.zip |
reuse loop checker
-rwxr-xr-x | bin/taler-gv | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/bin/taler-gv b/bin/taler-gv index a63bfca..9e6693c 100755 --- a/bin/taler-gv +++ b/bin/taler-gv @@ -529,6 +529,27 @@ CURRENCY = "KUDOS" def prepare(postgres_db_name): """Generate configuration, run-time blobs, instances, euFin accounts.""" + def is_serving(check_url, tries=10): + for i in range(tries): + try: + print_nn(".") + # Raises if the service is not reachable. + response = requests.get( + check_url, + timeout=1 + ) + # The reverse proxy may return 500 if the + # end service is not ready, therefore this + # case should be tolerated. + response.raise_for_status() + except: + time.sleep(0.5) + if i == tries - 1: + return False + continue + break + return True + def fail(reason=None): if reason: print("ERROR:", reason) @@ -1315,15 +1336,8 @@ def prepare(postgres_db_name): print(" OK") print_nn("Launching the exchange...") subprocess.run(["systemctl", "--user", "start", "taler-local-exchange-httpd.service"]) - res = requests.get("https://exchange.demo.taler.net/") - res_count = 0 - while res.status_code != 200: - if res_count == 10: - print("Exchange unreachable") - sys.exit(1) - res_count = res_count + 1 - time.sleep(1) - res = requests.get("https://exchange.demo.taler.net/") + if not is_serving("https://exchange.demo.taler.net/"): + fail(f"Exchange did not start correctly.") print(" OK") print_nn("exchange-offline: signing key material...") Command([ |