def setUp(self): self.mount_mu = MountMuService() self.redpanda_mu = RedpandaMuService() self.kafkakv_mu = KafkaKVMuService(self.redpanda_mu) seq = SeqMuService([self.mount_mu, self.redpanda_mu, self.kafkakv_mu]) self.service = MuServiceRunner(seq, self.test_context, self.num_nodes) self.service.start() redpanda = RedpandaMuServiceServiceProxy(self.service, self.redpanda_mu) tools = KafkaCliTools(redpanda, KafkaCliTools.VERSIONS[0]) tools.create_topic(KafkaKVMuService.TOPIC)
class BaseChaosTest(Test): PERSISTENT_ROOT = "/mnt/chaos" def __init__(self, test_context, num_nodes): super(BaseChaosTest, self).__init__(test_context) self.num_nodes = num_nodes self.config = { "cmd_log": "cmd.log", "latency_log": "lat.log", "availability_log": "1s.log", "ss_metrics": [], "verbose": True, "warmup": 60, "exploitation": 60, "cooldown": 120, "workload": { "name": "mrsw" } } pathlib.Path(BaseChaosTest.PERSISTENT_ROOT).mkdir(parents=True, exist_ok=True) def setUp(self): self.mount_mu = MountMuService() self.redpanda_mu = RedpandaMuService() self.kafkakv_mu = KafkaKVMuService(self.redpanda_mu) seq = SeqMuService([self.mount_mu, self.redpanda_mu, self.kafkakv_mu]) self.service = MuServiceRunner(seq, self.test_context, self.num_nodes) self.service.start() redpanda = RedpandaMuServiceServiceProxy(self.service, self.redpanda_mu) tools = KafkaCliTools(redpanda, KafkaCliTools.VERSIONS[0]) tools.create_topic(KafkaKVMuService.TOPIC) def tearDown(self): self.service.stop() def run(self, failure_factory): cluster = RedpandaDuckCluster(self.service, self.redpanda_mu) def workload_factory(): nodes = [] for x in self.kafkakv_mu.endpoints: nodes.append(KVNode(len(nodes), x, x)) return MRSWWorkload(nodes, 3, 3, []) asyncio.run( inject_recover_scenario_aio(BaseChaosTest.PERSISTENT_ROOT, self.config, cluster, workload_factory, failure_factory))