Changeset 1784

Show
Ignore:
Timestamp:
08/12/08 17:01:28 (3 months ago)
Author:
alo
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cherokee/trunk/ChangeLog

    r1782 r1784  
    112008-08-12  Alvaro Lopez Ortega  <alvaro@alobbs.com> 
     2 
     3        * admin/pyscgi.py, admin/server.py, admin/Page.py, 
     4        admin/CherokeeManagement.py: Adds a option in the left hand menu 
     5        bar to allow users to reset the server at the same time that the 
     6        new configuration is written. 
    27 
    38        * admin/server.py (main): It should only bind to localhost. Fixes 
  • cherokee/trunk/admin/CherokeeManagement.py

    r1715 r1784  
    4444    cherokee_management = None 
    4545 
    46  
    4746# Cherokee Management class 
    4847# 
     
    5655    # 
    5756 
    58     def save (self, restart=True): 
     57    def save (self, restart=None): 
    5958        self._cfg.save() 
    60         if restart: 
     59 
     60        if not restart: 
     61            return 
     62        if restart.lower() == 'graceful': 
     63            self._restart (graceful=True) 
     64        else: 
    6165            self._restart() 
    6266 
     
    146150        return self.__read_pid_file (pid_file) 
    147151 
    148     def _restart (self): 
     152    def _restart (self, graceful): 
    149153        if not self._pid: 
    150154            return 
    151155        try: 
    152             os.kill (self._pid, signal.SIGUSR1) 
     156            if graceful: 
     157                os.kill (self._pid, signal.SIGHUP) 
     158            else: 
     159                os.kill (self._pid, signal.SIGUSR1) 
    153160        except: 
    154161            pass 
  • cherokee/trunk/admin/Page.py

    r1104 r1784  
    33from Entry import * 
    44from configured import * 
     5from CherokeeManagement import * 
    56         
    67PAGE_BASIC_LAYOUT = """ 
     
    4546 
    4647<br /> 
     48 
     49<h2>Save Changes</h2> 
     50 
     51<div style="padding-top: 2px;"> 
     52 <p>%(menu_save_desc)s</p> 
     53</div> 
     54 
    4755<form id="form-apply" action="/apply" method="post"> 
    48  <div style="float: center;"> 
    49   <a class="button" href="#" onclick="this.blur(); $('#form-apply').submit(); return false;"><span>Apply</span></a> 
     56 %(menu_save_dropdown)s 
     57 
     58 <div style="float: center; padding-top: 4px;"> 
     59  <a class="button" href="#" onclick="this.blur(); $('#form-apply').submit(); return false;"><span>Save</span></a> 
    5060 </div> 
    5161</form> 
     62 
     63""" 
     64 
     65MENU_SAVE_IS_ALIVE = """ 
     66  <div style="padding-top: 2px;"> 
     67    <select name="restart"> 
     68      <option value="graceful">Graceful restart</option> 
     69      <option value="hard">Hard restart</option> 
     70      <option value="no">Do not restart</option> 
     71    </select> 
     72  </div> 
    5273""" 
    5374 
     
    7697        Page.__init__ (self, id, cfg) 
    7798 
     99        manager = cherokee_management_get (cfg) 
     100        if manager.is_alive(): 
     101            self.AddMacroContent ('menu_save_dropdown', MENU_SAVE_IS_ALIVE) 
     102            self.AddMacroContent ('menu_save_desc', 'Commit to disk and apply changes to the running server') 
     103        else: 
     104            self.AddMacroContent ('menu_save_dropdown', '') 
     105            self.AddMacroContent ('menu_save_desc', 'Commit all the changes permanently') 
     106 
    78107        self.AddMacroContent ('body', PAGE_MENU_LAYOUT) 
    79108        self.AddMacroContent ('menu', PAGE_MENU_MENU) 
    80  
  • cherokee/trunk/admin/pyscgi.py

    r1326 r1784  
    4242import sys 
    4343 
    44 __version__ = '1.6
     44__version__ = '1.7
    4545__author__  = 'Alvaro Lopez Ortega' 
    4646 
     
    5454    def __safe_read (self, lenght): 
    5555         while True:  
    56             try: 
    57                 return self.rfile.read(lenght) 
    58             except socket.error, (err, strerr): 
    59                 if err == errno.EAGAIN or \ 
    60                    err == errno.EWOULDBLOCK or \ 
    61                    err == errno.EINPROGRESS: 
    62                     continue 
    63             raise 
     56             try: 
     57                 chunk = self.rfile.read(lenght) 
     58                 return chunk 
     59             except socket.error, (err, strerr): 
     60                 if err == errno.EAGAIN or \ 
     61                    err == errno.EWOULDBLOCK or \ 
     62                    err == errno.EINPROGRESS: 
     63                     if chunk: 
     64                         return chunk 
     65                     continue 
     66             raise 
    6467 
    6568    def send(self, buf): 
     
    111114        if not self.env.has_key('CONTENT_LENGTH'): 
    112115            return 
     116        if self.post: 
     117            return 
    113118        length = int(self.env['CONTENT_LENGTH']) 
    114119        self.post = self.__safe_read(length) 
  • cherokee/trunk/admin/server.py

    r1782 r1784  
    9595                page = PageVServer(cfg) 
    9696        elif uri.startswith('/apply'): 
    97             manager = cherokee_management_get (cfg) 
    98             manager.save() 
     97            self.handle_post() 
     98            post = Post(self.post) 
     99  
     100            manager = cherokee_management_get (cfg)             
     101            manager.save (restart = post.get_val('restart')) 
    99102            cherokee_management_reset() 
    100103            body = "/" 
     
    141144        content = 'Status: %s\r\n' % (status) + \ 
    142145                  headers + '\r\n' + body 
    143  
    144146        return self.send (content) 
    145147 
     
    172174    cfg = Config(cfg_file) 
    173175     
    174     print ("Server %s running.. PID=%d" % (VERSION, os.getpid())) 
     176    print ("Server %s running.. PID=%d Port=%d" % (VERSION, os.getpid(), scgi_port)) 
    175177 
    176178    # Iterate until the user exists