From: Gabriel Cuba Date: Mon, 20 Nov 2023 06:43:05 +0000 (-0500) Subject: Fixes validation of helm charts to include URLs X-Git-Tag: release-v15.0-start~1 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=646773d46821cc2a5461423021e87034a5aa86e9;p=osm%2FNBI.git Fixes validation of helm charts to include URLs Change-Id: Ifc01ff100aaa22bc1dfeada849b41fe1824e4c7f Signed-off-by: Gabriel Cuba --- 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,