update code of genericparser 47/88147/1
authoryangyan <yangyanyj@chinamobile.com>
Tue, 21 May 2019 08:38:42 +0000 (16:38 +0800)
committeryangyan <yangyanyj@chinamobile.com>
Tue, 21 May 2019 08:38:49 +0000 (16:38 +0800)
Change-Id: Ie8e9ee79ddf5f74d3b8ff4621698eb3651415b62
Issue-ID: VFC-1391
Signed-off-by: yangyan <yangyanyj@chinamobile.com>
docker/build_image.sh
genericparser/pub/utils/toscaparsers/basemodel.py
genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar
genericparser/pub/utils/toscaparsers/vnfdmodel.py
genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py
pom.xml
run.sh
stop.sh
version.properties

index e4538d0..597cbe1 100755 (executable)
@@ -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"
index a5c1f45..2b21456 100644 (file)
@@ -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
index 5e47b77..79e0d20 100644 (file)
Binary files a/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar and b/genericparser/pub/utils/toscaparsers/testdata/vnf/vcpesriov/vgw.csar differ
index 37a6472..95ae2c1 100644 (file)
@@ -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__)
 
index d2f1229..6ad26e8 100644 (file)
@@ -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 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.onap.modeling.genericparser</groupId>
     <artifactId>modeling-genericparser</artifactId>
-    <version>1.0.1-SNAPSHOT</version>
+    <version>1.0.2-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>modeling-genericparser</name>
     <description>modeling genericparser</description>
diff --git a/run.sh b/run.sh
index 7912bd9..caab259 100755 (executable)
--- 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 (executable)
--- 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
index cf49af7..8e8eb0b 100644 (file)
@@ -18,7 +18,7 @@
 
 major=1
 minor=0
-patch=1
+patch=2
 
 base_version=${major}.${minor}.${patch}