config_to_encrypt = {"1.1": ("admin_password", "nsx_password", "vcenter_password"),
"default": ("admin_password", "nsx_password", "vcenter_password", "vrops_password")}
+ def check_conflict_on_del(self, session, _id, db_content):
+ """
+ Check if deletion can be done because of dependencies if it is not force. To override
+ :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
+ :param _id: internal _id
+ :param db_content: The database content of this item _id
+ :return: None if ok or raises EngineException with the conflict
+ """
+ if session["force"]:
+ return
+ # check if used by VNF
+ if self.db.get_list("vnfrs", {"vim-account-id": _id}):
+ raise EngineException("There is at least one VNF using this VIM account", http_code=HTTPStatus.CONFLICT)
+ super().check_conflict_on_del(session, _id, db_content)
+
class WimAccountTopic(CommonVimWimSdn):
topic = "wim_accounts"
ro_pid = str(uuid4())
rw_pid = str(uuid4())
cvws = {"_id": cid, "name": self.test_name}
+ self.db.get_list.return_value = []
with self.subTest(i=1):
cvws["_admin"] = {"projects_read": [test_pid, ro_pid, rw_pid], "projects_write": [test_pid, rw_pid]}
self.db.get_one.return_value = cvws
"Wrong read-only projects update")
self.assertEqual(self.db.set_one.call_args[1]["update_dict"]["_admin.projects_write"], [rw_pid],
"Wrong read/write projects update")
- with self.subTest(i=3):
+ with self.subTest(i=2):
now = time()
cvws["_admin"] = {"projects_read": [test_pid], "projects_write": [test_pid], "operations": []}
self.db.get_one.return_value = cvws