MON changes for Grafana Multitenancy feature.
[osm/MON.git] / osm_mon / core / common_db.py
index 5fa27eb..e43c6cd 100644 (file)
@@ -58,9 +58,25 @@ class CommonDbClient:
         return vnfrs
 
     def get_vnfd(self, vnfd_id: str):
-        vnfr = self.common_db.get_one("vnfds",
+        vnfd = self.common_db.get_one("vnfds",
                                       {"_id": vnfd_id})
-        return vnfr
+        return vnfd
+
+    def get_vnfd_by_id(self, vnfd_id: str):
+        vnfd = self.common_db.get_one("vnfds",
+                                      {"id": vnfd_id})
+        return vnfd
+
+    def get_vnfd_by_name(self, vnfd_name: str):
+        # TODO: optimize way of getting single VNFD in shared enviroments (RBAC)
+        if self.common_db.get_list("vnfds", {"name": vnfd_name}):
+            vnfd = self.common_db.get_list("vnfds", {"name": vnfd_name})[0]
+            return vnfd
+        else:
+            return None
+
+    def get_nsrs(self):
+        return self.common_db.get_list('nsrs')
 
     def get_nsr(self, nsr_id: str):
         nsr = self.common_db.get_one("nsrs",
@@ -119,6 +135,12 @@ class CommonDbClient:
     def get_sdnc(self, sdnc_id: str):
         return self.common_db.get_one('sdns', {'_id': sdnc_id})
 
+    def get_projects(self):
+        return self.common_db.get_list('projects')
+
+    def get_project(self, project_id: str):
+        return self.common_db.get_one('projects', {'_id': project_id})
+
     def create_alarm(self, alarm: Alarm):
         return self.common_db.create('alarms', alarm.to_dict())
 
@@ -131,3 +153,12 @@ class CommonDbClient:
         for alarm_dict in alarm_dicts:
             alarms.append(Alarm.from_dict(alarm_dict))
         return alarms
+
+    def get_user(self, username: str):
+        return self.common_db.get_one('users', {'username': username})
+
+    def get_user_by_id(self, userid: str):
+        return self.common_db.get_one('users', {'_id': userid})
+
+    def get_role_by_name(self, name: str):
+        return self.common_db.get_one('roles', {'name': name})