Changeset 5046:f7fe8b5cdc03


Ignore:
Timestamp:
06/17/07 19:53:07 (6 years ago)
Author:
Bobby Moretti <moretti@…>
Branch:
default
Parents:
5045:1d593326eff1 (diff), 5027:f7af38c4bdc1 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merged in William's and Tom's stuff

Location:
sage/server/notebook
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sage/server/notebook/notebook.py

    r5027 r5030  
    946946        return head 
    947947 
    948     def html_login(self): 
    949         return """ 
    950         <html><body> 
    951 <form method="POST" action="/login"> 
    952 Username: <input type="text" name="email" size="15" /> 
    953 Password: <input type="password" name="password" size="15" /> 
    954 <br /> 
    955 <div align="center"> 
    956 <p><input type="submit" value="Login" /></p>  </div> </form><br /><br /> 
    957 <a href='/register'>Register an account</a> 
    958 </body> 
    959 </html> 
    960 """ 
     948#    def html_login(self): 
     949#        return """ 
     950#        <html><body> 
     951#<form method="POST" action="/login"> 
     952#Username: <input type="text" name="email" size="15" /> 
     953#Password: <input type="password" name="password" size="15" /> 
     954#<br /> 
     955#<div align="center"> 
     956#<p><input type="submit" value="Login" /></p>  </div> </form><br /><br /> 
     957#<a href='/register'>Register an account</a> 
     958#</body> 
     959#</html> 
     960#""" 
    961961 
    962962    def _html_body(self, worksheet_id, show_debug=False, username=''): 
  • sage/server/notebook/notebook.py

    r5029 r5030  
    392392        self.__log_server = log_server #log all POST's and GET's 
    393393        self.__server_log = [] #server log list 
    394         W = self.create_new_worksheet('Worksheet 1') 
    395         self.__default_worksheet = W 
    396394        self.__show_debug = show_debug 
    397395        self.save() 
     
    424422    def set_server_pool(self, servers): 
    425423        self.__server_pool = servers 
     424 
     425    def get_ulimit(self): 
     426        try: 
     427            return self.__ulimit 
     428        except AttributeError: 
     429            self.__ulimit = '' 
     430            return '' 
     431 
     432    def set_ulimit(self, ulimit): 
     433        self.__ulimit = ulimit 
    426434 
    427435    def get_server(self): 
     
    617625        self.__show_debug = show_debug 
    618626 
    619     def default_worksheet(self): 
    620         return self.__default_worksheet 
    621  
    622627    def directory(self): 
    623628        if not os.path.exists(self.__dir): 
     
    793798            id -- something that identifies a worksheet. 
    794799                 string -- use worksheet with that name or filename. 
    795                  None -- use the default worksheet. 
    796800                 string int -- something that coerces to an integer; worksheet with that number 
    797801 
     
    799803            a worksheet. 
    800804        """ 
    801         if id is None: 
    802             return self.default_worksheet() 
    803805        try: 
    804806            id = int(id) 
     
    14281430import time 
    14291431 
    1430 def load_notebook(dir, server_pool=[], address=None, port=None, secure=None): 
     1432def load_notebook(dir, address=None, port=None, secure=None): 
    14311433    sobj = '%s/nb.sobj'%dir 
    14321434    if os.path.exists(sobj): 
     
    14491451        nb.set_not_computing() 
    14501452    else: 
    1451         nb = Notebook(dir,server_pool=server_pool) 
     1453        nb = Notebook(dir) 
    14521454 
    14531455    nb.address = address 
  • sage/server/notebook/twist.py

    r5027 r5030  
    1010 
    1111from sage.misc.misc import SAGE_EXTCODE, DOT_SAGE, walltime 
    12 from sage.server.notebook.avatars import PasswordFileChecker 
    1312 
    1413p = os.path.join 
     
    728727        global username 
    729728        username = _username 
    730  
    731 class LogoutPage(resource.Resource): 
    732     def render(self, request): 
    733         s = """ 
    734         <html> 
    735         <h1>Thanks for logging out, come back soon!</h1> 
    736         </html> 
    737         """ 
    738         return http.Response(stream=s) 
    739          
     729     
    740730class AnonymousToplevel(Toplevel): 
     731    from sage.server.notebook.avatars import PasswordFileChecker 
    741732    addSlash = True 
    742733    child_register = RegistrationPage(PasswordFileChecker('passwords.txt')) 
    743734    child_confirm = RegConfirmation() 
    744     child_logout = LogoutPage() 
    745      
    746     def render(self, ctx): 
    747         return http.Response(stream = notebook.html_login()) 
     735 
     736    def render(self, ctx): 
     737        from sage.server.notebook.template import login_template 
     738        lt = login_template(foo='bobby') 
     739        return http.Response(stream = lt) 
    748740 
    749741class UserToplevel(Toplevel): 
     
    758750    child_upload = Upload() 
    759751    child_upload_worksheet = UploadWorksheet() 
    760     child_register = RegistrationPage(PasswordFileChecker('passwords.txt')) 
    761752     
    762753    def render(self, ctx): 
  • sage/server/notebook/twist.py

    r5029 r5030  
    738738        lt = login_template(foo='bobby') 
    739739        return http.Response(stream = lt) 
    740              
     740 
    741741class UserToplevel(Toplevel): 
    742742    addSlash = True 
     
    760760                             stream=s) 
    761761 
    762     def childFactory(self, request, name): 
    763         print request, name 
    764  
    765762class AdminToplevel(UserToplevel): 
    766  
     763     
    767764    def render(self, ctx): 
    768765        s = notebook.html(username=username, admin=True) 
     
    774771                             stream=s) 
    775772     
     773     
    776774 
    777775setattr(UserToplevel, 'child_help.html', Help()) 
     
    779777 
    780778notebook = None  # this gets set on startup. 
    781  
    782779username = None  # This is set when a request comes in. 
     780 
     781 
     782 
     783 
    783784 
    784785########################################################## 
     
    790791 
    791792private_pem = conf_path + '/private.pem' 
    792 public_pem = conf_path + '/public.pem' 
     793public_pem  = conf_path + '/public.pem' 
    793794 
    794795def notebook_setup(self=None): 
     
    813814             port_tries  = 0, 
    814815             secure      = True, 
    815              server_pool = None): 
     816             server_pool = None, 
     817             ulimit      = None): 
    816818    r""" 
    817819    Experimental twisted version of the SAGE Notebook. 
     
    836838                      as the notebook server user 
    837839                          cd; ssh-keygen -t rsa 
    838                       then putting ~/.ssh/id_rsa.pub as the file .ssh/authorized_keys2.  
     840                      then putting ~/.ssh/id_rsa.pub as the file .ssh/authorized_keys2. 
     841        ulimit      -- (default: None -- leave as is), if given and server_pool is also given, 
     842                      the worksheet processes are run with these constraints. 
     843                      See the ulimit documentation. Common options include: 
     844                           -f   The maximum size of files created by the shell 
     845                           -t   The maximum amount of cpu time in seconds.  
     846                           -u   The maximum number of processes available to a single user.  
     847                           -v   The maximum amount of virtual memory available to the process. 
     848                      Values are in 1024-byte increments, except for `-t', which is in seconds. 
     849                      Example:  ulimit="-v 400000 -t 30" 
    839850    """ 
    840851    if not os.path.exists(directory): 
     
    846857    # given options, then delete it.  The notebook is later 
    847858    # loaded by the *other* Twisted process below. 
    848     if not server_pool is None: 
     859    if not server_pool is None or not ulimit is None: 
    849860        from sage.server.notebook.notebook import load_notebook 
    850         nb = load_notebook(directory, server_pool=server_pool) 
     861        nb = load_notebook(directory) 
    851862        nb.set_server_pool(server_pool) 
     863        nb.set_ulimit(ulimit) 
    852864        nb.save() 
    853865        del nb 
     
    876888twist.notebook = notebook.load_notebook(%s) 
    877889import sage.server.notebook.worksheet as worksheet 
    878 worksheet.init_sage_prestart(twist.notebook.get_server()) 
     890worksheet.init_sage_prestart(twist.notebook.get_server(), twist.notebook.get_ulimit()) 
    879891 
    880892import signal, sys 
Note: See TracChangeset for help on using the changeset viewer.