From: yangyan Date: Tue, 21 May 2019 08:38:42 +0000 (+0800) Subject: update code of genericparser X-Git-Tag: 1.0.2~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=modeling%2Fetsicatalog.git;a=commitdiff_plain;h=e7310fb508784f72f54fbad5762cec67b134241b update code of genericparser Change-Id: Ie8e9ee79ddf5f74d3b8ff4621698eb3651415b62 Issue-ID: VFC-1391 Signed-off-by: yangyan --- diff --git a/docker/build_image.sh b/docker/build_image.sh index e4538d0..597cbe1 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -6,7 +6,7 @@ cd ${DOCKER_BUILD_DIR} BUILD_ARGS="--no-cache" ORG="onap" -VERSION="1.0.1" +VERSION="1.0.2" PROJECT="modeling" IMAGE="genericparser" DOCKER_REPOSITORY="nexus3.onap.org:10003" diff --git a/genericparser/pub/utils/toscaparsers/basemodel.py b/genericparser/pub/utils/toscaparsers/basemodel.py index a5c1f45..2b21456 100644 --- a/genericparser/pub/utils/toscaparsers/basemodel.py +++ b/genericparser/pub/utils/toscaparsers/basemodel.py @@ -515,10 +515,23 @@ class BaseInfoModel(object): metadata = None substitution_mappings = tosca.tpl['topology_template'].get('substitution_mappings', None) if substitution_mappings: - node['type'] = substitution_mappings['node_type'] - node['properties'] = substitution_mappings.get('properties', {}) - node['requirements'] = substitution_mappings.get('requirements', {}) - node['capabilities'] = substitution_mappings.get('capabilities', {}) - metadata = substitution_mappings.get('metadata', {}) + nodeType = substitution_mappings['node_type'] + logger.debug("nodeType %s", nodeType) + if "node_types" in tosca.tpl: + node_types = tosca.tpl['node_types'].get(nodeType, None) + derivedFrom = node_types.get('derived_from', "") + node['type'] = derivedFrom + node['properties'] = node_types.get('properties', {}) + node['requirements'] = node_types.get('requirements', {}) + node['capabilities'] = node_types.get('capabilities', {}) + metadata = node_types.get('metadata', {}) + + if "type" not in node or node['type'] == "": + node['type'] = nodeType + node['properties'] = substitution_mappings.get('properties', {}) + node['requirements'] = substitution_mappings.get('requirements', {}) + node['capabilities'] = substitution_mappings.get('capabilities', {}) + metadata = substitution_mappings.get('metadata', {}) + node['metadata'] = metadata if metadata and metadata != {} else self.buildMetadata(tosca) return node diff --git a/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar b/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar index 5e47b77..79e0d20 100644 Binary files a/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar and b/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar differ diff --git a/genericparser/pub/utils/toscaparsers/vnfdmodel.py b/genericparser/pub/utils/toscaparsers/vnfdmodel.py index 37a6472..95ae2c1 100644 --- a/genericparser/pub/utils/toscaparsers/vnfdmodel.py +++ b/genericparser/pub/utils/toscaparsers/vnfdmodel.py @@ -17,7 +17,7 @@ import logging from genericparser.pub.config.config import VNFD_SCHEMA_VERSION_DEFAULT from genericparser.pub.utils.toscaparsers.basemodel import BaseInfoModel from genericparser.pub.utils.toscaparsers.vnfdparser import CreateVnfdSOLParser -# from genericparser.pub.exceptions import CatalogException + logger = logging.getLogger(__name__) diff --git a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py index d2f1229..6ad26e8 100644 --- a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py +++ b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py @@ -32,31 +32,52 @@ class VnfdSOL251(): vnf = self.model.get_substitution_mappings(tosca) properties = vnf.get("properties", {}) metadata = vnf.get("metadata", {}) - if properties.get("descriptor_id", "") == "": - descriptor_id = metadata.get("descriptor_id", "") - if descriptor_id == "": - descriptor_id = metadata.get("id", "") - if descriptor_id == "": - descriptor_id = metadata.get("UUID", "") - properties["descriptor_id"] = descriptor_id - - if properties.get("descriptor_version", "") == "": - version = metadata.get("template_version", "") - if version == "": - version = metadata.get("version", "") - properties["descriptor_version"] = version - - if properties.get("provider", "") == "": - provider = metadata.get("template_author", "") - if provider == "": - provider = metadata.get("provider", "") - properties["provider"] = provider - - if properties.get("template_name", "") == "": - template_name = metadata.get("template_name", "") - if template_name == "": - template_name = metadata.get("template_name", "") - properties["template_name"] = template_name + + for key, value in properties.items(): + if isinstance(value, dict): + if value["type"] == "string": + properties[key] = value.get("default", "") + elif value["type"] == "list": + properties[key] = value.get("default", {}) + else: + properties[key] = value.get("default", "") + ptype = "descriptor_id" + meta_types = ["descriptor_id", "id", "UUID"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "descriptor_version" + meta_types = ["template_version", "version"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "provider" + meta_types = ["template_author", "provider"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "template_name" + meta_types = ["template_name"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "software_version" + meta_types = ["software_version"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "product_name" + meta_types = ["product_name"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "flavour_description" + meta_types = ["flavour_description"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "vnfm_info" + meta_types = ["vnfm_info"] + self._get_property(properties, metadata, ptype, meta_types) + + ptype = "flavour_id" + meta_types = ["flavour_id"] + self._get_property(properties, metadata, ptype, meta_types) + + logger.debug("vnf:%s", vnf) return vnf @@ -148,6 +169,13 @@ class VnfdSOL251(): return {"external_cps": external_cps, "forward_cps": forward_cps} return {} + def _get_property(self, properties, metadata, ptype, meta_types): + if ptype not in properties or properties[ptype] == "": + for mtype in meta_types: + data = metadata.get(mtype, "") + if data != "": + properties[ptype] = data + def _trans_virtual_storage(self, virtual_storage): if isinstance(virtual_storage, str): return {"virtual_storage_id": virtual_storage} diff --git a/pom.xml b/pom.xml index 6330533..d146c5c 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 4.0.0 org.onap.modeling.genericparser modeling-genericparser - 1.0.1-SNAPSHOT + 1.0.2-SNAPSHOT pom modeling-genericparser modeling genericparser diff --git a/run.sh b/run.sh index 7912bd9..caab259 100755 --- a/run.sh +++ b/run.sh @@ -15,7 +15,7 @@ logDir="/var/log/onap/modeling/genericparser/" if [ ! -x $logDir ]; then - mkdir -p $logDir + mkdir -p $logDir fi # nohup python manage.py runserver 0.0.0.0:8806 > /dev/null & @@ -27,10 +27,3 @@ if [ "${SSL_ENABLED}" = "true" ]; then else nohup uwsgi --http :8806 -t 120 --module genericparser.wsgi --master --processes 4 & fi - - -while [ ! -f $logDir/runtime_genericparser.log ]; do - sleep 1 -done - -tail -F $logDir/runtime_genericparser.log \ No newline at end of file diff --git a/stop.sh b/stop.sh index e533560..f939ce5 100755 --- a/stop.sh +++ b/stop.sh @@ -13,5 +13,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -# ps auxww | grep "manage.py runserver 0.0.0.0:8806" | awk '{print $2}' | xargs kill -9 +# ps auxww | grep "manage.py runserver 0.0.0.0:8806" | awk '{print $1}' | xargs kill -9 ps auxww |grep 'uwsgi --http' |awk '{print $1}' |xargs kill -9 diff --git a/version.properties b/version.properties index cf49af7..8e8eb0b 100644 --- a/version.properties +++ b/version.properties @@ -18,7 +18,7 @@ major=1 minor=0 -patch=1 +patch=2 base_version=${major}.${minor}.${patch}