コード例 #1
0
 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)
コード例 #2
0
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))