39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From 293b3961149f680ead9028e6719c405957abc6b7 Mon Sep 17 00:00:00 2001
|
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
|
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):
|