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,
@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,