Fixes validation of helm charts to include URLs
[osm/NBI.git] / osm_nbi / descriptor_topics.py
index 9695866..98a41d1 100644 (file)
@@ -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,