Fixes validation of helm charts to include URLs
Change-Id: Ifc01ff100aaa22bc1dfeada849b41fe1824e4c7f
Signed-off-by: Gabriel Cuba <gcuba@whitestack.com>
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 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 @@
@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,