mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-04-15 06:57:28 +00:00
* Added plugin for ingress network traffic shaping * Documentation changes * Minor changes * Documentation and formatting fixes * Added trap to sleep infinity command running in containers * Removed shell injection threat for modprobe commands * Added docstrings to cerberus functions * Added checks to prevent shell injection * Bug fix
46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
import unittest
|
|
import os
|
|
import os
|
|
import logging
|
|
from arcaflow_plugin_sdk import plugin
|
|
import kraken.plugins.network.kubernetes_functions as kube_helper
|
|
from kraken.plugins.network import ingress_shaping
|
|
|
|
class NetworkScenariosTest(unittest.TestCase):
|
|
|
|
def test_serialization(self):
|
|
plugin.test_object_serialization(
|
|
ingress_shaping.NetworkScenarioConfig(node_interface_name={"foo": ['bar']}, network_params={
|
|
"latency": "50ms" , "loss": "0.02", "bandwidth": "100mbit"}),
|
|
self.fail,
|
|
)
|
|
plugin.test_object_serialization(
|
|
ingress_shaping.NetworkScenarioSuccessOutput(
|
|
filter_direction="ingress", test_interfaces= {"foo": ['bar']}, network_parameters={
|
|
"latency": "50ms" , "loss": "0.02", "bandwidth": "100mbit"}, execution_type="parallel"),
|
|
self.fail,
|
|
)
|
|
plugin.test_object_serialization(
|
|
ingress_shaping.NetworkScenarioErrorOutput(
|
|
error="Hello World",
|
|
),
|
|
self.fail,
|
|
)
|
|
|
|
|
|
def test_network_chaos(self):
|
|
|
|
output_id, output_data = ingress_shaping.network_chaos(
|
|
ingress_shaping.NetworkScenarioConfig(
|
|
label_selector="node-role.kubernetes.io/master", instance_count=1,
|
|
network_params = {"latency": "50ms" , "loss": "0.02", "bandwidth": "100mbit"}
|
|
)
|
|
)
|
|
if output_id == "error":
|
|
logging.error(output_data.error)
|
|
self.fail("The network chaos scenario did not complete successfully because an error/exception occurred")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|