From 646773d46821cc2a5461423021e87034a5aa86e9 Mon Sep 17 00:00:00 2001 From: Gabriel Cuba Date: Mon, 20 Nov 2023 01:43:05 -0500 Subject: [PATCH] Fixes validation of helm charts to include URLs Change-Id: Ifc01ff100aaa22bc1dfeada849b41fe1824e4c7f Signed-off-by: Gabriel Cuba --- osm_nbi/descriptor_topics.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/osm_nbi/descriptor_topics.py b/osm_nbi/descriptor_topics.py index 9695866..98a41d1 100644 --- a/osm_nbi/descriptor_topics.py +++ b/osm_nbi/descriptor_topics.py @@ -31,6 +31,7 @@ from time import time from uuid import uuid4 from re import fullmatch from zipfile import ZipFile +from urllib.parse import urlparse from osm_nbi.validation import ( ValidationError, pdu_new_schema, @@ -858,12 +859,18 @@ class VnfdTopic(DescriptorTopic): @staticmethod def validate_helm_chart(indata): + def is_url(url): + result = urlparse(url) + return all([result.scheme, result.netloc]) + kdus = indata.get("kdu", []) for kdu in kdus: helm_chart_value = kdu.get("helm-chart") if not helm_chart_value: continue - if not valid_helm_chart_re.match(helm_chart_value): + if not ( + valid_helm_chart_re.match(helm_chart_value) or is_url(helm_chart_value) + ): raise EngineException( "helm-chart '{}' is not valid".format(helm_chart_value), http_code=HTTPStatus.UNPROCESSABLE_ENTITY, -- 2.17.1