Add parser convert vnfd vl and cp
[vfc/nfvo/lcm.git] / lcm / ns / ns_instant.py
index 4a64c09..d16ea52 100644 (file)
@@ -21,9 +21,9 @@ import uuid
 from rest_framework import status
 
 from lcm.pub.database.models import DefPkgMappingModel, ServiceBaseInfoModel, InputParamMappingModel
-from lcm.pub.database.models import NSInstModel, NfPackageModel, VNFFGInstModel, WFPlanModel
-from lcm.pub.msapi.catalog import get_process_id, get_download_url_from_catalog
-from lcm.pub.msapi.catalog import query_rawdata_from_catalog, get_servicetemplate_id, get_servicetemplate
+from lcm.pub.database.models import NSInstModel, NfPackageModel, VNFFGInstModel, WFPlanModel, NSDModel
+from lcm.pub.msapi.catalog import get_process_id, query_rawdata_from_catalog
+from lcm.pub.msapi.catalog import get_servicetemplate_id, get_servicetemplate
 from lcm.pub.msapi.wso2bpel import workflow_run
 from lcm.pub.msapi.extsys import select_vnfm
 from lcm.pub.utils.jobutil import JobUtil
@@ -33,6 +33,7 @@ from lcm.pub.exceptions import NSLCMException
 from lcm.pub.config.config import WORKFLOW_OPTION
 from lcm.workflows import build_in
 from lcm.pub.msapi import activiti
+from lcm.pub.utils import toscaparser
 
 logger = logging.getLogger(__name__)
 
@@ -61,9 +62,15 @@ class InstantNSService(object):
                 location_constraints = self.req_data['locationConstraints']
             
             JobUtil.add_job_status(job_id, 5, 'Start query nsd(%s)' % ns_inst.nspackage_id)
-            src_plan = query_rawdata_from_catalog(ns_inst.nspackage_id, input_parameters)
-            dst_plan = toscautil.convert_nsd_model(src_plan["rawData"])
+            dst_plan = None
+            if WORKFLOW_OPTION == "wso2":
+                src_plan = query_rawdata_from_catalog(ns_inst.nspackage_id, input_parameters)
+                dst_plan = toscautil.convert_nsd_model(src_plan["rawData"])
+            else:
+                nsd_pkg = NSDModel.objects.get(id=ns_inst.nspackage_id)
+                dst_plan = toscaparser.parse_nsd(nsd_pkg.nsd_path, input_parameters)
             logger.debug('tosca plan dest:%s' % dst_plan)
+
             NSInstModel.objects.filter(id=self.ns_inst_id).update(nsd_model=dst_plan)
 
             params_json = json.JSONEncoder().encode(self.req_data["additionalParamForNs"])
@@ -112,11 +119,15 @@ class InstantNSService(object):
                                  creator='--',
                                  create_time=int(time.time()*1000)).save()
 
-            service_tpl = get_servicetemplate(ns_inst.nsd_id)
-            DefPkgMappingModel(service_id=self.ns_inst_id,
-                               service_def_id=service_tpl['csarId'],
-                               template_name=service_tpl['templateName'],
-                               template_id=service_tpl['serviceTemplateId']).save()
+            if WORKFLOW_OPTION == "wso2":
+                service_tpl = get_servicetemplate(ns_inst.nsd_id)
+                DefPkgMappingModel(service_id=self.ns_inst_id,
+                                   service_def_id=service_tpl['csarId'],
+                                   template_name=service_tpl['templateName'],
+                                   template_id=service_tpl['serviceTemplateId']).save()
+            else:
+                # TODO:
+                pass
 
             for key, val in self.req_data['additionalParamForNs'].items():
                 InputParamMappingModel(service_id=self.ns_inst_id,