| 1 | diff --git a/pydra_server/cluster/master/auto_discovery.py b/pydra_server/cluster/master/auto_discovery.py |
|---|
| 2 | index edd230e..76b7437 100644 |
|---|
| 3 | --- a/pydra_server/cluster/master/auto_discovery.py |
|---|
| 4 | +++ b/pydra_server/cluster/master/auto_discovery.py |
|---|
| 5 | @@ -21,7 +21,7 @@ from dbus.mainloop.glib import DBusGMainLoop |
|---|
| 6 | import dbus, avahi |
|---|
| 7 | |
|---|
| 8 | from pydra_server.cluster.module import Module |
|---|
| 9 | -from pydra_server.models import pydraSettings |
|---|
| 10 | +from pydra_server.models import pydraSettings, Node |
|---|
| 11 | |
|---|
| 12 | # init logging |
|---|
| 13 | import logging |
|---|
| 14 | @@ -61,7 +61,7 @@ class AutoDiscoveryModule(Module): |
|---|
| 15 | |
|---|
| 16 | # add the node (without the restart) |
|---|
| 17 | Node.objects.create(host=args[7], port=args[8]) |
|---|
| 18 | - self.connect() |
|---|
| 19 | + self.emit('NODE_ADDED') |
|---|
| 20 | else: |
|---|
| 21 | self.known_nodes.add((args[7], args[8])) |
|---|
| 22 | |
|---|
| 23 | @@ -94,11 +94,11 @@ class AutoDiscoveryModule(Module): |
|---|
| 24 | sbrowser.connect_to_signal("ItemNew", node_found) |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | - def list_known_nodes(self, _): |
|---|
| 28 | + def list_known_nodes(self): |
|---|
| 29 | """ |
|---|
| 30 | list know_nodes |
|---|
| 31 | """ |
|---|
| 32 | # cast to list, doesn't seem to digest set |
|---|
| 33 | - return list(self.master.known_nodes) |
|---|
| 34 | + return list(self.known_nodes) |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | diff --git a/pydra_server/cluster/master/node_connection_manager.py b/pydra_server/cluster/master/node_connection_manager.py |
|---|
| 38 | index 10c6fbc..da48276 100644 |
|---|
| 39 | --- a/pydra_server/cluster/master/node_connection_manager.py |
|---|
| 40 | +++ b/pydra_server/cluster/master/node_connection_manager.py |
|---|
| 41 | @@ -86,6 +86,7 @@ class NodeConnectionManager(Module): |
|---|
| 42 | |
|---|
| 43 | self._listeners = { |
|---|
| 44 | 'MANAGER_INIT':self.connect, |
|---|
| 45 | + 'NODE_ADDED':self.connect, #trigger the reconnection procedure when a node is added |
|---|
| 46 | 'NODE_CREATED':self.connect_node, |
|---|
| 47 | 'NODE_UPDATED':self.connect_node, |
|---|
| 48 | } |
|---|
| 49 | @@ -151,7 +152,7 @@ class NodeConnectionManager(Module): |
|---|
| 50 | if i.id not in self.nodes: |
|---|
| 51 | self.nodes[i.id] = i |
|---|
| 52 | if (i.host, i.port) in self.known_nodes: |
|---|
| 53 | - self.known_nodes.discard((i.host, i.port)) |
|---|
| 54 | + self.manager.get_shared('known_nodes').discard((i.host, i.port)) |
|---|
| 55 | |
|---|
| 56 | logger.info("Connecting to nodes") |
|---|
| 57 | connections = [] |
|---|