def prepare_view_change(self, proposed_view_no: int):
     if not self.is_preparing:
         self._set_req_handlers()
         vcs_msg = ViewChangeStartMessage(proposed_view_no)
         nodeInBox = self.view_changer.node.nodeInBox
         nodeInBox.append((vcs_msg, self.view_changer.node.name))
         self.is_preparing = True
def test_add_vc_continued_msg_on_view_change_started(pre_vc_strategy, looper):
    pre_vc_strategy.view_changer.view_no = 1
    looper.run(pre_vc_strategy.on_view_change_started(pre_vc_strategy.node,
                                                      ViewChangeStartMessage(2),
                                                      "some_node"))
    assert len(pre_vc_strategy.node.master_replica.inBox) == 1
    m = pre_vc_strategy.node.master_replica.inBox.popleft()
    assert isinstance(m, ViewChangeContinueMessage)
Пример #3
0
def test_not_continue_vc_with_proposed_view_no_less_then_current(
        pre_vc_strategy, looper):
    pre_vc_strategy.view_changer.view_no = 2
    looper.run(
        pre_vc_strategy.on_view_change_started(pre_vc_strategy.node,
                                               ViewChangeStartMessage(1),
                                               "some_node"))
    assert len(pre_vc_strategy.replica.inBox) == 0
Пример #4
0
 def prepare_view_change(self, proposed_view_no: int):
     if not self.is_preparing:
         logger.info(
             "VCStartMsgStrategy: Starting prepare_view_change process")
         self._set_req_handlers()
         vcs_msg = ViewChangeStartMessage(proposed_view_no)
         nodeInBox = self.view_changer.node.nodeInBox
         nodeInBox.append((vcs_msg, self.view_changer.node.name))
         self.is_preparing = True
def test_stash_not_3PC_msgs(pre_vc_strategy, looper):
    node = pre_vc_strategy.node
    pre_vc_strategy.view_changer.view_no = 1
    m1 = (InstanceChange(3, 25), "Beta")
    m2 = (InstanceChange(3, 25), "Gamma")
    assert len(pre_vc_strategy.stashedNodeInBox) == 0
    node.nodeInBox.append(m1)
    node.nodeInBox.append(m2)
    looper.run(pre_vc_strategy.on_view_change_started(pre_vc_strategy.node,
                                                      ViewChangeStartMessage(2),
                                                      "some_node"))
    assert len(pre_vc_strategy.stashedNodeInBox) > 0
    """In the same order as from nodeInBox queue"""
    assert pre_vc_strategy.stashedNodeInBox.popleft() == m1
    assert pre_vc_strategy.stashedNodeInBox.popleft() == m2