Beremiz_service.py
changeset 1446 4963e3816641
parent 1439 a68cd4253259
child 1447 d6b878525ceb
--- a/Beremiz_service.py	Tue Feb 10 00:25:17 2015 +0100
+++ b/Beremiz_service.py	Mon Feb 16 16:23:51 2015 +0100
@@ -434,31 +434,12 @@
 
 pyruntimevars = {}
 statuschange = []
-registerserverto = []
 
 if havetwisted:
 
     if havewx:
         reactor.registerWxApp(app)
 
-    if webport is not None :
-        try:
-            import runtime.NevowServer as NS
-            website = NS.RegisterWebsite(webport)
-            pyruntimevars["website"] = website
-            statuschange.append(NS.website_statuslistener_factory(website))
-        except Exception, e:
-            print "Nevow Web service failed.", e
-
-    if wampconf is not None :
-        try:
-            import runtime.WampClient as WC
-            WC.RegisterWampClient(wampconf)
-            pyruntimevars["wampsession"] = WC.GetSession
-            registerserverto.append(WC.SetServer)
-        except Exception, e:
-            print "WAMP client startup failed.", e
-
 if havewx:
     from threading import Semaphore
     wx_eval_lock = Semaphore(0)
@@ -495,8 +476,6 @@
                         WorkingDir, argv, autostart,
                         statuschange, pyruntimevars=pyruntimevars)
 
-for registrar in registerserverto :
-    registrar(pyroserver)
 
 # Exception hooks s
 import threading, traceback
@@ -523,12 +502,45 @@
     threading.Thread.__init__ = init
 installThreadExcepthook()
 
+if havetwisted:
+    if webport is not None :
+        try:
+            import runtime.NevowServer as NS
+        except Exception, e:
+            print "Nevow/Athena import failed :", e
+            webport = None
+
+    if wampconf is not None :
+        try:
+            import runtime.WampClient as WC
+        except Exception, e:
+            print "WAMP import failed :", e
+            wampconf = None
+
 # Load extensions
 for extfilename in extensions:
     extension_folder = os.path.split(os.path.realpath(extfilename))[0]
     sys.path.append(extension_folder)
     execfile(extfilename, locals())
 
+if havetwisted:
+    if webport is not None :
+        try:
+            website = NS.RegisterWebsite(webport)
+            pyruntimevars["website"] = website
+            statuschange.append(NS.website_statuslistener_factory(website))
+        except Exception, e:
+            print "Nevow Web service failed.", e
+
+    if wampconf is not None :
+        try:
+            WC.RegisterWampClient(wampconf)
+            pyruntimevars["wampsession"] = WC.GetSession
+            WC.SetServer(pyroserver)
+        except Exception, e:
+            print "WAMP client startup failed.", e
+
+
 if havetwisted or havewx:
     pyro_thread=Thread(target=pyroserver.Loop)
     pyro_thread.start()