X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fnbi.py;h=06b39f3049a676301ab07d4b0ba5f2fd63b2dde2;hp=66105d6fa3a618d6b51c859e700bd1ff7a917896;hb=f318b3045ae5e005f6241ec170ea943c92cc67d6;hpb=4836bacc5a3ef89cff93fd47240496baeb3c66ca diff --git a/osm_nbi/nbi.py b/osm_nbi/nbi.py index 66105d6..06b39f3 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,8 +46,6 @@ 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 - """ North Bound Interface (O: OSM specific; 5,X: SOL005 not implemented yet; O5: SOL005 implemented) @@ -484,7 +482,7 @@ class Server(object): 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: @@ -1132,6 +1130,11 @@ class Server(object): # 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, @@ -1178,18 +1181,6 @@ 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 @@ -1288,14 +1279,9 @@ def _start_service(): 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():