Changeset 89

Show
Ignore:
Timestamp:
10/02/07 21:02:19 (1 year ago)
Author:
edsuom
Message:

Got refactored gui/base classes for NDM working again; misc job control & worker stuff

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • projects/AsynCluster/trunk/asyncluster/master/control.py

    r87 r89  
    329329        return self.ctl.jobber.run(jobID, callName, *args, **kw) 
    330330 
    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  
    220220    def wmStop(self): 
    221221        """ 
     222        Kills the window manager process, if it's running. 
    222223        """ 
    223224        if hasattr(self, 'process'): 
     
    226227            os.system("killall --user %s" % self.user) 
    227228            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() 
    228236 
    229237 
  • projects/AsynCluster/trunk/asyncluster/ndm/main.py

    r87 r89  
    3030 
    3131import os 
    32 import configobj 
    3332from twisted.internet import defer 
    34  
    35 # Project imports 
    36 import client 
    3733 
    3834 
     
    5147    """ 
    5248    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 
    6151        # Go! 
    62         reactor.run() 
     52        self.reactor.callWhenRunning(self.startup) 
     53        self.reactor.run() 
    6354 
    6455    def gotConnected(self, sessionMgr): 
     
    6960 
    7061    def startup(self): 
     62        import configobj, client 
     63        self.config = configobj.ConfigObj(CONFIG_PATH) 
     64        self.client = client.Client(self) 
     65        self.activeUser = None 
    7166        self.client.connect().addCallback(self.gotConnected) 
    7267     
     
    7671        return d 
    7772 
    78     def gotSessionAnswer(self, approved): 
    79         """ 
    80         Session begin callback for all clients. 
    81         """ 
    82         if approved: 
    83             self.activeUser = user 
    84             d = self.sessionMgr.callRemote('timeLeft') 
    85             d.addCallback(self.sessionUpdate) 
    86             return d 
    87  
    8873    def sessionBegin(self, user, password): 
    8974        """ 
     
    9176        authenticated with the supplied I{password}. 
    9277        """ 
     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         
    9389        d = self.sessionMgr.callRemote('begin', user, password) 
    94         d.addCallback(self.gotSessionAnswer) 
     90        d.addCallback(gotSessionAnswer) 
    9591        return d 
    9692         
     
    125121        self.app = QApplication([]) 
    126122        qt4reactor.install(self.app) 
     123        # Now get the regular reactor 
     124        from twisted.internet import reactor; self.reactor = reactor 
    127125        # The gui module... 
    128126        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() 
    131130 
    132131    def gotConnected(self, sessionMgr): 
     
    136135        self.sessionMgr = sessionMgr 
    137136        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) 
    148137 
    149138    def sessionEnd(self, callServer=True): 
  • projects/AsynCluster/trunk/console

    r88 r89  
    410410class UserInterface(TerminalProtocol): 
    411411    """ 
    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
    413413    """ 
    414414    width, height = 80, 24 
  • projects/AsynCluster/trunk/ndm

    r87 r89  
    3939    then 
    4040    # Starts the Python interpreter as Xinit's sole X client 
    41     exec python -c 
     41    exec python -c \ 
    4242        "from asyncluster.ndm import main; main.GuiManager()" \ 
    4343        2>/dev/null 
  • projects/AsynCluster/trunk/setup.py

    r87 r89  
    4949      'install_requires':required, 
    5050      'packages':find_packages(exclude=["*.test"]), 
    51       'scripts':['ndm', 'console'], 
     51      'scripts':['ndm', 'console', 'coreworker'], 
    5252       
    5353      'zip_safe':True