Revert "Revert "Feature 10915: SOL003 STD Support for OSM""
[osm/NBI.git] / osm_nbi / nbi.py
index 29fcacd..ff2f6de 100644 (file)
@@ -482,6 +482,31 @@ valid_url_methods = {
             },
         }
     },
+    "vnflcm": {
+        "v1": {
+            "vnf_instances": {"METHODS": ("GET", "POST"),
+                              "ROLE_PERMISSION": "vnflcm_instances:",
+                              "<ID>": {"METHODS": ("GET", "DELETE"),
+                                       "ROLE_PERMISSION": "vnflcm_instances:id:",
+                                       "scale": {"METHODS": ("POST",),
+                                                 "ROLE_PERMISSION": "vnflcm_instances:id:scale:"
+                                                },
+                                       "terminate": {"METHODS": ("POST",),
+                                                     "ROLE_PERMISSION": "vnflcm_instances:id:terminate:"
+                                                    },
+                                       "instantiate": {"METHODS": ("POST",),
+                                                       "ROLE_PERMISSION": "vnflcm_instances:id:instantiate:"
+                                                      },
+                                       }
+                            },
+            "vnf_lcm_op_occs": {"METHODS": ("GET",),
+                               "ROLE_PERMISSION": "vnf_instances:opps:",
+                               "<ID>": {"METHODS": ("GET",),
+                                        "ROLE_PERMISSION": "vnf_instances:opps:id:"
+                                        },
+                               },
+        }
+    },
     "nst": {
         "v1": {
             "netslice_templates_content": {
@@ -1298,6 +1323,7 @@ class Server(object):
                 "nst",
                 "nsilcm",
                 "nspm",
+                "vnflcm",
             ):
                 raise NbiException(
                     "URL main_topic '{}' not supported".format(main_topic),
@@ -1352,6 +1378,9 @@ class Server(object):
                     engine_topic = "nslcmops"
                 if topic == "vnfrs" or topic == "vnf_instances":
                     engine_topic = "vnfrs"
+            elif main_topic == "vnflcm":
+                if topic == "vnf_lcm_op_occs":
+                    engine_topic = "vnflcmops"
             elif main_topic == "nst":
                 engine_topic = "nsts"
             elif main_topic == "nsilcm":
@@ -1509,6 +1538,13 @@ class Server(object):
                         "_links": link,
                     }
                     cherrypy.response.status = HTTPStatus.CREATED.value
+                elif topic == "vnf_instances" and item:
+                    indata["lcmOperationType"] = item
+                    indata["vnfInstanceId"] = _id
+                    _id, _ = self.engine.new_item(rollback, engine_session, "vnflcmops", indata, kwargs)
+                    self._set_location_header(main_topic, version, "vnf_lcm_op_occs", _id)
+                    outdata = {"id": _id}
+                    cherrypy.response.status = HTTPStatus.ACCEPTED.value
                 else:
                     _id, op_id = self.engine.new_item(
                         rollback,