diff options
author | 2019-08-19 16:13:07 +0800 | |
---|---|---|
committer | 2019-08-19 17:04:06 +0800 | |
commit | 5f43f873d21ee49a3f1a8c2ae7d6252604ad9119 (patch) | |
tree | c3ebd7e9923d9940c67a42264bf6cdf4beadac28 /lcm/lcm/pub/verifyvnfd/verifyvnfd.py | |
parent | 8020d45b7bb4cd43c69425ea9c4bb1d88b250e4e (diff) |
Add vnfd validity check
Change-Id: I46d607df7e0a61a81e91765396e4df88867e71fa
Issue-ID: VFC-1490
Signed-off-by: hongyuzhao <zhao.hongyu@zte.com.cn>
Diffstat (limited to 'lcm/lcm/pub/verifyvnfd/verifyvnfd.py')
-rw-r--r-- | lcm/lcm/pub/verifyvnfd/verifyvnfd.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lcm/lcm/pub/verifyvnfd/verifyvnfd.py b/lcm/lcm/pub/verifyvnfd/verifyvnfd.py new file mode 100644 index 00000000..b4ed0408 --- /dev/null +++ b/lcm/lcm/pub/verifyvnfd/verifyvnfd.py @@ -0,0 +1,35 @@ +# Copyright 2016 ZTE Corporation. +# +# 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 json +import os +import logging +import jsonschema +from lcm.pub.exceptions import NFLCMException + +logger = logging.getLogger(__name__) + + +def verify(new_vnfd): + errors_found = [] + vnfd_schema_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "vnf_vnfd_schema.json") + with open(vnfd_schema_path, "r") as fvnfd_schema: + vnfd_schema = json.load(fvnfd_schema) + vnfd_validator = jsonschema.validators.Draft4Validator(schema=vnfd_schema) + for error in vnfd_validator.iter_errors(new_vnfd): + logger.error("vnfd verify fail:%s" % error) + errors_found.append(error) + if len(errors_found) > 0: + raise NFLCMException(errors_found) + return errors_found |