Allow PUT method appart from PATCH for vim_accounts, sdns 76/6176/2
authortierno <alfonso.tiernosepulveda@telefonica.com>
Fri, 18 May 2018 12:36:02 +0000 (14:36 +0200)
committertierno <alfonso.tiernosepulveda@telefonica.com>
Fri, 18 May 2018 14:46:45 +0000 (16:46 +0200)
Change-Id: If77323db037af4fd3e7a609cf50b845140528ada
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
osm_nbi/engine.py
osm_nbi/html_public/version
osm_nbi/nbi.py
tox.ini

index 219becf..193ae6c 100644 (file)
@@ -368,6 +368,12 @@ class Engine(object):
                     indata["_admin"]["projects_read"] = [session["project_id"]]
                 if not indata["_admin"].get("projects_write"):
                     indata["_admin"]["projects_write"] = [session["project_id"]]
                     indata["_admin"]["projects_read"] = [session["project_id"]]
                 if not indata["_admin"].get("projects_write"):
                     indata["_admin"]["projects_write"] = [session["project_id"]]
+                if item == "nsds":
+                    # transform constituent-vnfd:member-vnf-index to string
+                    if indata.get("constituent-vnfd"):
+                        for constituent_vnfd in indata["constituent-vnfd"]:
+                            if "member-vnf-index" in constituent_vnfd:
+                                constituent_vnfd["member-vnf-index"] = str(constituent_vnfd["member-vnf-index"])
             if item in ("vnfds", "nsds"):
                 indata["_admin"]["onboardingState"] = "CREATED"
                 indata["_admin"]["operationalState"] = "DISABLED"
             if item in ("vnfds", "nsds"):
                 indata["_admin"]["onboardingState"] = "CREATED"
                 indata["_admin"]["operationalState"] = "DISABLED"
index adf5e41..16dfe9f 100644 (file)
@@ -1,3 +1,3 @@
-0.1.7
-2018-05-16
+0.1.8
+2018-05-18
 
 
index c2cb1af..a0229c8 100644 (file)
@@ -158,13 +158,13 @@ class Server(object):
                                  "<ID>": {"METHODS": ("GET", "DELETE")}
                                  },
                     "vims": {"METHODS": ("GET", "POST"),
                                  "<ID>": {"METHODS": ("GET", "DELETE")}
                                  },
                     "vims": {"METHODS": ("GET", "POST"),
-                             "<ID>": {"METHODS": ("GET", "DELETE")}
+                             "<ID>": {"METHODS": ("GET", "DELETE", "PATCH", "PUT")}
                              },
                     "vim_accounts": {"METHODS": ("GET", "POST"),
                              },
                     "vim_accounts": {"METHODS": ("GET", "POST"),
-                                     "<ID>": {"METHODS": ("GET", "DELETE", "PATCH")}
+                                     "<ID>": {"METHODS": ("GET", "DELETE", "PATCH", "PUT")}
                                      },
                     "sdns": {"METHODS": ("GET", "POST"),
                                      },
                     "sdns": {"METHODS": ("GET", "POST"),
-                             "<ID>": {"METHODS": ("GET", "DELETE", "PATCH")}
+                             "<ID>": {"METHODS": ("GET", "DELETE", "PATCH", "PUT")}
                              },
                 }
             },
                              },
                 }
             },
@@ -726,11 +726,11 @@ class Server(object):
                 if engine_item in ("vim_accounts", "sdns"):
                     cherrypy.response.status = HTTPStatus.ACCEPTED.value
 
                 if engine_item in ("vim_accounts", "sdns"):
                     cherrypy.response.status = HTTPStatus.ACCEPTED.value
 
-            elif method == "PUT":
+            elif method in ("PUT", "PATCH"):
                 if not indata and not kwargs:
                     raise NbiException("Nothing to update. Provide payload and/or query string",
                                        HTTPStatus.BAD_REQUEST)
                 if not indata and not kwargs:
                     raise NbiException("Nothing to update. Provide payload and/or query string",
                                        HTTPStatus.BAD_REQUEST)
-                if item2 in ("nsd_content", "package_content"):
+                if item2 in ("nsd_content", "package_content") and method == "PUT":
                     completed = self.engine.upload_content(session, engine_item, _id, indata, kwargs,
                                                            cherrypy.request.headers)
                     if not completed:
                     completed = self.engine.upload_content(session, engine_item, _id, indata, kwargs,
                                                            cherrypy.request.headers)
                     if not completed:
@@ -739,11 +739,6 @@ class Server(object):
                     outdata = None
                 else:
                     outdata = {"id": self.engine.edit_item(session, engine_item, _id, indata, kwargs, force=force)}
                     outdata = None
                 else:
                     outdata = {"id": self.engine.edit_item(session, engine_item, _id, indata, kwargs, force=force)}
-            elif method == "PATCH":
-                if not indata and not kwargs:
-                    raise NbiException("Nothing to update. Provide payload and/or query string",
-                                       HTTPStatus.BAD_REQUEST)
-                outdata = {"id": self.engine.edit_item(session, engine_item, _id, indata, kwargs, force=force)}
             else:
                 raise NbiException("Method {} not allowed".format(method), HTTPStatus.METHOD_NOT_ALLOWED)
             return self._format_out(outdata, session, _format)
             else:
                 raise NbiException("Method {} not allowed".format(method), HTTPStatus.METHOD_NOT_ALLOWED)
             return self._format_out(outdata, session, _format)
diff --git a/tox.ini b/tox.ini
index 0d0dce8..dd134c1 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -11,7 +11,7 @@ commands=nosetests
 basepython = python3
 deps = flake8
 commands =
 basepython = python3
 deps = flake8
 commands =
-    flake8 setup.py --max-line-length 120 --exclude .svn,CVS,.gz,.git,__pycache__,.tox,local,temp
+    flake8 setup.py --max-line-length 120 --exclude .svn,CVS,.gz,.git,__pycache__,.tox,local,temp --ignore W291,W293
 
 [testenv:build]
 basepython = python3
 
 [testenv:build]
 basepython = python3