aboutsummaryrefslogtreecommitdiffstats
path: root/vnfsdk_pkgtools/validator
diff options
context:
space:
mode:
authorLianhao Lu <lianhao.lu@intel.com>2018-03-22 20:39:04 +0800
committerLianhao Lu <lianhao.lu@intel.com>2018-03-22 20:54:00 +0800
commit7676ca5e12557f72226fac162e5f1530964906cb (patch)
tree8659c0036c8dbbdeca02d186ec28f37b87fec401 /vnfsdk_pkgtools/validator
parentc3fe9827d9357f5fa2a62f6f0965ad40106a5aad (diff)
Adjusted for pypi support
We need to adjust the python module structure meet the pypi requirements. This has been tested on test pypi https://test.pypi.org/project/vnfsdk. 1. move 3 directories cli/ validator/ packager/ into vnfsdk_pkgtools. so now the python module for vnfsdk pkgtools would be "vnfsdk_pkgtool.*" 2. Added missing README.rst, LICENSE.txt according to pypi requirement. 3. Added new version mechanism accroding onap community suggestions. 4. Other clean sweep job like dos2unix. Change-Id: If90df33673bff045d85d67c29a1d0ab44d0c8858 Issue-ID: VNFSDK-143 Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Diffstat (limited to 'vnfsdk_pkgtools/validator')
-rw-r--r--vnfsdk_pkgtools/validator/__init__.py49
-rw-r--r--vnfsdk_pkgtools/validator/aria_validator.py43
2 files changed, 92 insertions, 0 deletions
diff --git a/vnfsdk_pkgtools/validator/__init__.py b/vnfsdk_pkgtools/validator/__init__.py
new file mode 100644
index 0000000..f6d9073
--- /dev/null
+++ b/vnfsdk_pkgtools/validator/__init__.py
@@ -0,0 +1,49 @@
+# Copyright (c) 2017 Intel Corp. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+import abc
+
+import six
+from stevedore import driver
+
+
+VALIDATOR_NS = "vnfsdk.pkgtools.validator"
+
+def get_validator(params):
+ """Get validate driver and load it.
+
+ :param params: parameters to decide which validator to load
+ """
+
+ loaded_driver = driver.DriverManager(VALIDATOR_NS,
+ params,
+ invoke_on_load=True)
+ return loaded_driver.driver
+
+
+@six.add_metaclass(abc.ABCMeta)
+class ValidatorBase(object):
+ """Base class for validators."""
+
+ def __init__(self):
+ pass
+
+
+ @abc.abstractmethod
+ def validate(self, reader):
+ """Validate the csar package.
+
+ :param reader: instance of package.csar._CSARReader
+ """
diff --git a/vnfsdk_pkgtools/validator/aria_validator.py b/vnfsdk_pkgtools/validator/aria_validator.py
new file mode 100644
index 0000000..83d7dfe
--- /dev/null
+++ b/vnfsdk_pkgtools/validator/aria_validator.py
@@ -0,0 +1,43 @@
+# Copyright (c) 2017 Intel Corp. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+import os
+
+from aria.parser.loading import LiteralLocation
+from aria.parser.consumption import (
+ ConsumptionContext,
+ ConsumerChain,
+ Read,
+ Validate,
+ ServiceTemplate,
+ ServiceInstance
+)
+
+from vnfsdk_pkgtools import validator
+
+
+class AriaValidator(validator.ValidatorBase):
+ def validate(self, reader):
+ context = ConsumptionContext()
+ context.loading.prefixes += [os.path.join(reader.destination, 'definitions')]
+ context.presentation.location = LiteralLocation(reader.entry_definitions_yaml)
+ print reader.entry_definitions_yaml
+ chain = ConsumerChain(context, (Read, Validate, ServiceTemplate, ServiceInstance))
+ chain.consume()
+ if context.validation.dump_issues():
+ raise RuntimeError('Validation failed')
+ dumper = chain.consumers[-1]
+ dumper.dump()
+