X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fnbi.py;h=ecd6a5ad30bb9c008fb5de85b92eb8b3c10c427c;hp=6c63ad8c82ffac55447a340f77395d0ef89fe4c8;hb=61e0c52d4715b5726a369959d69a1305d6790ae2;hpb=74b5358852f075371c51919a0ec2c9f57e1143b5 diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py index 6c63ad8..ecd6a5a 100644 --- a/osm_nbi/nbi.py +++ b/osm_nbi/nbi.py @@ -617,20 +617,14 @@ class Server(object): # TODO check that cherrypy close file. If not implement pending things to close per thread next return data if accept: - if "application/json" in accept: - cherrypy.response.headers["Content-Type"] = 'application/json; charset=utf-8' - a = json.dumps(data, indent=4) + "\n" - return a.encode("utf8") - elif "text/html" in accept: + if "text/html" in accept: return html.format(data, cherrypy.request, cherrypy.response, token_info) - - elif "application/yaml" in accept or "*/*" in accept or "text/plain" in accept: + elif "application/yaml" in accept or "*/*" in accept: pass - # if there is not any valid accept, raise an error. But if response is already an error, format in yaml - elif cherrypy.response.status >= 400: - raise cherrypy.HTTPError(HTTPStatus.NOT_ACCEPTABLE.value, - "Only 'Accept' of type 'application/json' or 'application/yaml' " - "for output format are available") + elif "application/json" in accept or (cherrypy.response.status and cherrypy.response.status >= 300): + cherrypy.response.headers["Content-Type"] = 'application/json; charset=utf-8' + a = json.dumps(data, indent=4) + "\n" + return a.encode("utf8") cherrypy.response.headers["Content-Type"] = 'application/yaml' return yaml.safe_dump(data, explicit_start=True, indent=4, default_flow_style=False, tags=False, encoding='utf-8', allow_unicode=True) # , canonical=True, default_style='"' @@ -1060,12 +1054,12 @@ class Server(object): cherrypy.request.headers.get("Accept")) outdata = file elif not _id: - outdata = self.engine.get_item_list(engine_session, engine_topic, kwargs) + outdata = self.engine.get_item_list(engine_session, engine_topic, kwargs, api_req=True) else: if item == "reports": # TODO check that project_id (_id in this context) has permissions _id = args[0] - outdata = self.engine.get_item(engine_session, engine_topic, _id) + outdata = self.engine.get_item(engine_session, engine_topic, _id, True) elif method == "POST": cherrypy.response.status = HTTPStatus.CREATED.value