+
+ def _refres_sfps(self, task):
+ """Call VIM to get SFPs status"""
+ database_update = None
+
+ vim_id = task["vim_id"]
+ sfp_to_refresh_list = [vim_id]
+ task_id = task["instance_action_id"] + "." + str(task["task_index"])
+ try:
+ vim_dict = self.vim.refresh_sfps_status(sfp_to_refresh_list)
+ vim_info = vim_dict[vim_id]
+ except vimconn.vimconnException as e:
+ # Mark all tasks at VIM_ERROR status
+ self.logger.error("task={} get-sfp: vimconnException when trying to refresh sfps {}".format(task_id, e))
+ vim_info = {"status": "VIM_ERROR", "error_msg": str(e)}
+
+ self.logger.debug("task={} get-sfp: vim_sfp_id={} result={}".format(task_id, task["vim_id"], vim_info))
+ #TODO: Revise this part
+ vim_info_error_msg = None
+ if vim_info.get("error_msg"):
+ vim_info_error_msg = self._format_vim_error_msg(vim_info["error_msg"])
+ task_vim_info = task["extra"].get("vim_info")
+ task_error_msg = task.get("error_msg")
+ task_vim_status = task["extra"].get("vim_status")
+ if task_vim_status != vim_info["status"] or task_error_msg != vim_info_error_msg or \
+ (vim_info.get("vim_info") and task_vim_info != vim_info["vim_info"]):
+ database_update = {"status": vim_info["status"], "error_msg": vim_info_error_msg}
+ if vim_info.get("vim_info"):
+ database_update["vim_info"] = vim_info["vim_info"]
+
+ task["extra"]["vim_status"] = vim_info["status"]
+ task["error_msg"] = vim_info_error_msg
+ if vim_info.get("vim_info"):
+ task["extra"]["vim_info"] = vim_info["vim_info"]
+
+ return database_update
+
+ def _refres_sfis(self, task):
+ """Call VIM to get sfis status"""
+ database_update = None
+
+ vim_id = task["vim_id"]
+ sfi_to_refresh_list = [vim_id]
+ task_id = task["instance_action_id"] + "." + str(task["task_index"])
+ try:
+ vim_dict = self.vim.refresh_sfis_status(sfi_to_refresh_list)
+ vim_info = vim_dict[vim_id]
+ except vimconn.vimconnException as e:
+ # Mark all tasks at VIM_ERROR status
+ self.logger.error("task={} get-sfi: vimconnException when trying to refresh sfis {}".format(task_id, e))
+ vim_info = {"status": "VIM_ERROR", "error_msg": str(e)}
+
+ self.logger.debug("task={} get-sfi: vim_sfi_id={} result={}".format(task_id, task["vim_id"], vim_info))
+ #TODO: Revise this part
+ vim_info_error_msg = None
+ if vim_info.get("error_msg"):
+ vim_info_error_msg = self._format_vim_error_msg(vim_info["error_msg"])
+ task_vim_info = task["extra"].get("vim_info")
+ task_error_msg = task.get("error_msg")
+ task_vim_status = task["extra"].get("vim_status")
+ if task_vim_status != vim_info["status"] or task_error_msg != vim_info_error_msg or \
+ (vim_info.get("vim_info") and task_vim_info != vim_info["vim_info"]):
+ database_update = {"status": vim_info["status"], "error_msg": vim_info_error_msg}
+ if vim_info.get("vim_info"):
+ database_update["vim_info"] = vim_info["vim_info"]
+
+ task["extra"]["vim_status"] = vim_info["status"]
+ task["error_msg"] = vim_info_error_msg
+ if vim_info.get("vim_info"):
+ task["extra"]["vim_info"] = vim_info["vim_info"]
+
+ return database_update
+
+ def _refres_sfs(self, task):
+ """Call VIM to get sfs status"""
+ database_update = None
+
+ vim_id = task["vim_id"]
+ sf_to_refresh_list = [vim_id]
+ task_id = task["instance_action_id"] + "." + str(task["task_index"])
+ try:
+ vim_dict = self.vim.refresh_sfs_status(sf_to_refresh_list)
+ vim_info = vim_dict[vim_id]
+ except vimconn.vimconnException as e:
+ # Mark all tasks at VIM_ERROR status
+ self.logger.error("task={} get-sf: vimconnException when trying to refresh sfs {}".format(task_id, e))
+ vim_info = {"status": "VIM_ERROR", "error_msg": str(e)}
+
+ self.logger.debug("task={} get-sf: vim_sf_id={} result={}".format(task_id, task["vim_id"], vim_info))
+ #TODO: Revise this part
+ vim_info_error_msg = None
+ if vim_info.get("error_msg"):
+ vim_info_error_msg = self._format_vim_error_msg(vim_info["error_msg"])
+ task_vim_info = task["extra"].get("vim_info")
+ task_error_msg = task.get("error_msg")
+ task_vim_status = task["extra"].get("vim_status")
+ if task_vim_status != vim_info["status"] or task_error_msg != vim_info_error_msg or \
+ (vim_info.get("vim_info") and task_vim_info != vim_info["vim_info"]):
+ database_update = {"status": vim_info["status"], "error_msg": vim_info_error_msg}
+ if vim_info.get("vim_info"):
+ database_update["vim_info"] = vim_info["vim_info"]
+
+ task["extra"]["vim_status"] = vim_info["status"]
+ task["error_msg"] = vim_info_error_msg
+ if vim_info.get("vim_info"):
+ task["extra"]["vim_info"] = vim_info["vim_info"]
+
+ return database_update
+
+ def _refres_classifications(self, task):
+ """Call VIM to get classifications status"""
+ database_update = None
+
+ vim_id = task["vim_id"]
+ classification_to_refresh_list = [vim_id]
+ task_id = task["instance_action_id"] + "." + str(task["task_index"])
+ try:
+ vim_dict = self.vim.refresh_classifications_status(classification_to_refresh_list)
+ vim_info = vim_dict[vim_id]
+ except vimconn.vimconnException as e:
+ # Mark all tasks at VIM_ERROR status
+ self.logger.error("task={} get-classification: vimconnException when trying to refresh classifications {}"
+ .format(task_id, e))
+ vim_info = {"status": "VIM_ERROR", "error_msg": str(e)}
+
+ self.logger.debug("task={} get-classification: vim_classification_id={} result={}".format(task_id,
+ task["vim_id"], vim_info))
+ #TODO: Revise this part
+ vim_info_error_msg = None
+ if vim_info.get("error_msg"):
+ vim_info_error_msg = self._format_vim_error_msg(vim_info["error_msg"])
+ task_vim_info = task["extra"].get("vim_info")
+ task_error_msg = task.get("error_msg")
+ task_vim_status = task["extra"].get("vim_status")
+ if task_vim_status != vim_info["status"] or task_error_msg != vim_info_error_msg or \
+ (vim_info.get("vim_info") and task_vim_info != vim_info["vim_info"]):
+ database_update = {"status": vim_info["status"], "error_msg": vim_info_error_msg}
+ if vim_info.get("vim_info"):
+ database_update["vim_info"] = vim_info["vim_info"]
+
+ task["extra"]["vim_status"] = vim_info["status"]
+ task["error_msg"] = vim_info_error_msg
+ if vim_info.get("vim_info"):
+ task["extra"]["vim_info"] = vim_info["vim_info"]
+
+ return database_update