Skip to content
Snippets Groups Projects
Select Git revision
  • 072454288d22d1b2f4c16d36f76f53155f3dfee1
  • main default protected
  • Rafael
  • Yong
  • Robin
5 results

voting.py

Blame
  • leberr's avatar
    Robin Leber authored
    (noch nicht eingebunden)
    0b4db651
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    voting.py 789 B
    import socket
    
    def form_ring(members):
        sorted_binary_ring = sorted([socket.inet_aton(member) for member in members])
        sorted_ip_ring = [socket.inet_ntoa(node) for node in sorted_binary_ring]
        return sorted_ip_ring
    
    
    def get_neighbour(ring, current_node_ip, direction='left'):
        current_node_index = ring.index(current_node_ip) if current_node_ip in ring else -1
        if current_node_index != -1:
            if direction == 'left':
                if current_node_index + 1 == len(ring):
                    return ring[0]
                else:
                    return ring[current_node_index + 1]
            else:
                if current_node_index == 0:
                    return ring[len(ring) - 1]
                else:
                    return ring[current_node_index - 1]
        else:
            return None