From 6259c91aba0d64d0f52589adf70c4e9167e65ddf Mon Sep 17 00:00:00 2001
From: leberr <robin.leber@student.reutlingen-university.de>
Date: Tue, 30 Jan 2024 18:35:25 +0100
Subject: [PATCH] leader election

---
 server.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/server.py b/server.py
index 65fc251..7f20d57 100644
--- a/server.py
+++ b/server.py
@@ -88,6 +88,7 @@ class Server():
 
                 time.sleep(1)
                 self.print_group_view()
+                # self.basic_lcr()
                 self.printwt(f'The current leader IP is: {self.leader_uuid}')
             
 
@@ -144,7 +145,7 @@ class Server():
                 except socket.timeout:
                     break
 
-        if num_responses == 1:     
+        if num_responses == 1:
             multicast_send_sock.close()
             self.isLeader = True
             self.leader_uuid = self.uuid # Hier wird die uuid-Adresse des Leaders zugewiesen
@@ -179,7 +180,7 @@ class Server():
                 self.printwt(data.decode())
 
         # if Iam the leader, answer the client including my IP
-                if MY_IP == self.leader_uuid:
+                if self.uuid == self.leader_uuid:
                     reply_message = MY_IP
                     listen_socket.sendto(str.encode(reply_message), addr)
                     self.printwt('Replied my IP to new client')
@@ -207,10 +208,14 @@ class Server():
                 self.clients.remove(client)
     
     def basic_lcr(self):
+        print('New leader election starts')
+        print('++++++++++++++++++++++++++')
+        print('server list')
+        print(self.serverList)
         print('\nWaiting to receive election message...\n')
         data, address = ring_socket.recvfrom(1024)
         election_message = json.loads(data.decode())
-        neighbour = get_neighbour(form_ring(), MY_IP, 'left')
+        neighbour = get_neighbour(form_ring(self.serverList), MY_IP, 'left')
 
         if election_message['isLeader']:
             self.leader_uuid = election_message['mid']
@@ -254,6 +259,8 @@ if __name__== '__main__':
     thread1 = threading.Thread(target = server.ListenForClientAndReply)
     thread1.start()
 
+    server.basic_lcr()
+
     # Socket erstellen und binden
     server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     server_socket.bind((MY_IP, 5555))
-- 
GitLab