Logging traceback for key injection error in robot tests
[osm/RO.git] / NG-RO / osm_ng_ro / ns_thread.py
index 106830d..e65ae3f 100644 (file)
@@ -32,6 +32,7 @@ import queue
 from shutil import rmtree
 import threading
 import time
+import traceback
 from unittest.mock import Mock
 
 from importlib_metadata import entry_points
@@ -596,6 +597,7 @@ class VimInteractionVdu(VimInteractionBase):
         except (vimconn.VimConnException, NsWorkerException) as e:
             retries += 1
 
+            self.logger.debug(traceback.format_exc())
             if retries < self.max_retries_inject_ssh_key:
                 return (
                     "BUILD",
@@ -813,9 +815,28 @@ class VimInteractionAffinityGroup(VimInteractionBase):
 
         try:
             affinity_group_vim_id = None
+            affinity_group_data = None
 
             if task.get("params"):
-                affinity_group_data = task["params"]["affinity_group_data"]
+                affinity_group_data = task["params"].get("affinity_group_data")
+
+            if affinity_group_data and affinity_group_data.get("vim-affinity-group-id"):
+                try:
+                    param_affinity_group_id = task["params"]["affinity_group_data"].get(
+                        "vim-affinity-group-id"
+                    )
+                    affinity_group_vim_id = target_vim.get_affinity_group(
+                        param_affinity_group_id
+                    ).get("id")
+                except vimconn.VimConnNotFoundException:
+                    self.logger.error(
+                        "task={} {} new-affinity-or-anti-affinity-group. Provided VIM Affinity Group ID {}"
+                        "could not be found at VIM. Creating a new one.".format(
+                            task_id, ro_task["target_id"], param_affinity_group_id
+                        )
+                    )
+
+            if not affinity_group_vim_id and affinity_group_data:
                 affinity_group_vim_id = target_vim.new_affinity_group(
                     affinity_group_data
                 )