fix 500 provide vnfr:vnfd-id with vnfd:_id
[osm/NBI.git] / osm_nbi / engine.py
index ed35c7c..12311d1 100644 (file)
@@ -603,7 +603,7 @@ class Engine(object):
                     "created-time": now,
                     # "vnfd": vnfd,        # at OSM model.but removed to avoid data duplication TODO: revise
                     "vnfd-ref": vnfd_id,
-                    "vnfd-id": vnfr_id,    # not at OSM model, but useful
+                    "vnfd-id": vnfd["_id"],    # not at OSM model, but useful
                     "vim-account-id": None,
                     "vdur": [],
                     "connection-point": [],
@@ -857,8 +857,8 @@ class Engine(object):
                 return folder_content, "text/plain"
                 # TODO manage folders in http
             else:
-                return self.fs.file_open((storage['folder'], storage['pkg-dir'], *path), "rb"), \
-                       "application/octet-stream"
+                return self.fs.file_open((storage['folder'], storage['pkg-dir'], *path), "rb"),\
+                    "application/octet-stream"
 
         # pkgtype   accept  ZIP  TEXT    -> result
         # manyfiles         yes  X       -> zip
@@ -949,10 +949,8 @@ class Engine(object):
             self.db.del_list("vnfrs", {"nsr-id-ref": _id})
             self.msg.write("ns", "deleted", {"_id": _id})
             return v
-        if item in ("vim_accounts", "sdns"):
-            desc = self.db.get_one(item, filter)
-            desc["_admin"]["to_delete"] = True
-            self.db.replace(item, _id, desc)   # TODO change to set_one
+        if item in ("vim_accounts", "sdns") and not force:
+            self.db.set_one(item, {"_id": _id}, {"_admin.to_delete": True})   # TODO change status
             if item == "vim_accounts":
                 self.msg.write("vim_account", "delete", {"_id": _id})
             elif item == "sdns":
@@ -960,7 +958,10 @@ class Engine(object):
             return {"deleted": 1}  # TODO indicate an offline operation to return 202 ACCEPTED
 
         v = self.db.del_one(item, filter)
-        self.fs.file_delete(_id, ignore_non_exist=True)
+        if item in ("vnfds", "nsds"):
+            self.fs.file_delete(_id, ignore_non_exist=True)
+        if item in ("vim_accounts", "sdns", "vnfds", "nsds"):
+            self.msg.write(item[:-1], "deleted", {"_id": _id})
         return v
 
     def prune(self):