Files
krkn/tests/test_ingress_network_plugin.py
T
Shreyas Anantha RamaprasadandGitHub 9421a0c2c2 Added support for ingress traffic shaping (#299)
* 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
2022-09-02 07:54:11 +02:00

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()