def start_leader_election_handler(self, event): """Leader election start handler Always accept a new start event for a leader election Arguments: event {StartLeaderElection} -- Leader election start event """ self.last_leader_election_clock = self.clock self.leader_election_max_id = self.id self.messages.append((self, LeaderElection(self.id, self.id)))
def leader_election_handler(self, event): """Leader election handler Arguments: event {LeaderElection} -- Leader election event instance """ # This need to be adjusted in the future if (self.clock - self.last_leader_election_clock) < math.inf: new_max_id = max(event.max_id, self.id) # propagate value if self.leader_election_max_id < new_max_id: self.leader_election_max_id = new_max_id self.messages.append( (self, LeaderElection(self.id, new_max_id))) self.last_leader_election_clock = self.clock