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 <alfonso.tiernosepulveda@telefonica.com>"
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
-
"""
North Bound Interface (O: OSM specific; 5,X: SOL005 not implemented yet; O5: SOL005 implemented)
def __init__(self):
self.instance += 1
self.authenticator = Authenticator(valid_url_methods, valid_query_string)
- self.engine = Engine(self.authenticator.tokens_cache)
+ self.engine = Engine(self.authenticator)
def _format_in(self, kwargs):
try:
# if Role information changes, it is needed to reload the information of roles
if topic == "roles" and method != "GET":
self.authenticator.load_operation_to_allowed_roles()
+
+ if topic == "projects" and method == "DELETE" \
+ or topic in ["users", "roles"] and method in ["PUT", "PATCH", "DELETE"]:
+ self.authenticator.remove_token_from_cache()
+
return self._format_out(outdata, token_info, _format)
except Exception as e:
if isinstance(e, (NbiException, EngineException, DbException, FsException, MsgException, AuthException,
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
subscription_thread.start()
# Do not capture except SubscriptionException
- # load and print version. Ignore possible errors, e.g. file not found
- try:
- _get_version()
- backend = engine_config["authentication"]["backend"]
- cherrypy.log.error("Starting OSM NBI Version '{}' with '{}' authentication backend"
- .format(nbi_version + " " + nbi_version_date, backend))
- except Exception:
- pass
+ backend = engine_config["authentication"]["backend"]
+ cherrypy.log.error("Starting OSM NBI Version '{} {}' with '{}' authentication backend"
+ .format(nbi_version, nbi_version_date, backend))
def _stop_service():