diff --git a/krkn/scenario_plugins/kubevirt_vm_outage/kubevirt_vm_outage_scenario_plugin.py b/krkn/scenario_plugins/kubevirt_vm_outage/kubevirt_vm_outage_scenario_plugin.py index 60540971..f8e30779 100644 --- a/krkn/scenario_plugins/kubevirt_vm_outage/kubevirt_vm_outage_scenario_plugin.py +++ b/krkn/scenario_plugins/kubevirt_vm_outage/kubevirt_vm_outage_scenario_plugin.py @@ -1,8 +1,7 @@ import logging import time -from typing import Dict, Any, Optional +from typing import Dict, Any import random -import re import yaml from kubernetes.client.rest import ApiException from krkn_lib.k8s import KrknKubernetes @@ -35,7 +34,6 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): self, run_uuid: str, scenario: str, - krkn_config: dict[str, any], lib_telemetry: KrknTelemetryOpenshift, scenario_telemetry: ScenarioTelemetry, ) -> int: @@ -60,7 +58,7 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): return 0 except Exception as e: logging.error(f"KubeVirt VM Outage scenario failed: {e}") - log_exception(e) + log_exception(str(e)) return 1 def init_clients(self, k8s_client: KrknKubernetes): @@ -143,7 +141,7 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): except Exception as e: logging.error(f"Error executing KubeVirt VM outage scenario: {e}") - log_exception(e) + log_exception(str(e)) return self.pods_status def validate_environment(self, vm_name: str, namespace: str) -> bool: @@ -243,7 +241,7 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): except Exception as e: logging.error(f"Error deleting VMI {vm_name}: {e}") - log_exception(e) + log_exception(str(e)) self.pods_status.unrecovered.append(self.affected_pod) return 1 @@ -304,7 +302,7 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): except Exception as e: logging.error(f"Error recreating VMI {vm_name}: {e}") - log_exception(e) + log_exception(str(e)) return 1 else: logging.error(f"Failed to recover VMI {vm_name}: No original state captured and auto-recovery did not occur") @@ -312,5 +310,5 @@ class KubevirtVmOutageScenarioPlugin(AbstractScenarioPlugin): except Exception as e: logging.error(f"Unexpected error recovering VMI {vm_name}: {e}") - log_exception(e) + log_exception(str(e)) return 1 diff --git a/krkn/scenario_plugins/managed_cluster/managed_cluster_scenario_plugin.py b/krkn/scenario_plugins/managed_cluster/managed_cluster_scenario_plugin.py index a895cd6c..666c0f13 100644 --- a/krkn/scenario_plugins/managed_cluster/managed_cluster_scenario_plugin.py +++ b/krkn/scenario_plugins/managed_cluster/managed_cluster_scenario_plugin.py @@ -1,5 +1,4 @@ import logging -import time import yaml from krkn_lib.k8s import KrknKubernetes @@ -28,7 +27,6 @@ class ManagedClusterScenarioPlugin(AbstractScenarioPlugin): ) if managedcluster_scenario["actions"]: for action in managedcluster_scenario["actions"]: - start_time = int(time.time()) try: self.inject_managedcluster_scenario( action, @@ -44,6 +42,7 @@ class ManagedClusterScenarioPlugin(AbstractScenarioPlugin): return 1 else: return 0 + return 0 def inject_managedcluster_scenario( self, diff --git a/tests/test_kubevirt_vm_outage.py b/tests/test_kubevirt_vm_outage.py index e7b1d900..d980e45f 100644 --- a/tests/test_kubevirt_vm_outage.py +++ b/tests/test_kubevirt_vm_outage.py @@ -176,7 +176,7 @@ class TestKubevirtVmOutageScenarioPlugin(unittest.TestCase): self.k8s_client.delete_vmi.return_value = None with patch("builtins.open", unittest.mock.mock_open(read_data=yaml.dump(self.config))): - result = self.plugin.run("test-uuid", self.scenario_file, {}, self.telemetry, self.scenario_telemetry) + result = self.plugin.run("test-uuid", self.scenario_file, self.telemetry, self.scenario_telemetry) self.assertEqual(result, 0) self.k8s_client.delete_vmi.assert_called_once_with("test-vm", "default") @@ -196,7 +196,7 @@ class TestKubevirtVmOutageScenarioPlugin(unittest.TestCase): self.k8s_client.delete_vmi.side_effect = ApiException(status=500) with patch("builtins.open", unittest.mock.mock_open(read_data=yaml.dump(self.config))): - result = self.plugin.run("test-uuid", self.scenario_file, {}, self.telemetry, self.scenario_telemetry) + result = self.plugin.run("test-uuid", self.scenario_file, self.telemetry, self.scenario_telemetry) self.assertEqual(result, 1) self.k8s_client.delete_vmi.assert_called_once_with("test-vm", "default") @@ -234,7 +234,7 @@ class TestKubevirtVmOutageScenarioPlugin(unittest.TestCase): self.k8s_client.delete_vmi.return_value = None with patch("builtins.open", unittest.mock.mock_open(read_data=yaml.dump(self.config))): - result = self.plugin.run("test-uuid", self.scenario_file, {}, self.telemetry, self.scenario_telemetry) + result = self.plugin.run("test-uuid", self.scenario_file, self.telemetry, self.scenario_telemetry) self.assertEqual(result, 0) # Verify patch_vm was called to disable auto-restart @@ -278,7 +278,7 @@ class TestKubevirtVmOutageScenarioPlugin(unittest.TestCase): self.k8s_client.get_vmi.return_value = None with patch("builtins.open", unittest.mock.mock_open(read_data=yaml.dump(self.config))): - result = self.plugin.run("test-uuid", self.scenario_file, {}, self.telemetry, self.scenario_telemetry) + result = self.plugin.run("test-uuid", self.scenario_file, self.telemetry, self.scenario_telemetry) # When validation fails, run() returns 1 due to exception handling self.assertEqual(result, 1)