From 293b3961149f680ead9028e6719c405957abc6b7 Mon Sep 17 00:00:00 2001 From: Oyvind Albrigtsen Date: Thu, 13 Mar 2025 16:40:30 +0100 Subject: [PATCH] fence_ibm_vpc: refresh bearer-token in connect() if token data is corrupt, and avoid edge-case of writing empty token file --- agents/ibm_vpc/fence_ibm_vpc.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/agents/ibm_vpc/fence_ibm_vpc.py b/agents/ibm_vpc/fence_ibm_vpc.py index 035a3235a..efda5eed7 100755 --- a/agents/ibm_vpc/fence_ibm_vpc.py +++ b/agents/ibm_vpc/fence_ibm_vpc.py @@ -105,6 +105,8 @@ def get_bearer_token(conn, options): except Exception as e: logging.error("Failed: Unable to authenticate: {}".format(e)) fail(EC_LOGIN_DENIED) + if len(token) < 1: + fail(EC_LOGIN_DENIED) file_obj.write(token) finally: os.umask(oldumask) @@ -152,6 +154,14 @@ def connect(opt): # set auth token for later requests conn = set_bearer_token(conn, bearer_token) + try: + command = "instances?version=2021-05-25&generation=2&limit=1" + res = send_command(conn, opt, command) + except Exception as e: + logging.warning("Failed to login/connect. Updating bearer-token.") + bearer_token = get_bearer_token(conn, opt) + conn = set_bearer_token(conn, bearer_token) + return conn def disconnect(conn):