import json
import logging
import traceback
+import os
from rest_framework.decorators import api_view
from rest_framework.response import Response
from driver.pub.utils import restcall
from driver.pub.utils.restcall import req_by_msb, call_aai
+from driver.pub.config.config import VNF_FTP
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]
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"] = VNF_FTP + "SPGW"
+ inputs = load_json_file("SPGW" + "_inputs.json")
+ elif "MME" in vnfd_name.upper():
+ data["VNFD"] = VNF_FTP + "MME"
+ inputs = load_json_file("MME" + "_inputs.json")
else:
data["VNFD"] = ignorcase_get(packageInfo, "downloadUri")
- data["VNFURL"] = ignorcase_get(packageInfo, "downloadUri")
+
+ data["VNFURL"] = data["VNFD"]
data["extension"] = {}
- inputs = []
for name, value in ignorcase_get(ignorcase_get(request.data, "additionalParam"), "inputs").items():
inputs.append({"name": name, "value": value})
data["affectedVirtualStorage"] = []
data["affectedCp"] = []
- affectedvnfcs = ignorcase_get(ignorcase_get(request.data, "extension"), "affectedvnfc")
+ extension = ignorcase_get(request.data, "extension")
+ openo_notification = ignorcase_get(extension, "openo_notification")
+ if openo_notification:
+ affectedvnfcs = ignorcase_get(openo_notification, "affectedVnfc")
+ else:
+ affectedvnfcs = ignorcase_get(ignorcase_get(request.data, "extension"), "affectedvnfc")
+
affectedvls = ignorcase_get(ignorcase_get(request.data, "extension"), "affectedvl")
affectedcps = ignorcase_get(ignorcase_get(request.data, "extension"), "affectedcp")
vnfdmodule = ignorcase_get(ignorcase_get(request.data, "extension"), "vnfdmodule")
for affectedvnfc in affectedvnfcs:
data["affectedVnfc"].append({
- "vnfcInstanceId": ignorcase_get(affectedvnfc, "vnfcinstanceid"),
+ "vnfcInstanceId": ignorcase_get(affectedvnfc, "vnfcInstanceId"),
"vduId": ignorcase_get(affectedvnfc, "vduId"),
"changeType": ignorcase_get(affectedvnfc, "changeType"),
- "vimid": ignorcase_get(ignorcase_get(affectedvnfc, "computeresource"), "vimid"),
- "vmId": ignorcase_get(ignorcase_get(affectedvnfc, "computeresource"), "resourceid"),
- "vmName": ignorcase_get(ignorcase_get(affectedvnfc, "computeresource"), "resourcename")
+ "vimid": ignorcase_get(ignorcase_get(affectedvnfc, "computeResource"), "vimId"),
+ "vmId": ignorcase_get(ignorcase_get(affectedvnfc, "computeResource"), "resourceId"),
+ "vmName": ignorcase_get(ignorcase_get(affectedvnfc, "computeResource"), "resourceName")
})
for affectedvl in affectedvls:
return Response(data={'error': ret[1]}, status=ret[2])
except Exception as e:
logger.error("Error occurred in LCM notification.")
+ logger.error(traceback.format_exc())
raise e
return Response(data=None, status=ret[2])