X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FIM.git;a=blobdiff_plain;f=osm_im%2Fvalidation.py;h=6cc4f0dfc61a1cff8e69720fac0db8140a5b6d71;hp=0863434702ea7394db3a00952efa4ee90e64ff5d;hb=b163567ec3c2b5645f4eebefe0e4bf66af3d0a4c;hpb=361145b8cad9af57ec8102e5e7d83f2e7b22508c;ds=sidebyside diff --git a/osm_im/validation.py b/osm_im/validation.py index 0863434..6cc4f0d 100644 --- a/osm_im/validation.py +++ b/osm_im/validation.py @@ -14,18 +14,19 @@ # limitations under the License. import yaml -import json -# import logging +import importlib from osm_im.vnfd import vnfd as vnfd_im from osm_im.nsd import nsd as nsd_im from osm_im.nst import nst as nst_im +etsi_nfv_vnfd = importlib.import_module("osm_im.etsi-nfv-vnfd") +etsi_nfv_nsd = importlib.import_module("osm_im.etsi-nfv-nsd") from pyangbind.lib.serialise import pybindJSONDecoder import pyangbind.lib.pybindJSON as pybindJSON class ValidationException(Exception): pass -class Validation(): +class Validation: def pyangbind_validation(self, item, data, force=False): ''' @@ -39,6 +40,10 @@ class Validation(): myobj = nsd_im() elif item == "nst": myobj = nst_im() + elif item == "etsi_nfv_vnfd": + myobj = etsi_nfv_vnfd.etsi_nfv_vnfd() + elif item == "etsi_nfv_nsd": + myobj = etsi_nfv_nsd.etsi_nfv_nsd() else: raise ValidationException("Not possible to validate '{}' item".format(item)) @@ -55,15 +60,19 @@ class Validation(): try: data = yaml.safe_load(descriptor) except Exception as e: - raise ValidationException("Error in YAML validation. Not a proper YAML file") - if 'vnfd:vnfd-catalog' in data: + raise ValidationException("Error in YAML validation. Not a proper YAML file: {}".format(e)) + if 'vnfd:vnfd-catalog' in data or 'vnfd-catalog' in data: item = "vnfd" - elif 'nsd:nsd-catalog' in data: + elif 'nsd:nsd-catalog' in data or 'nsd-catalog' in data: item = "nsd" elif 'nst' in data: item = "nst" + elif 'vnfd' in data: + item = "etsi_nfv_vnfd" + elif 'nsd' in data: + item = "etsi_nfv_nsd" else: - raise ValidationException("Error in YAML validation. Not possible to determine the type of descriptor in the first line. Expected values: vnfd:vnfd-catalog, nsd:nsd-catalog, nst") + raise ValidationException("Error in YAML validation. Not possible to determine the type of descriptor in the first line. Expected values: vnfd:vnfd-catalog, vnfd-catalog, nsd:nsd-catalog, nsd-catalog, nst") return item, data