Changeset 89
- Timestamp:
- 10/02/07 21:02:19 (1 year ago)
- Files:
-
- projects/AsynCluster/trunk/asyncluster/master/control.py (modified) (1 diff)
- projects/AsynCluster/trunk/asyncluster/ndm/gui.py (modified) (2 diffs)
- projects/AsynCluster/trunk/asyncluster/ndm/main.py (modified) (7 diffs)
- projects/AsynCluster/trunk/console (modified) (1 diff)
- projects/AsynCluster/trunk/coreworker (added)
- projects/AsynCluster/trunk/ndm (modified) (1 diff)
- projects/AsynCluster/trunk/setup.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
projects/AsynCluster/trunk/asyncluster/master/control.py
r87 r89 329 329 return self.ctl.jobber.run(jobID, callName, *args, **kw) 330 330 331 331 def remote_cancelJob(self, jobID): 332 """ 333 """ 334 return self.ctl.jobber.cancel(jobID) projects/AsynCluster/trunk/asyncluster/ndm/gui.py
r16 r89 220 220 def wmStop(self): 221 221 """ 222 Kills the window manager process, if it's running. 222 223 """ 223 224 if hasattr(self, 'process'): … … 226 227 os.system("killall --user %s" % self.user) 227 228 util.log("Killed all user processes") 229 230 def closeEvent(self, event): 231 """ 232 Called when a session window has been closed. 233 """ 234 if hasattr(self, 'process'): 235 self.wmStop() 228 236 229 237 projects/AsynCluster/trunk/asyncluster/ndm/main.py
r87 r89 30 30 31 31 import os 32 import configobj33 32 from twisted.internet import defer 34 35 # Project imports36 import client37 33 38 34 … … 51 47 """ 52 48 def __init__(self): 53 # The Twisted reactor, gui-integrated or not 54 from twisted.internet import reactor 55 reactor.callWhenRunning(self.startup) 56 self.reactor = reactor 57 # Generic setup 58 self.config = configobj.ConfigObj(CONFIG_PATH) 59 self.client = client.Client(self) 60 self.activeUser = None 49 # The Twisted reactor, with no GUI integration needed 50 from twisted.internet import reactor; self.reactor = reactor 61 51 # Go! 62 reactor.run() 52 self.reactor.callWhenRunning(self.startup) 53 self.reactor.run() 63 54 64 55 def gotConnected(self, sessionMgr): … … 69 60 70 61 def startup(self): 62 import configobj, client 63 self.config = configobj.ConfigObj(CONFIG_PATH) 64 self.client = client.Client(self) 65 self.activeUser = None 71 66 self.client.connect().addCallback(self.gotConnected) 72 67 … … 76 71 return d 77 72 78 def gotSessionAnswer(self, approved):79 """80 Session begin callback for all clients.81 """82 if approved:83 self.activeUser = user84 d = self.sessionMgr.callRemote('timeLeft')85 d.addCallback(self.sessionUpdate)86 return d87 88 73 def sessionBegin(self, user, password): 89 74 """ … … 91 76 authenticated with the supplied I{password}. 92 77 """ 78 def gotSessionAnswer(approved): 79 if approved: 80 if hasattr(self, 'loginWindow'): 81 self.loginWindow.hide() 82 self.sessionWindow = self.gui.SessionWindow(self, user) 83 self.sessionWindow.show() 84 self.activeUser = user 85 d = self.sessionMgr.callRemote('timeLeft') 86 d.addCallback(self.sessionUpdate) 87 return d 88 93 89 d = self.sessionMgr.callRemote('begin', user, password) 94 d.addCallback( self.gotSessionAnswer)90 d.addCallback(gotSessionAnswer) 95 91 return d 96 92 … … 125 121 self.app = QApplication([]) 126 122 qt4reactor.install(self.app) 123 # Now get the regular reactor 124 from twisted.internet import reactor; self.reactor = reactor 127 125 # The gui module... 128 126 import gui; self.gui = gui 129 # Now do the rest... 130 BaseManager.__init__(self) 127 # Go! 128 self.reactor.callWhenRunning(self.startup) 129 self.reactor.run() 131 130 132 131 def gotConnected(self, sessionMgr): … … 136 135 self.sessionMgr = sessionMgr 137 136 self.loginWindow = self.gui.LoginWindow(self) 138 139 def gotSessionAnswer(self, approved):140 """141 Session begin callback for GUI clients.142 """143 if approved:144 self.loginWindow.hide()145 self.sessionWindow = self.gui.SessionWindow(self, user)146 self.sessionWindow.show()147 return BaseManager.gotSessionAnswer(self, approved)148 137 149 138 def sessionEnd(self, callServer=True): projects/AsynCluster/trunk/console
r88 r89 410 410 class UserInterface(TerminalProtocol): 411 411 """ 412 Set up an input area and an output area for a chat client.412 Set up an input area and an output area for the console. 413 413 """ 414 414 width, height = 80, 24 projects/AsynCluster/trunk/ndm
r87 r89 39 39 then 40 40 # Starts the Python interpreter as Xinit's sole X client 41 exec python -c 41 exec python -c \ 42 42 "from asyncluster.ndm import main; main.GuiManager()" \ 43 43 2>/dev/null projects/AsynCluster/trunk/setup.py
r87 r89 49 49 'install_requires':required, 50 50 'packages':find_packages(exclude=["*.test"]), 51 'scripts':['ndm', 'console' ],51 'scripts':['ndm', 'console', 'coreworker'], 52 52 53 53 'zip_safe':True
