X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Flcm.py;h=6c8be98c72d04b95816e0e390c03bfeb643d9310;hb=46ab4d81a86c6ff149c700ba0f07a9c722a33e29;hp=73bd7b45cc49368c9232459b8faaa281989dccff;hpb=2357f4e54515ce965fcc5723d274c12ec12c01c7;p=osm%2FLCM.git diff --git a/osm_lcm/lcm.py b/osm_lcm/lcm.py index 73bd7b4..6c8be98 100644 --- a/osm_lcm/lcm.py +++ b/osm_lcm/lcm.py @@ -37,14 +37,17 @@ from time import time from osm_lcm.lcm_utils import versiontuple, LcmException, TaskRegistry, LcmExceptionExit from osm_lcm import version as lcm_version, version_date as lcm_version_date -from osm_common import dbmemory, dbmongo, fslocal, fsmongo, msglocal, msgkafka +from osm_common import msglocal, msgkafka from osm_common import version as common_version from osm_common.dbbase import DbException from osm_common.fsbase import FsException from osm_common.msgbase import MsgException +from osm_lcm.data_utils.database.database import Database +from osm_lcm.data_utils.filesystem.filesystem import Filesystem from os import environ, path from random import choice as random_choice from n2vc import version as n2vc_version +import traceback if os.getenv('OSMLCM_PDB_DEBUG', None) is not None: pdb.set_trace() @@ -147,26 +150,9 @@ class Lcm: common_version, min_common_version)) try: - # TODO check database version - if config["database"]["driver"] == "mongo": - self.db = dbmongo.DbMongo() - self.db.db_connect(config["database"]) - elif config["database"]["driver"] == "memory": - self.db = dbmemory.DbMemory() - self.db.db_connect(config["database"]) - else: - raise LcmException("Invalid configuration param '{}' at '[database]':'driver'".format( - config["database"]["driver"])) - - if config["storage"]["driver"] == "local": - self.fs = fslocal.FsLocal() - self.fs.fs_connect(config["storage"]) - elif config["storage"]["driver"] == "mongo": - self.fs = fsmongo.FsMongo() - self.fs.fs_connect(config["storage"]) - else: - raise LcmException("Invalid configuration param '{}' at '[storage]':'driver'".format( - config["storage"]["driver"])) + self.db = Database(config).instance.db + + self.fs = Filesystem(config).instance.fs # copy message configuration in order to remove 'group_id' for msg_admin config_message = config["message"].copy() @@ -191,11 +177,11 @@ class Lcm: raise LcmException(str(e)) # contains created tasks/futures to be able to cancel - self.lcm_tasks = TaskRegistry(self.worker_id, self.db, self.logger) + self.lcm_tasks = TaskRegistry(self.worker_id, self.logger) if self.config.get("tsdb") and self.config["tsdb"].get("driver"): if self.config["tsdb"]["driver"] == "prometheus": - self.prometheus = prometheus.Prometheus(self.config["tsdb"], self.worker_id, self.db, self.loop) + self.prometheus = prometheus.Prometheus(self.config["tsdb"], self.worker_id, self.loop) else: raise LcmException("Invalid configuration param '{}' at '[tsdb]':'driver'".format( config["tsdb"]["driver"])) @@ -228,6 +214,7 @@ class Lcm: except (ROClientException, NgRoException) as e: self.config["ro_config"]["uri"] = ro_uri tries -= 1 + traceback.print_tb(e.__traceback__) error_text = "Error while connecting to RO on {}: {}".format(self.config["ro_config"]["uri"], e) if tries <= 0: self.logger.critical(error_text) @@ -521,14 +508,14 @@ class Lcm: # check RO version self.loop.run_until_complete(self.check_RO_version()) - self.ns = ns.NsLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop, self.prometheus) - self.netslice = netslice.NetsliceLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop, + self.ns = ns.NsLcm(self.msg, self.lcm_tasks, self.config, self.loop, self.prometheus) + self.netslice = netslice.NetsliceLcm(self.msg, self.lcm_tasks, self.config, self.loop, self.ns) - self.vim = vim_sdn.VimLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop) - self.wim = vim_sdn.WimLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop) - self.sdn = vim_sdn.SdnLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop) - self.k8scluster = vim_sdn.K8sClusterLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop) - self.k8srepo = vim_sdn.K8sRepoLcm(self.db, self.msg, self.fs, self.lcm_tasks, self.config, self.loop) + self.vim = vim_sdn.VimLcm(self.msg, self.lcm_tasks, self.config, self.loop) + self.wim = vim_sdn.WimLcm(self.msg, self.lcm_tasks, self.config, self.loop) + self.sdn = vim_sdn.SdnLcm(self.msg, self.lcm_tasks, self.config, self.loop) + self.k8scluster = vim_sdn.K8sClusterLcm(self.msg, self.lcm_tasks, self.config, self.loop) + self.k8srepo = vim_sdn.K8sRepoLcm(self.msg, self.lcm_tasks, self.config, self.loop) # configure tsdb prometheus if self.prometheus: