Changes vnf_member_index to a string
[osm/POL.git] / osm_policy_module / common / common_db_client.py
index 2be3693..accbbfc 100644 (file)
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: bdiaz@whitestack.com or glavado@whitestack.com
 ##
-from osm_common import dbmongo
+from osm_common import dbmongo, dbmemory
 
 from osm_policy_module.core.config import Config
 from osm_policy_module.core.exceptions import VdurNotFound
 
 
 class CommonDbClient:
-    def __init__(self):
-        cfg = Config.instance()
-        self.common_db = dbmongo.DbMongo()
-        self.common_db.db_connect({'uri': cfg.OSMPOL_DATABASE_URI,
-                                   'name': 'osm'})
+    def __init__(self, config: Config):
+        if config.get('database', 'driver') == "mongo":
+            self.common_db = dbmongo.DbMongo()
+        elif config.get('database', 'driver') == "memory":
+            self.common_db = dbmemory.DbMemory()
+        else:
+            raise Exception("Unknown database driver {}".format(config.get('section', 'driver')))
+        self.common_db.db_connect(config.get("database"))
 
-    def get_vnfr(self, nsr_id: str, member_index: int):
+    def get_vnfr(self, nsr_id: str, member_index: str):
         vnfr = self.common_db.get_one("vnfrs",
-                                      {"nsr-id-ref": nsr_id, "member-vnf-index-ref": str(member_index)})
+                                      {"nsr-id-ref": nsr_id, "member-vnf-index-ref": member_index})
         return vnfr
 
     def get_vnfrs(self, nsr_id: str):
@@ -65,3 +68,6 @@ class CommonDbClient:
                 return vdur
         raise VdurNotFound('vdur not found for nsr-id %s, member_index %s and vdur_name %s', nsr_id, member_index,
                            vdur_name)
+
+    def create_nslcmop(self, nslcmop):
+        self.common_db.create("nslcmops", nslcmop)