Skip to content
Snippets Groups Projects
Commit 0fe8f5c0 authored by Robin Leber's avatar Robin Leber
Browse files

ring formation and getting neighbour

(from slides)
parent 9d330f82
1 merge request!2leader election und heartbeat
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
members = ['192.168.0.1', '130.234.204.2', '130.234.203.2', '130.234.204.1', '182.4.3.111']
ring = form_ring(members)
print(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
neighbour = get_neighbour(ring, '130.234.204.2', 'rigth')
print(neighbour)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment