Minor changes required for running tests
[ipypbx] / src / ipypbx / controllers.py
index 2063db9..4f40fab 100644 (file)
@@ -220,19 +220,31 @@ class ConnectionController(BaseController):
 
         for row in range(self.model.rowCount()):
             # Get local IP address and port from the table for each row.
-            server = http.FreeswitchConfigServer(self)
+            server = http.FreeswitchConfigServer(self.parent(), )
             server.setSocketData(*self.getSocketData(row))
             server.startServer()
             self.servers.append(server)
 
     def getSocketData(self, row):
-        local_ip_address = self.model.record(row).value(
-            'local_ip_address').toString()
-        local_port, _ok = self.model.record(row).value(
-            'local_port').toInt()
+        """
+        Return socket data for given row number.
+        """
+        record = self.model.record(row)
+        
+        # Local IP address.
+        local_ip_address = record.value('local_ip_address').toString()
+
+        # Local port.
+        local_port, _ok = record.value('local_port').toInt()
         if not _ok:
             local_port = None
-        return local_ip_address, local_port
+
+        # Connection ID.
+        connection_id, _ok = record.value('id').toInt()
+        if not _ok:
+            connection_id = None
+        
+        return local_ip_address, local_port, connection_id
     
     def connectionChange(self, index):
         """
@@ -245,21 +257,22 @@ class ConnectionController(BaseController):
                 index.sibling(current_row, 0)).toInt()
 
             # Apply new socket location.
-            self.servers[current_row].setSocketData(
-                *self.getSocketData(current_row))
+            if current_row < len(self.servers):
+                self.servers[current_row].setSocketData(
+                    *self.getSocketData(current_row))
         
     def objectAdded(self, row, record):
         """
         New connection added.
         """
-        self.addServer()
+        self.addServer(*self.getSocketData(row))
         
-    def addServer(self, host=None, port=None):
+    def addServer(self, host=None, port=None, connection_id=None):
         """
         Add a new config server.
         """
-        server = http.FreeswitchConfigServer(self)
-        server.setSocketData(host, port)
+        server = http.FreeswitchConfigServer(self.model.database(), self)
+        server.setSocketData(host, port, connection_id)
         server.startServer()
         self.servers.append(server)