Exemplo n.º 1
0
    def on_vote_received(self, message):
        if message.sender not in self._votes:
            self._votes[message.sender] = message

            if (len(self._votes.keys()) > (self._server._total_nodes - 1) / 2):
                leader = Leader()
                leader.set_server(self._server)

                return leader, None
        return self, None
Exemplo n.º 2
0
    def on_vote_received(self, message):
        self._votes[message.sender] = message
        if len(self._votes.keys()) >= (self._server._total_nodes - 1) / 2:
            leader = Leader()
            leader.set_server(self._server)
            print "Server", self._server._name, "has been elected leader"
            self._server._serverState = leaderState
            for n in self._server._neighbors:
                if n._serverState != deadState:
                    n._serverState = followerState
                    n._state = Follower()
                    n._state.set_server(n)
            return leader, None

        return self, None