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
No related branches found
No related tags found
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