From c43616d14d7e176cf17427bdfbcc9920b2c7e3c3 Mon Sep 17 00:00:00 2001 From: Miguel Caballer Date: Fri, 10 Jan 2025 09:19:22 +0100 Subject: [PATCH 1/3] Fix #612 --- app/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/utils.py b/app/utils.py index a4356683..4157daee 100644 --- a/app/utils.py +++ b/app/utils.py @@ -175,7 +175,11 @@ def getUserAuthData(access_token, cred, userid, cred_id=None, full=False, add_ex res = "type = InfrastructureManager; token = %s" % access_token fedcloud_sites = None - creds = cred.get_creds(userid) + try: + creds = cred.get_creds(userid) + except Exception as ex: + creds = [] + print("Error getting credentials: %s." % ex, file=sys.stderr) # Add the extra auth configured in the Dashboard extra_auth_ids = [] From e8580477b81ba0c16e871de6f5c8f3d2a3fbef00 Mon Sep 17 00:00:00 2001 From: Miguel Caballer Date: Fri, 10 Jan 2025 09:24:01 +0100 Subject: [PATCH 2/3] Fix #612 --- app/utils.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/utils.py b/app/utils.py index 4157daee..fc5b85fa 100644 --- a/app/utils.py +++ b/app/utils.py @@ -159,7 +159,14 @@ def getIMUserAuthData(access_token, cred, userid): if g.settings.im_auth == "Bearer": return "Bearer %s" % access_token res = "type = InfrastructureManager; token = '%s'" % access_token - for cred in cred.get_creds(userid): + + try: + creds = cred.get_creds(userid) + except Exception as ex: + creds = [] + print("Error getting credentials: %s." % ex, file=sys.stderr) + + for cred in creds: if cred['enabled']: if cred['type'] == "InfrastructureManager": res += "\\nid = %s" % cred['id'] From 8073933aac9466a80f63980b94a620fa15c5a97c Mon Sep 17 00:00:00 2001 From: Miguel Caballer Date: Fri, 17 Jan 2025 12:10:27 +0100 Subject: [PATCH 3/3] Add EUNode provider --- app/cred.py | 9 +++++++-- app/static/images/EUNodeRow.png | Bin 0 -> 12811 bytes app/templates/advanced_config.html | 2 +- app/templates/modal_creds.html | 21 +++++++++++++++++++++ app/templates/service_creds.html | 4 ++++ app/utils.py | 11 ++++++++++- 6 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 app/static/images/EUNodeRow.png diff --git a/app/cred.py b/app/cred.py index 37c1664b..c55ab617 100644 --- a/app/cred.py +++ b/app/cred.py @@ -64,8 +64,13 @@ def validate_cred(self, userid, new_cred): if isequal: return 1, "Credentials already available." - if new_cred["type"] in no_host_types: - return 2, ("There is already a set of" + new_cred["type"] + " credentials. " + + if new_cred["type"] == "EUNode": + 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." + + " Please disable/remove one of the credentials.") + elif new_cred["type"] in no_host_types: + return 2, ("There is already a set of " + new_cred["type"] + " credentials. " + " This may cause problems authenticating with the Cloud provider." + " Please disable/remove one of the credentials.") elif new_cred["type"] not in ['EGI', 'OpenStack', 'fedcloud']: # these types has no problem diff --git a/app/static/images/EUNodeRow.png b/app/static/images/EUNodeRow.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b5f82d7ad3801db737ba98e51adcb3bd52c080 GIT binary patch literal 12811 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 vq1It09x^inYxO6$GFxdCloud Provider: loadImages(); loadSiteImages(); loadSiteInfo(); - } else if (cred_type == 'OpenStack' || cred_type == 'CH') { + } else if (cred_type == 'OpenStack' || cred_type == 'CH'|| cred_type == 'EUNode') { $('#cloudImages').hide(); $('#fedcloudImages').hide(); $('#siteImages').show(); diff --git a/app/templates/modal_creds.html b/app/templates/modal_creds.html index 42523d8a..11ccc5fd 100644 --- a/app/templates/modal_creds.html +++ b/app/templates/modal_creds.html @@ -293,6 +293,27 @@
+{% elif cred_type == "EUNode" %} +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
{% else %} diff --git a/app/templates/service_creds.html b/app/templates/service_creds.html index fde00154..ed2938b6 100644 --- a/app/templates/service_creds.html +++ b/app/templates/service_creds.html @@ -34,6 +34,7 @@

Cloud Credentials

+ @@ -56,6 +57,9 @@

Cloud Credentials

{{cred['id']}} + {% if 'node' in cred %} + Node: {{cred["node"]}} + {% endif %} {% if 'host' in cred %} Host: {{cred["host"]}} {% endif %} diff --git a/app/utils.py b/app/utils.py index fc5b85fa..cb696fc7 100644 --- a/app/utils.py +++ b/app/utils.py @@ -210,7 +210,16 @@ 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'] == "CH": + if 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'] + res += "/identity;" if cred['node'] == "eu-2" else ";" + res += " username = %s; tenant = %s; password = '%s'" % (cred['username'], + cred['tenant'], + cred['password']) + res += "; tenant_id = %s;" % cred["tenant"] + elif cred['type'] == "CH": # Add the Cloud&Heat provider as OpenStack res += "; type = OpenStack; auth_version = 3.x_password;" res += " host = https://identity-%s.cloudandheat.com:5000;" % cred['region']