svc/conntrack.in: Hoist `netupdown' above `kickpeers'.
[tripe] / svc / conntrack.in
index 23fc45d..1ccbae6 100644 (file)
@@ -211,7 +211,7 @@ def cmd_showgroup(g):
       pats = p
       break
   else:
-    raise T.TripeJobError, 'unknown-group', g
+    raise T.TripeJobError('unknown-group', g)
   for t, p, a, m in pats:
     T.svcinfo('peer', t,
               'target', p or '(default)',
@@ -237,6 +237,16 @@ def localaddr(peer):
     sk.close()
 
 _kick = T.Queue()
+
+def netupdown(upness, reason):
+  """
+  Add or kill peers according to whether the network is up or down.
+
+  UPNESS is true if the network is up, or false if it's down.
+  """
+
+  _kick.put((upness, reason))
+
 def kickpeers():
   while True:
     upness, reason = _kick.get()
@@ -321,7 +331,7 @@ def kickpeers():
       if want is not None and not found:
         def _(want = want):
           try:
-            SM.svcsubmit('connect', 'active', want)
+            list(SM.svcsubmit('connect', 'active', want))
           except T.TripeError, exc:
             SM.warn('conntrack', 'connect-failed', want, *exc.args)
         if T._debug: print '#   peer %s: bring up' % want
@@ -332,18 +342,11 @@ def kickpeers():
       SM.notify('conntrack', upness and 'up' or 'down', *select + reason)
       for c in changes: c()
 
-def netupdown(upness, reason):
-  """
-  Add or kill peers according to whether the network is up or down.
-
-  UPNESS is true if the network is up, or false if it's down.
-  """
-
-  _kick.put((upness, reason))
-
 ###--------------------------------------------------------------------------
 ### NetworkManager monitor.
 
+DBPROPS_IFACE = 'org.freedesktop.DBus.Properties'
+
 NM_NAME = 'org.freedesktop.NetworkManager'
 NM_PATH = '/org/freedesktop/NetworkManager'
 NM_IFACE = NM_NAME
@@ -375,7 +378,7 @@ class NetworkManagerMonitor (object):
   def attach(me, bus):
     try:
       nm = bus.get_object(NM_NAME, NM_PATH)
-      state = nm.Get(NM_IFACE, 'State')
+      state = nm.Get(NM_IFACE, 'State', dbus_interface = DBPROPS_IFACE)
       if state in NM_CONNSTATES:
         netupdown(True, ['nm', 'initially-connected'])
       else: