Bug 1830 fixed: maps completed operations to original operation types
[osm/NBI.git] / osm_nbi / admin_topics.py
index 0006917..de0ad1f 100644 (file)
@@ -345,7 +345,6 @@ class CommonVimWimSdn(BaseTopic):
                 schema_version
             ) or self.config_to_encrypt.get("default")
             if edit_content.get("config") and config_to_encrypt_keys:
-
                 for p in config_to_encrypt_keys:
                     if edit_content["config"].get(p):
                         final_content["config"][p] = self.db.encrypt(
@@ -395,6 +394,29 @@ class CommonVimWimSdn(BaseTopic):
         # create operation
         content["_admin"]["operations"] = [self._create_operation("create")]
         content["_admin"]["current_operation"] = None
+        # create Resource in Openstack based VIM
+        if content.get("vim_type"):
+            if content["vim_type"] == "openstack":
+                compute = {
+                    "ram": {"total": None, "used": None},
+                    "vcpus": {"total": None, "used": None},
+                    "instances": {"total": None, "used": None},
+                }
+                storage = {
+                    "volumes": {"total": None, "used": None},
+                    "snapshots": {"total": None, "used": None},
+                    "storage": {"total": None, "used": None},
+                }
+                network = {
+                    "networks": {"total": None, "used": None},
+                    "subnets": {"total": None, "used": None},
+                    "floating_ips": {"total": None, "used": None},
+                }
+                content["resources"] = {
+                    "compute": compute,
+                    "storage": storage,
+                    "network": network,
+                }
 
         return "{}:0".format(content["_id"])
 
@@ -418,7 +440,7 @@ class CommonVimWimSdn(BaseTopic):
 
         # remove reference from project_read if there are more projects referencing it. If it last one,
         # do not remove reference, but order via kafka to delete it
-        if session["project_id"] and session["project_id"]:
+        if session["project_id"]:
             other_projects_referencing = next(
                 (
                     p
@@ -522,7 +544,7 @@ class WimAccountTopic(CommonVimWimSdn):
     schema_new = wim_account_new_schema
     schema_edit = wim_account_edit_schema
     multiproject = True
-    password_to_encrypt = "wim_password"
+    password_to_encrypt = "password"
     config_to_encrypt = {}
 
 
@@ -922,12 +944,13 @@ class UserTopicAuth(UserTopic):
         except ValidationError as e:
             raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
 
-    def show(self, session, _id, api_req=False):
+    def show(self, session, _id, filter_q=None, api_req=False):
         """
         Get complete information on an topic
 
         :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
         :param _id: server internal id or username
+        :param filter_q: dict: query parameter
         :param api_req: True if this call is serving an external API request. False if serving internal request.
         :return: dictionary, raise exception if not found.
         """
@@ -977,6 +1000,8 @@ class UserTopicAuth(UserTopic):
                 or indata.get("project_role_mappings")
                 or indata.get("projects")
                 or indata.get("add_projects")
+                or indata.get("unlock")
+                or indata.get("renew")
             ):
                 return _id
             if indata.get("project_role_mappings") and (
@@ -1050,7 +1075,6 @@ class UserTopicAuth(UserTopic):
                         mapping["role"],
                         mapping["role_name"],
                     ):
-
                         if mapping in mappings_to_remove:  # do not remove
                             mappings_to_remove.remove(mapping)
                         break  # do not add, it is already at user
@@ -1097,8 +1121,12 @@ class UserTopicAuth(UserTopic):
                     "_id": _id,
                     "username": indata.get("username"),
                     "password": indata.get("password"),
+                    "old_password": indata.get("old_password"),
                     "add_project_role_mappings": mappings_to_add,
                     "remove_project_role_mappings": mappings_to_remove,
+                    "system_admin_id": indata.get("system_admin_id"),
+                    "unlock": indata.get("unlock"),
+                    "renew": indata.get("renew"),
                 }
             )
             data_to_send = {"_id": _id, "changes": indata}
@@ -1295,12 +1323,13 @@ class ProjectTopicAuth(ProjectTopic):
         except ValidationError as e:
             raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
 
-    def show(self, session, _id, api_req=False):
+    def show(self, session, _id, filter_q=None, api_req=False):
         """
         Get complete information on an topic
 
         :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
         :param _id: server internal id
+        :param filter_q: dict: query parameter
         :param api_req: True if this call is serving an external API request. False if serving internal request.
         :return: dictionary, raise exception if not found.
         """
@@ -1594,12 +1623,13 @@ class RoleTopicAuth(BaseTopic):
             final_content["permissions"]["admin"] = False
         return None
 
-    def show(self, session, _id, api_req=False):
+    def show(self, session, _id, filter_q=None, api_req=False):
         """
         Get complete information on an topic
 
         :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
         :param _id: server internal id
+        :param filter_q: dict: query parameter
         :param api_req: True if this call is serving an external API request. False if serving internal request.
         :return: dictionary, raise exception if not found.
         """