示例#1
0
 def setUp(self):
     self.conf = SyncObjConf(appendEntriesUseBatch=False, appendEntriesPeriod=0.001,
                             raftMinTimeout=0.004, raftMaxTimeout=0.005, autoTickPeriod=0.001)
     callback = Mock()
     callback.replicated = False
     self.so = KVStoreTTL('127.0.0.1:1234', [], self.conf, on_set=callback, on_delete=callback)
     self.so.set_retry_timeout(10)
示例#2
0
文件: test_raft.py 项目: tnir/patroni
 def test_on_ready_override(self):
     self.assertTrue(self.so.set('foo', 'bar'))
     self.so.destroy()
     self.so = None
     so = KVStoreTTL(Mock(), None, None, self_addr='127.0.0.1:1234',
                     partner_addrs=['127.0.0.1:1235'], patronictl=True)
     so.doTick(0)
     so.destroy()
示例#3
0
 def test_on_ready_override(self):
     self.assertTrue(self.so.set('foo', 'bar'))
     self.destroy(self.so)
     self.so = None
     self.conf.onReady = Mock()
     self.conf.autoTick = False
     so = KVStoreTTL('127.0.0.1:1234', ['127.0.0.1:1235'], self.conf)
     so.doTick(0)
     so.destroy()
示例#4
0
 def setUp(self):
     callback = Mock()
     callback.replicated = False
     self.so = KVStoreTTL(None,
                          callback,
                          callback,
                          self_addr='127.0.0.1:1234')
     self.so.startAutoTick()
     self.so.set_retry_timeout(10)
示例#5
0
    def cleanup_service_tree(self):
        from patroni.dcs.raft import KVStoreTTL

        if self._raft:
            self._raft.destroy()
            self.stop()
            os.makedirs(self._work_directory)
            self.start()

        ready_event = threading.Event()
        self._raft = KVStoreTTL(ready_event.set, None, None, partner_addrs=[self.CONTROLLER_ADDR], password=self.PASSWORD)
        self._raft.startAutoTick()
        ready_event.wait()
示例#6
0
    def __init__(self, config):
        super(RaftController, self).__init__(config)

        raft_config = self.config.get('raft')
        self_addr = raft_config['self_addr']
        template = os.path.join(raft_config.get('data_dir', ''), self_addr)
        self._syncobj_config = SyncObjConf(autoTick=False,
                                           appendEntriesUseBatch=False,
                                           dynamicMembershipChange=True,
                                           journalFile=template + '.journal',
                                           fullDumpFile=template + '.dump')
        self._raft = KVStoreTTL(self_addr,
                                raft_config.get('partner_addrs',
                                                []), self._syncobj_config)
示例#7
0
    def cleanup_service_tree(self):
        from patroni.dcs.raft import KVStoreTTL
        from pysyncobj import SyncObjConf

        if self._raft:
            self._raft.destroy()
            self._raft._SyncObj__thread.join()
            self.stop()
            os.makedirs(self._work_directory)
            self.start()

        ready_event = threading.Event()
        conf = SyncObjConf(appendEntriesUseBatch=False, dynamicMembershipChange=True, onReady=ready_event.set)
        self._raft = KVStoreTTL(None, [self.CONTROLLER_ADDR], conf)
        ready_event.wait()