Skip to content

Commit 5e32dd1

Browse files
committed
cerbuerus chagnes
Signed-off-by: Paige Patton <[email protected]>
1 parent 0aac611 commit 5e32dd1

22 files changed

+65
-512
lines changed

krkn/cerberus/setup.py

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,33 @@
22
import requests
33
import sys
44
import json
5+
from krkn_lib.utils.functions import get_yaml_item_value
56

7+
check_application_routes = ""
8+
cerberus_url = None
9+
exit_on_failure = False
10+
cerberus_enabled = False
611

7-
def get_status(config, start_time, end_time):
12+
def set_url(config):
13+
global exit_on_failure
14+
exit_on_failure = get_yaml_item_value(config["kraken"], "exit_on_failure", False)
15+
global cerberus_enabled
16+
cerberus_enabled = get_yaml_item_value(config["cerberus"],"cerberus_enabled", False)
17+
if cerberus_enabled:
18+
global cerberus_url
19+
cerberus_url = get_yaml_item_value(config["cerberus"],"cerberus_url", "")
20+
global check_application_routes
21+
check_application_routes = \
22+
get_yaml_item_value(config["cerberus"],"check_applicaton_routes","")
23+
24+
def get_status(start_time, end_time):
825
"""
926
Get cerberus status
1027
"""
1128
cerberus_status = True
1229
check_application_routes = False
1330
application_routes_status = True
14-
if config["cerberus"]["cerberus_enabled"]:
15-
cerberus_url = config["cerberus"]["cerberus_url"]
16-
check_application_routes = \
17-
config["cerberus"]["check_applicaton_routes"]
31+
if cerberus_enabled:
1832
if not cerberus_url:
1933
logging.error(
2034
"url where Cerberus publishes True/False signal "
@@ -61,40 +75,38 @@ def get_status(config, start_time, end_time):
6175
return cerberus_status
6276

6377

64-
def publish_kraken_status(config, failed_post_scenarios, start_time, end_time):
78+
def publish_kraken_status( start_time, end_time):
6579
"""
6680
Publish kraken status to cerberus
6781
"""
68-
cerberus_status = get_status(config, start_time, end_time)
82+
cerberus_status = get_status(start_time, end_time)
6983
if not cerberus_status:
70-
if failed_post_scenarios:
71-
if config["kraken"]["exit_on_failure"]:
72-
logging.info(
73-
"Cerberus status is not healthy and post action scenarios "
74-
"are still failing, exiting kraken run"
75-
)
76-
sys.exit(1)
77-
else:
78-
logging.info(
79-
"Cerberus status is not healthy and post action scenarios "
80-
"are still failing"
81-
)
84+
if exit_on_failure:
85+
logging.info(
86+
"Cerberus status is not healthy and post action scenarios "
87+
"are still failing, exiting kraken run"
88+
)
89+
sys.exit(1)
90+
else:
91+
logging.info(
92+
"Cerberus status is not healthy and post action scenarios "
93+
"are still failing"
94+
)
8295
else:
83-
if failed_post_scenarios:
84-
if config["kraken"]["exit_on_failure"]:
85-
logging.info(
86-
"Cerberus status is healthy but post action scenarios "
87-
"are still failing, exiting kraken run"
88-
)
89-
sys.exit(1)
90-
else:
91-
logging.info(
92-
"Cerberus status is healthy but post action scenarios "
93-
"are still failing"
94-
)
96+
if exit_on_failure:
97+
logging.info(
98+
"Cerberus status is healthy but post action scenarios "
99+
"are still failing, exiting kraken run"
100+
)
101+
sys.exit(1)
102+
else:
103+
logging.info(
104+
"Cerberus status is healthy but post action scenarios "
105+
"are still failing"
106+
)
95107

96108

97-
def application_status(cerberus_url, start_time, end_time):
109+
def application_status( start_time, end_time):
98110
"""
99111
Check application availability
100112
"""

krkn/scenario_plugins/abstract_scenario_plugin.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from krkn_lib.models.telemetry import ScenarioTelemetry
55
from krkn_lib.telemetry.ocp import KrknTelemetryOpenshift
66

7-
from krkn import utils
7+
from krkn import utils, cerberus
88

99

1010
class AbstractScenarioPlugin(ABC):
@@ -13,7 +13,6 @@ def run(
1313
self,
1414
run_uuid: str,
1515
scenario: str,
16-
krkn_config: dict[str, any],
1716
lib_telemetry: KrknTelemetryOpenshift,
1817
scenario_telemetry: ScenarioTelemetry,
1918
) -> int:
@@ -76,10 +75,10 @@ def run_scenarios(
7675
logging.info(
7776
f"Running {self.__class__.__name__}: {self.get_scenario_types()} -> {scenario_config}"
7877
)
78+
start_time = int(time.time())
7979
return_value = self.run(
8080
run_uuid,
8181
scenario_config,
82-
krkn_config,
8382
telemetry,
8483
scenario_telemetry,
8584
)
@@ -110,6 +109,9 @@ def run_scenarios(
110109
if scenario_telemetry.exit_status != 0:
111110
failed_scenarios.append(scenario_config)
112111
scenario_telemetries.append(scenario_telemetry)
112+
end_time = int(time.time())
113+
cerberus.publish_kraken_status(start_time, end_time)
113114
logging.info(f"wating {wait_duration} before running the next scenario")
114115
time.sleep(wait_duration)
116+
115117
return failed_scenarios, scenario_telemetries

krkn/scenario_plugins/application_outage/application_outage_scenario_plugin.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@ def run(
1414
self,
1515
run_uuid: str,
1616
scenario: str,
17-
krkn_config: dict[str, any],
1817
lib_telemetry: KrknTelemetryOpenshift,
1918
scenario_telemetry: ScenarioTelemetry,
2019
) -> int:
21-
wait_duration = krkn_config["tunings"]["wait_duration"]
2220
try:
2321
with open(scenario, "r") as f:
2422
app_outage_config_yaml = yaml.full_load(f)
@@ -68,14 +66,8 @@ def run(
6866
"kraken-deny", namespace
6967
)
7068

71-
logging.info(
72-
"End of scenario. Waiting for the specified duration: %s"
73-
% wait_duration
74-
)
75-
time.sleep(wait_duration)
76-
7769
end_time = int(time.time())
78-
cerberus.publish_kraken_status(krkn_config, [], start_time, end_time)
70+
7971
except Exception as e:
8072
logging.error(
8173
"ApplicationOutageScenarioPlugin exiting due to Exception %s" % e

krkn/scenario_plugins/arcaflow/arcaflow_scenario_plugin.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ def run(
1515
self,
1616
run_uuid: str,
1717
scenario: str,
18-
krkn_config: dict[str, any],
1918
lib_telemetry: KrknTelemetryOpenshift,
2019
scenario_telemetry: ScenarioTelemetry,
2120
) -> int:

krkn/scenario_plugins/container/container_scenario_plugin.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,10 @@ def run(
1818
self,
1919
run_uuid: str,
2020
scenario: str,
21-
krkn_config: dict[str, any],
2221
lib_telemetry: KrknTelemetryOpenshift,
2322
scenario_telemetry: ScenarioTelemetry,
2423
) -> int:
25-
start_time = int(time.time())
2624
pool = PodsMonitorPool(lib_telemetry.get_lib_kubernetes())
27-
wait_duration = krkn_config["tunings"]["wait_duration"]
2825
try:
2926
with open(scenario, "r") as f:
3027
cont_scenario_config = yaml.full_load(f)
@@ -44,14 +41,7 @@ def run(
4441
)
4542
return 1
4643
scenario_telemetry.affected_pods = result
47-
logging.info("Waiting for the specified duration: %s" % (wait_duration))
48-
time.sleep(wait_duration)
4944

50-
# capture end time
51-
end_time = int(time.time())
52-
53-
# publish cerberus status
54-
cerberus.publish_kraken_status(krkn_config, [], start_time, end_time)
5545
except (RuntimeError, Exception):
5646
logging.error("ContainerScenarioPlugin exiting due to Exception %s" % e)
5747
return 1

krkn/scenario_plugins/managed_cluster/managed_cluster_scenario_plugin.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from krkn_lib.telemetry.ocp import KrknTelemetryOpenshift
88
from krkn_lib.utils import get_yaml_item_value
99

10-
from krkn import cerberus, utils
1110
from krkn.scenario_plugins.abstract_scenario_plugin import AbstractScenarioPlugin
1211
from krkn.scenario_plugins.managed_cluster.common_functions import get_managedcluster
1312
from krkn.scenario_plugins.managed_cluster.scenarios import Scenarios
@@ -18,7 +17,6 @@ def run(
1817
self,
1918
run_uuid: str,
2019
scenario: str,
21-
krkn_config: dict[str, any],
2220
lib_telemetry: KrknTelemetryOpenshift,
2321
scenario_telemetry: ScenarioTelemetry,
2422
) -> int:
@@ -38,8 +36,6 @@ def run(
3836
managedcluster_scenario_object,
3937
lib_telemetry.get_lib_kubernetes(),
4038
)
41-
end_time = int(time.time())
42-
cerberus.get_status(krkn_config, start_time, end_time)
4339
except Exception as e:
4440
logging.error(
4541
"ManagedClusterScenarioPlugin exiting due to Exception %s"

krkn/scenario_plugins/native/native_scenario_plugin.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def run(
1313
self,
1414
run_uuid: str,
1515
scenario: str,
16-
krkn_config: dict[str, any],
1716
lib_telemetry: KrknTelemetryOpenshift,
1817
scenario_telemetry: ScenarioTelemetry,
1918
) -> int:
@@ -29,7 +28,6 @@ def run(
2928
PLUGINS.run(
3029
scenario,
3130
lib_telemetry.get_lib_kubernetes().get_kubeconfig_path(),
32-
krkn_config,
3331
run_uuid,
3432
)
3533
result = pool.join()
@@ -48,7 +46,7 @@ def run(
4846
def get_scenario_types(self) -> list[str]:
4947
return [
5048
"pod_disruption_scenarios",
51-
"pod_network_scenario",
49+
"pod_network_scenarios",
5250
"vmware_node_scenarios",
5351
"ibmcloud_node_scenarios",
5452
]

0 commit comments

Comments
 (0)