Skip to content
Snippets Groups Projects
Select Git revision
  • 2ce8f6af7faf6832830d34fd672438460db9df45
  • main default protected
  • master
3 results

license

Blame
  • 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