X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fnbi.py;h=66105d6fa3a618d6b51c859e700bd1ff7a917896;hp=ac30a37937f9a36cd35c0645d6d90b766ea75f7e;hb=4836bacc5a3ef89cff93fd47240496baeb3c66ca;hpb=549dda6d610178e26da22b9f16a09f0f98a68585 diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py index ac30a37..66105d6 100644 --- a/osm_nbi/nbi.py +++ b/osm_nbi/nbi.py @@ -35,7 +35,7 @@ from osm_common.msgbase import MsgException from http import HTTPStatus from codecs import getreader from os import environ, path -from osm_nbi import version as nbi_version, version_date as nbi_version_date +from osm_nbi import version as _nbi_version, version_date as nbi_version_date __author__ = "Alfonso Tierno " @@ -46,6 +46,7 @@ database_version = '1.2' auth_database_version = '1.0' nbi_server = None # instance of Server class subscription_thread = None # instance of SubscriptionThread class +nbi_version = _nbi_version # by default this is fixed in the code """ @@ -482,8 +483,8 @@ class Server(object): def __init__(self): self.instance += 1 - self.engine = Engine() self.authenticator = Authenticator(valid_url_methods, valid_query_string) + self.engine = Engine(self.authenticator.tokens_cache) def _format_in(self, kwargs): try: @@ -715,6 +716,10 @@ class Server(object): @cherrypy.expose def test(self, *args, **kwargs): + if not cherrypy.config.get("server.enable_test") or (isinstance(cherrypy.config["server.enable_test"], str) and + cherrypy.config["server.enable_test"].lower() == "false"): + cherrypy.response.status = HTTPStatus.METHOD_NOT_ALLOWED.value + return "test URL is disabled" thread_info = None if args and args[0] == "help": return "
\ninit\nfile/  download file\ndb-clear/table\nfs-clear[/folder]\nlogin\nlogin2\n"\
@@ -1173,6 +1178,18 @@ class Server(object):
                             cherrypy.request.login += ";{}={}".format(logging_id, outdata[logging_id][:36])
 
 
+def _get_version():
+    """
+    Try to get version from package using pkg_resources (available with setuptools)
+    """
+    global nbi_version
+    try:
+        from pkg_resources import get_distribution
+        nbi_version = get_distribution("osm_nbi").version
+    except Exception:
+        pass
+
+
 def _start_service():
     """
     Callback function called when cherrypy.engine starts
@@ -1273,8 +1290,8 @@ def _start_service():
 
     # load and print version. Ignore possible errors, e.g. file not found
     try:
+        _get_version()
         backend = engine_config["authentication"]["backend"]
-        nbi_version
         cherrypy.log.error("Starting OSM NBI Version '{}' with '{}' authentication backend"
                            .format(nbi_version + " " + nbi_version_date, backend))
     except Exception: