From 9f9fc2cab2ec0a22a901fc49857ba63aed242ec7 Mon Sep 17 00:00:00 2001 From: Miguel Caballer Date: Fri, 24 Jan 2025 11:22:56 +0100 Subject: [PATCH] Add EU Node Containers --- app/cred.py | 2 +- app/static/images/EUNodeContRow.png | Bin 0 -> 14126 bytes app/templates/modal_creds.html | 13 +++++++++++++ app/utils.py | 6 +++++- 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 app/static/images/EUNodeContRow.png diff --git a/app/cred.py b/app/cred.py index c55ab617..ee14f8b6 100644 --- a/app/cred.py +++ b/app/cred.py @@ -64,7 +64,7 @@ def validate_cred(self, userid, new_cred): if isequal: return 1, "Credentials already available." - if new_cred["type"] == "EUNode": + if new_cred["type"] in ["EUNode", "EUNodeCont"]: if new_cred["node"] == cred["node"]: return 2, ("This site has already a Credential with the same EU Node site." + " This may cause problems authenticating with the site." + diff --git a/app/static/images/EUNodeContRow.png b/app/static/images/EUNodeContRow.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf91d58505273558411c7359e13f0eed16188ad GIT binary patch literal 14126 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 literal 0 HcmV?d00001 diff --git a/app/templates/modal_creds.html b/app/templates/modal_creds.html index 11ccc5fd..67e0bf86 100644 --- a/app/templates/modal_creds.html +++ b/app/templates/modal_creds.html @@ -314,6 +314,19 @@ +{% elif cred_type == "EUNodeCont" %} +
+
+ +
+
+ +
+
{% else %} diff --git a/app/utils.py b/app/utils.py index cb696fc7..8df90db0 100644 --- a/app/utils.py +++ b/app/utils.py @@ -210,7 +210,11 @@ def getUserAuthData(access_token, cred, userid, cred_id=None, full=False, add_ex for cred in creds: if cred['enabled'] and (cred_id is None or cred_id == cred['id'] or cred['id'] in extra_auth_ids): res += "\\nid = %s" % cred['id'] - if cred['type'] == "EUNode": + if cred['type'] == "EUNodeCont": + # Add the EUNode provider as Kubernetes + res += "; type = Kubernetes; token = '%s';" % cred['token'] + res += " host = https://api.%s.paas.open-science-cloud.ec.europa.eu:6443" % cred['node'] + elif cred['type'] == "EUNode": # Add the EUNode provider as OpenStack res += "; type = OpenStack; auth_version = 3.x_appcred;" res += " host = https://api.%s.iaas.open-science-cloud.ec.europa.eu:5000" % cred['node']