From c1a9b13b7c7c565a431e7aa0c4234327c87ccbf7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20K=C3=A1cha?= <ph@cesnet.cz>
Date: Tue, 19 Apr 2016 11:10:35 +0200
Subject: [PATCH] Fixed first client's access without id (IndexError: tuple
 index out of range) (thanks to Radko Krkos)

---
 warden3/warden_server/warden_server.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py
index 322ea13..898b27f 100755
--- a/warden3/warden_server/warden_server.py
+++ b/warden3/warden_server/warden_server.py
@@ -726,10 +726,15 @@ class MySQL(ObjectReq):
 
 
     def getLastReceivedId(self, client):
-        row = self.query("SELECT event_id as id FROM last_events WHERE client_id = %s ORDER BY last_events.id DESC LIMIT 1", (client.id,))[0]
-
-        id = row['id'] if row is not None else 0
-        logging.debug("getLastReceivedId: id %i for client %i(%s)" % (id, client.id, client.hostname))
+        res = self.query("SELECT event_id as id FROM last_events WHERE client_id = %s ORDER BY last_events.id DESC LIMIT 1", client.id)
+        try:
+            row = res[0]
+        except IndexError:
+            id = None
+            logging.debug("getLastReceivedId: probably first access, unable to get id for client %i(%s)" % (client.id, client.hostname))
+        else:
+            id = row["id"]
+            logging.debug("getLastReceivedId: id %i for client %i(%s)" % (id, client.id, client.hostname))
 
         return id
 
-- 
GitLab