Select Git revision
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