Add input parameters of zte vnf
[vfc/nfvo/driver/vnfm/svnfm.git] / zte / vmanager / driver / interfaces / views.py
index dd07d79..93b8d92 100644 (file)
@@ -16,6 +16,7 @@ import inspect
 import json
 import logging
 import traceback
+import os
 
 from rest_framework.decorators import api_view
 from rest_framework.response import Response
@@ -26,6 +27,14 @@ from driver.pub.utils.restcall import req_by_msb, call_aai
 logger = logging.getLogger(__name__)
 
 
+def load_json_file(file_name):
+    json_file = os.path.join(os.path.dirname(__file__), "data/" + file_name)
+    f = open(json_file)
+    json_data = json.JSONDecoder().decode(f.read())
+    f.close()
+    return json_data
+
+
 def fun_name():
     return "=================%s==================" % inspect.stack()[1][3]
 
@@ -125,20 +134,28 @@ def instantiate_vnf(request, *args, **kwargs):
         data = {}
         data["NFVOID"] = 1
         data["VNFMID"] = vnfm_id
-        vnfdId = ignorcase_get(packageInfo, "vnfdId")
+        # vnfdId = ignorcase_get(packageInfo, "vnfdId")
+        vnfdModel = json.loads(ignorcase_get(packageInfo, "vnfdModel"))
+        metadata = ignorcase_get(vnfdModel, "metadata")
+        vnfd_name = ignorcase_get(metadata, "name")
         # TODO  convert sdc vnf package to vnf vender package
         from urlparse import urlparse
         vnfm_ip = urlparse(ignorcase_get(vnfm_info, "url")).netloc.split(':')[0]
-        VNFS = ["SPGW", "MME"]
-        if vnfdId in VNFS:
-            data["VNFD"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + vnfdId
-            data["VNFURL"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + vnfdId
+
+        inputs = []
+        if "SPGW" in vnfd_name.upper():
+            data["VNFD"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + "SPGW"
+            data["VNFURL"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + "SPGW"
+            inputs = load_json_file("SPGW" + "_inputs.json")
+        elif "MME" in vnfd_name.upper():
+            data["VNFD"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + "MME"
+            data["VNFURL"] = "ftp://VMVNFM:Vnfm_1g3T@" + vnfm_ip + ":21/" + "MME"
+            inputs = load_json_file("MME" + "_inputs.json")
         else:
             data["VNFD"] = ignorcase_get(packageInfo, "downloadUri")
             data["VNFURL"] = ignorcase_get(packageInfo, "downloadUri")
 
         data["extension"] = {}
-        inputs = []
         for name, value in ignorcase_get(ignorcase_get(request.data, "additionalParam"), "inputs").items():
             inputs.append({"name": name, "value": value})