Add notify vnf req serializer
[vfc/nfvo/lcm.git] / lcm / ns / ns_get.py
index 030e42c..239c4eb 100644 (file)
@@ -25,98 +25,65 @@ class GetNSInfoService(object):
         self.ns_filter = nsfilter
 
     def get_ns_info(self):
-        if self.ns_filter:
-            if ("ns_inst_id" in self.ns_filter):
-                ns_inst_id = self.ns_filter["ns_inst_id"]
-                ns_inst_infos = NSInstModel.objects.filter(id=ns_inst_id)
-            if ("csarId" in self.ns_filter):
-                csar_id = self.ns_filter["csarId"]
-                ns_inst_infos = NSInstModel.objects.filter(nsd_id=csar_id)
+        ns_insts = None
+        if self.ns_filter and "ns_inst_id" in self.ns_filter:
+            ns_inst_id = self.ns_filter["ns_inst_id"]
+            ns_insts = NSInstModel.objects.filter(id=ns_inst_id)
         else:
-            ns_inst_infos = NSInstModel.objects.all()
+            ns_insts = NSInstModel.objects.all()
 
-        ns_info_list = []
-        for info in ns_inst_infos:
-            ret = self.get_single_ns_info(info.id)
-            if not ret:
-                continue
-            ns_info_list.append(ret)
-        return ns_info_list
+        return [self.get_single_ns_info(ns_inst) for ns_inst in ns_insts]
 
-    def get_single_ns_info(self, ns_inst_id):
-        ns_insts = NSInstModel.objects.filter(id=ns_inst_id)
-        if not ns_insts:
-            return None
-        ns_inst_info = ns_insts[0]
-        ret = {
-            'nsInstanceId': ns_inst_info.id,
-            'nsName': ns_inst_info.name,
-            'description': ns_inst_info.description,
-            'nsdId': ns_inst_info.nsd_id,
-            'vnfInfoId': self.get_vnf_infos(ns_inst_id),
-            'vlInfo': self.get_vl_infos(ns_inst_id),
-            'vnffgInfo': self.get_vnffg_infos(ns_inst_id, ns_inst_info.nsd_model),
-            'nsState': ns_inst_info.status}
-        return ret
+    def get_single_ns_info(self, ns_inst):
+        return {
+            'nsInstanceId': ns_inst.id,
+            'nsName': ns_inst.name,
+            'description': ns_inst.description,
+            'nsdId': ns_inst.nsd_id,
+            'vnfInfoId': self.get_vnf_infos(ns_inst.id),
+            'vlInfo': self.get_vl_infos(ns_inst.id),
+            'vnffgInfo': self.get_vnffg_infos(ns_inst.id, ns_inst.nsd_model),
+            'nsState': ns_inst.status}
 
     @staticmethod
     def get_vnf_infos(ns_inst_id):
-        ns_inst_infos = NfInstModel.objects.filter(ns_inst_id=ns_inst_id)
-        vnf_info_list = []
-        for info in ns_inst_infos:
-            vnf_info = {
-                'vnfInstanceId': info.nfinstid,
-                'vnfInstanceName': info.nf_name,
-                'vnfProfileId': info.vnf_id}
-            vnf_info_list.append(vnf_info)
-        return vnf_info_list
+        vnfs = NfInstModel.objects.filter(ns_inst_id=ns_inst_id)
+        return [{
+            'vnfInstanceId': vnf.nfinstid,
+            'vnfInstanceName': vnf.nf_name,
+            'vnfProfileId': vnf.vnf_id} for vnf in vnfs]
 
     def get_vl_infos(self, ns_inst_id):
-        vl_inst_infos = VLInstModel.objects.filter(ownertype=OWNER_TYPE.NS, ownerid=ns_inst_id)
-        vl_info_list = []
-        for info in vl_inst_infos:
-            vl_info = {
-                'vlInstanceId': info.vlinstanceid,
-                'vlInstanceName': info.vlinstancename,
-                'vldId': info.vldid,
-                'relatedCpInstanceId': self.get_cp_infos(info.vlinstanceid)}
-            vl_info_list.append(vl_info)
-        return vl_info_list
+        vls = VLInstModel.objects.filter(ownertype=OWNER_TYPE.NS, ownerid=ns_inst_id)
+        return [{
+            'vlInstanceId': vl.vlinstanceid,
+            'vlInstanceName': vl.vlinstancename,
+            'vldId': vl.vldid,
+            'relatedCpInstanceId': self.get_cp_infos(vl.vlinstanceid)} for vl in vls]
 
     @staticmethod
     def get_cp_infos(vl_inst_id):
-        cp_inst_infos = CPInstModel.objects.filter(relatedvl__icontains=vl_inst_id)
-        cp_info_list = []
-        for info in cp_inst_infos:
-            cp_info = {
-                'cpInstanceId': info.cpinstanceid,
-                'cpInstanceName': info.cpname,
-                'cpdId': info.cpdid}
-            cp_info_list.append(cp_info)
-        return cp_info_list
+        cps = CPInstModel.objects.filter(relatedvl__icontains=vl_inst_id)
+        return [{
+            'cpInstanceId': cp.cpinstanceid,
+            'cpInstanceName': cp.cpname,
+            'cpdId': cp.cpdid} for cp in cps]
 
     def get_vnffg_infos(self, ns_inst_id, nsd_model):
-        vnffg_inst_infos = VNFFGInstModel.objects.filter(nsinstid=ns_inst_id)
-        vnffg_info_list = []
-        for info in vnffg_inst_infos:
-            vnffg_info = {
-                'vnffgInstanceId': info.vnffginstid,
-                'vnfId': self.convert_string_to_list(info.vnflist),
-                'pnfId': self.get_pnf_infos(nsd_model),
-                'virtualLinkId': self.convert_string_to_list(info.vllist),
-                'cpId': self.convert_string_to_list(info.cplist),
-                'nfp': self.convert_string_to_list(info.fplist)}
-            vnffg_info_list.append(vnffg_info)
-        return vnffg_info_list
+        vnffgs = VNFFGInstModel.objects.filter(nsinstid=ns_inst_id)
+        return [{
+            'vnffgInstanceId': vnffg.vnffginstid,
+            'vnfId': self.convert_string_to_list(vnffg.vnflist),
+            'pnfId': self.get_pnf_infos(nsd_model),
+            'virtualLinkId': self.convert_string_to_list(vnffg.vllist),
+            'cpId': self.convert_string_to_list(vnffg.cplist),
+            'nfp': self.convert_string_to_list(vnffg.fplist)} for vnffg in vnffgs]
 
     @staticmethod
     def get_pnf_infos(nsd_model):
         context = json.loads(nsd_model)
         pnfs = context['pnfs']
-        pnf_list = []
-        for pnf in pnfs:
-            pnf_list.append(pnf['pnf_id'])
-        return pnf_list
+        return [pnf['pnf_id'] for pnf in pnfs]
 
     @staticmethod
     def convert_string_to_list(detail_id_string):