From 8022b51bcf4129c28aa266fb9d9de4ee5293caee Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sun, 22 Oct 2017 15:39:44 +0200
Subject: [PATCH] Handle new nodes endpoints

---
 src/sakia/data/connectors/bma.py                | 2 ++
 src/sakia/data/connectors/node.py               | 1 +
 src/sakia/gui/navigation/network/table_model.py | 6 ++++++
 src/sakia/gui/navigation/network/view.py        | 2 +-
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/sakia/data/connectors/bma.py b/src/sakia/data/connectors/bma.py
index 819cbf31..25e8ec20 100644
--- a/src/sakia/data/connectors/bma.py
+++ b/src/sakia/data/connectors/bma.py
@@ -183,6 +183,8 @@ class BmaConnector:
                     for i in range(0, int(nb_verification)+1):
                         node = next(nodes_generator)
                         endpoints = filter_endpoints(request, [node])
+                        if not endpoints:
+                            continue
                         endpoint = random.choice(endpoints)
                         self._logger.debug(
                             "Requesting {0} on endpoint {1}".format(str(request.__name__), str(endpoint)))
diff --git a/src/sakia/data/connectors/node.py b/src/sakia/data/connectors/node.py
index 034d49d0..fcb2b475 100644
--- a/src/sakia/data/connectors/node.py
+++ b/src/sakia/data/connectors/node.py
@@ -364,6 +364,7 @@ class NodeConnector(QObject):
 
     def change_state_and_emit(self, new_state):
         if self.node.state != new_state:
+            self._logger.debug("Changing state {0} > {1}".format(self.node.state, new_state))
             self.node.last_state_change = time.time()
             self.node.state = new_state
             self.changed.emit()
diff --git a/src/sakia/gui/navigation/network/table_model.py b/src/sakia/gui/navigation/network/table_model.py
index 82d4287f..d0606fe4 100644
--- a/src/sakia/gui/navigation/network/table_model.py
+++ b/src/sakia/gui/navigation/network/table_model.py
@@ -214,6 +214,12 @@ class NetworkTableModel(QAbstractTableModel):
                     addresses.append(e.ipv4)
                 ports.append(str(e.port))
             elif isinstance(e, WS2PEndpoint):
+                addresses.append(e.server + " [" + e.ws2pid + "]")
+                ports.append(str(e.port))
+            elif isinstance(e, UnknownEndpoint):
+                addresses.append(" ".join(e.properties))
+                ports.append("-")
+            else:
                 addresses.append(e.server)
                 ports.append(str(e.port))
 
diff --git a/src/sakia/gui/navigation/network/view.py b/src/sakia/gui/navigation/network/view.py
index 14d99953..8726ddb9 100644
--- a/src/sakia/gui/navigation/network/view.py
+++ b/src/sakia/gui/navigation/network/view.py
@@ -25,7 +25,7 @@ class NetworkView(QWidget, Ui_NetworkWidget):
         :param PyQt5.QtCore.QAbstractTableModel model: the model of the table view
         """
         self.table_network.setModel(model)
-        self.table_network.sortByColumn(2, Qt.DescendingOrder)
+        self.table_network.sortByColumn(3, Qt.DescendingOrder)
         self.table_network.setItemDelegate(NetworkDelegate())
         self.table_network.resizeColumnsToContents()
         self.table_network.resizeRowsToContents()
-- 
GitLab