X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fnbi.py;h=1085ebc6e1fefa51e2dde66d35a1517df8385a15;hp=1b3a6ce707cc507f40f57301e2538a5ef71b56dd;hb=9c63011a8f3ff8f42ad90359323606b9aa9f2e7a;hpb=a50357015c2cc8b3392dd8313cd592b38775bb9f diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py index 1b3a6ce..1085ebc 100644 --- a/osm_nbi/nbi.py +++ b/osm_nbi/nbi.py @@ -18,28 +18,30 @@ import cherrypy import time import json import yaml -import html_out as html +import osm_nbi.html_out as html import logging import logging.handlers import getopt import sys -from authconn import AuthException -from auth import Authenticator -from engine import Engine, EngineException -from subscriptions import SubscriptionThread -from validation import ValidationError +from osm_nbi.authconn import AuthException, AuthconnException +from osm_nbi.auth import Authenticator +from osm_nbi.engine import Engine, EngineException +from osm_nbi.subscriptions import SubscriptionThread +from osm_nbi.validation import ValidationError from osm_common.dbbase import DbException from osm_common.fsbase import FsException 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 __author__ = "Alfonso Tierno " -__version__ = "0.1.3" -version_date = "Jan 2019" +__version__ = "0.1.3" # file version, not NBI version +version_date = "Aug 2019" + database_version = '1.2' auth_database_version = '1.0' nbi_server = None # instance of Server class @@ -598,7 +600,7 @@ class Server(object): try: if cherrypy.request.method == "GET": token_info = self.authenticator.authorize() - outdata = "Index page" + outdata = token_info # Home page else: raise cherrypy.HTTPError(HTTPStatus.METHOD_NOT_ALLOWED.value, "Method {} not allowed for tokens".format(cherrypy.request.method)) @@ -613,13 +615,13 @@ class Server(object): @cherrypy.expose def version(self, *args, **kwargs): # TODO consider to remove and provide version using the static version file - global __version__, version_date try: if cherrypy.request.method != "GET": raise NbiException("Only method GET is allowed", HTTPStatus.METHOD_NOT_ALLOWED) elif args or kwargs: raise NbiException("Invalid URL or query string for version", HTTPStatus.METHOD_NOT_ALLOWED) - return __version__ + " " + version_date + # TODO include version of other modules, pick up from some kafka admin message + return "
NBI:\n    version: {}\n    date: {}\n".format(nbi_version, nbi_version_date)
         except NbiException as e:
             cherrypy.response.status = e.http_code.value
             problem_details = {
@@ -1110,7 +1112,7 @@ class Server(object):
             return self._format_out(outdata, token_info, _format)
         except Exception as e:
             if isinstance(e, (NbiException, EngineException, DbException, FsException, MsgException, AuthException,
-                              ValidationError)):
+                              ValidationError, AuthconnException)):
                 http_code_value = cherrypy.response.status = e.http_code.value
                 http_code_name = e.http_code.name
                 cherrypy.log("Exception {}".format(e))
@@ -1253,9 +1255,10 @@ def _start_service():
 
     # load and print version. Ignore possible errors, e.g. file not found
     try:
-        with open("{}/version".format(engine_config["/static"]['tools.staticdir.dir'])) as version_file:
-            version_data = version_file.read()
-            cherrypy.log.error("Starting OSM NBI Version: {}".format(version_data.replace("\n", " ")))
+        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:
         pass