aboutsummaryrefslogtreecommitdiffstats
path: root/vnfsdk_pkgtools/validator/toscaparser_validator.py
diff options
context:
space:
mode:
Diffstat (limited to 'vnfsdk_pkgtools/validator/toscaparser_validator.py')
-rw-r--r--vnfsdk_pkgtools/validator/toscaparser_validator.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/vnfsdk_pkgtools/validator/toscaparser_validator.py b/vnfsdk_pkgtools/validator/toscaparser_validator.py
index bcb3e9e..d1aad30 100644
--- a/vnfsdk_pkgtools/validator/toscaparser_validator.py
+++ b/vnfsdk_pkgtools/validator/toscaparser_validator.py
@@ -15,18 +15,44 @@
import logging
import os
+import pkg_resources
from toscaparser.common.exception import ValidationError
from toscaparser.tosca_template import ToscaTemplate
from vnfsdk_pkgtools import validator
+from vnfsdk_pkgtools.validator import utils
LOG = logging.getLogger(__name__)
+class HpaSchemaDefError(ValueError):
+ pass
+
+
class ToscaparserValidator(validator.ValidatorBase):
def __init__(self):
super(ToscaparserValidator, self).__init__()
+ self._load_hpa_definition()
+
+ def _load_hpa_definition(self):
+ conf = pkg_resources.resource_filename(__name__, "hpa.yaml")
+ defs = utils.load_definitions(conf, {})
+ self.hpa_schema_version = defs.get('metadata', {}).get('version')
+ self.hpa_schemas = defs.get('schemas', {})
+ self.hpa_mappings = defs.get('mappings', [])
+ #validate schema defined in hpa.yaml is correct
+ if not self.hpa_schema_version:
+ msg = "No defined version in metadata"
+ raise HpaSchemaDefError(msg)
+ for mapping in self.hpa_mappings:
+ schema = mapping.get('schema')
+ if schema not in self.hpa_schemas:
+ msg = "schema %s not found in hpa schema definitions" % schema
+ raise HpaSchemaDefError(msg)
+ if not mapping.get('type') or not mapping.get('key'):
+ msg = "type or key not defined in hpa mappings"
+ raise HpaSchemaDefError(msg)
def validate(self, reader):
entry_path = os.path.join(reader.destination,
@@ -40,3 +66,5 @@ class ToscaparserValidator(validator.ValidatorBase):
except ValidationError as e:
LOG.error(e.message)
raise e
+
+ print self.tosca