Changeset 1917

Show
Ignore:
Timestamp:
08/30/08 18:53:37 (3 months ago)
Author:
alo
Message:

--

Files:

Legend:

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

    r1916 r1917  
    112008-08-30  Alvaro Lopez Ortega  <alvaro@alobbs.com> 
     2 
     3        * admin/ModuleAdmin.py, admin/PageEntry.py, admin/server.py, 
     4        admin/ModuleRedir.py, admin/ModuleDirlist.py, 
     5        admin/ModuleHandler.py, admin/Module.py, admin/ModuleFile.py, 
     6        admin/ModuleServerInfo.py, admin/ModuleCustomError.py, 
     7        admin/ModuleScgi.py, admin/ModuleCgi.py, admin/ModuleCommon.py, 
     8        admin/ModuleFcgi.py, admin/PageVServer.py, admin/RuleList.py, 
     9        admin/ModuleMirror.py: Hides the Document Root entry box depending 
     10        on the case. There were a few handler with which did not make 
     11        sense to show it such as FastCGI, SCGI, redirections, server info, 
     12        etc. 
    213 
    314        * admin/config.py: Adds a couple of convenience methods and 
  • cherokee/trunk/admin/Module.py

    r1596 r1917  
    99        self.submit_url = submit_url 
    1010 
    11 def module_obj_factory (name, cfg, prefix, submit_url, **kwargs): 
     11def module_obj_factory_detailed (mod_type, name, cfg, prefix, submit_url, **kwargs): 
    1212    # Assemble module name 
    1313    mod_name = reduce (lambda x,y: x+y, map(lambda x: x.capitalize(), name.split('_'))) 
    1414 
    1515    # Load the module source file 
    16     mod = imp.load_source (name, "Module%s.py" % (mod_name)) 
     16    mod = imp.load_source (name, "%s%s.py" % (mod_type, mod_name)) 
    1717    sys.modules[name] = mod 
    1818 
    1919    # Instance the object 
    20     src = "mod_obj = mod.Module%s(cfg, prefix, submit_url)" % (mod_name) 
     20    src = "mod_obj = mod.%s%s(cfg, prefix, submit_url)" % (mod_type, mod_name) 
    2121    exec(src) 
    2222 
     
    2626 
    2727    return mod_obj 
     28 
     29def module_obj_factory (name, cfg, prefix, submit_url, **kwargs): 
     30    return module_obj_factory_detailed ("Module", name, cfg, prefix, submit_url, **kwargs) 
    2831 
    2932def modules_available (module_list): 
     
    3538        plugin, name = entry 
    3639 
    37         if not len(plugin) or \ 
    38            cherokee_has_plugin (plugin): 
     40        # Add default options 
     41        if not len(plugin): 
     42            new_module_list.append(entry) 
     43 
     44        # Is it available? 
     45        if cherokee_has_plugin (plugin): 
    3946            new_module_list.append(entry) 
    4047 
  • cherokee/trunk/admin/ModuleAdmin.py

    r1116 r1917  
    11from Form import * 
    2 from Module import * 
     2from ModuleHandler import * 
    33 
    4 class ModuleAdmin (Module, FormHelper): 
     4class ModuleAdmin (ModuleHandler): 
    55    PROPERTIES = [] 
    66 
    77    def __init__ (self, cfg, prefix, submit): 
    8         Module.__init__ (self, 'admin', cfg, prefix, submit) 
    9         FormHelper.__init__ (self, 'admin', cfg) 
     8        ModuleHandler.__init__ (self, 'admin', cfg, prefix, submit) 
     9        self.show_document_root = False 
    1010 
    1111    def _op_render (self): 
  • cherokee/trunk/admin/ModuleCgi.py

    r1915 r1917  
    1 from Form import * 
    21from Table import * 
    3 from Module import * 
     2from ModuleHandler import * 
    43from validations import * 
    54 
     
    1110NOTE_XSENDFILE     = 'Allow the use of the non-standard X-Sendfile header.' 
    1211 
    13 class ModuleCgiBase (Module, FormHelper): 
     12class ModuleCgiBase (ModuleHandler): 
    1413    PROPERTIES = [ 
    1514        'script_alias', 
     
    2221 
    2322    def __init__ (self, cfg, prefix, name, submit_url): 
    24         FormHelper.__init__ (self, name, cfg) 
    25         Module.__init__ (self, name, cfg, prefix, submit_url) 
     23        ModuleHandler.__init__ (self, name, cfg, prefix, submit_url) 
    2624 
    2725        self.fixed_check_file  = None 
  • cherokee/trunk/admin/ModuleCommon.py

    r1415 r1917  
    22from Table import * 
    33 
     4from ModuleHandler import * 
    45from ModuleFile import * 
    56from ModuleDirlist import * 
     
    78NOTE_PATHINFO = "Allow extra tailing paths" 
    89 
    9 class ModuleCommon (Module, FormHelper): 
     10class ModuleCommon (ModuleHandler): 
    1011    PROPERTIES = ModuleFile.PROPERTIES + ModuleDirlist.PROPERTIES + [ 
    1112        'allow_pathinfo' 
     
    1314 
    1415    def __init__ (self, cfg, prefix, submit_url): 
    15         Module.__init__ (self, 'common', cfg, prefix, submit_url) 
    16         FormHelper.__init__ (self, 'common', cfg) 
     16        ModuleHandler.__init__ (self, 'common', cfg, prefix, submit_url) 
    1717 
    1818        self._file    = ModuleFile    (cfg, prefix, submit_url) 
  • cherokee/trunk/admin/ModuleCustomError.py

    r1887 r1917  
    11from Form import * 
    22from Table import * 
    3 from Module import * 
     3from ModuleHandler import * 
    44from consts import * 
    55 
    66NOTE_ERRORS = 'HTTP Error that you be used to reply the request.' 
    77 
    8 class ModuleCustomError (Module, FormHelper): 
     8class ModuleCustomError (ModuleHandler): 
    99    PROPERTIES = [] 
    1010 
    1111    def __init__ (self, cfg, prefix, submit_url): 
    12         Module.__init__ (self, 'custom_error', cfg, prefix, submit_url) 
    13         FormHelper.__init__ (self, 'custom_error', cfg) 
     12        ModuleHandler.__init__ (self, 'custom_error', cfg, prefix, submit_url) 
     13        self.show_document_root = False 
    1414 
    1515    def _op_render (self): 
  • cherokee/trunk/admin/ModuleDirlist.py

    r1415 r1917  
    44from Form import * 
    55from Table import * 
    6 from Module import * 
     6from ModuleHandler import * 
    77from configured import * 
    88 
     
    1818NOTE_NOTICE_FILES = "List of notice files to be inserted." 
    1919 
    20 class ModuleDirlist (Module, FormHelper): 
     20class ModuleDirlist (ModuleHandler): 
    2121    PROPERTIES = [ 
    2222        'size', 'date', 
     
    2727 
    2828    def __init__ (self, cfg, prefix, submit_url): 
    29         Module.__init__ (self, 'dirlist', cfg, prefix, submit_url) 
    30         FormHelper.__init__ (self, 'dirlist', cfg) 
     29        ModuleHandler.__init__ (self, 'dirlist', cfg, prefix, submit_url) 
    3130 
    3231    def _op_render (self): 
  • cherokee/trunk/admin/ModuleFcgi.py

    r1915 r1917  
    1616        ModuleCgiBase.__init__ (self, cfg, prefix, 'fcgi', submit) 
    1717 
    18         self.fixed_check_file  = "0" 
    19         self.show_script_alias = False 
    20         self.show_change_uid   = False 
     18        self.fixed_check_file   = "0" 
     19        self.show_script_alias  = False 
     20        self.show_change_uid    = False 
     21        self.show_document_root = False 
    2122 
    2223    def _op_render (self): 
  • cherokee/trunk/admin/ModuleFile.py

    r1415 r1917  
    11from Form import * 
    22from Table import * 
    3 from Module import * 
     3from ModuleHandler import * 
    44 
    55NOTE_IO_CACHE = 'Enables an internal I/O cache that improves performance.' 
    66 
    7 class ModuleFile (Module, FormHelper): 
     7class ModuleFile (ModuleHandler): 
    88    PROPERTIES = [ 
    99        'iocache' 
     
    1111 
    1212    def __init__ (self, cfg, prefix, submit_url): 
    13         Module.__init__ (self, 'file', cfg, prefix, submit_url) 
    14         FormHelper.__init__ (self, 'file', cfg) 
     13        ModuleHandler.__init__ (self, 'file', cfg, prefix, submit_url) 
    1514 
    1615    def _op_render (self): 
  • cherokee/trunk/admin/ModuleMirror.py

    r1791 r1917  
    11from Form import * 
    22from Table import * 
    3 from Module import * 
     3from ModuleHandler import * 
    44from validations import * 
    55from consts import * 
    66from ModuleBalancer import * 
    77 
    8 class ModuleMirror (Module, FormHelper): 
     8class ModuleMirror (ModuleHandler): 
    99    PROPERTIES = [ 
    1010        'balancer' 
     
    1212 
    1313    def __init__ (self, cfg, prefix, submit_url): 
    14         FormHelper.__init__ (self, 'mirror', cfg
    15         Module.__init__ (self, 'mirror', cfg, prefix, submit_url) 
     14        ModuleHandler.__init__ (self, 'mirror', cfg, prefix, submit_url
     15        self.show_document_root = False 
    1616 
    1717    def _op_render (self): 
  • cherokee/trunk/admin/ModuleRedir.py

    r1752 r1917  
    11from Form import * 
    22from Table import * 
    3 from Module import * 
     3from ModuleHandler import * 
    44from consts import * 
    55 
     
    88NOTE_SUBSTITUTION = "Target address. It can use Regular Expression substitution sub-strings." 
    99 
    10 class ModuleRedir (Module, FormHelper): 
     10class ModuleRedir (ModuleHandler): 
    1111    PROPERTIES = [ 
    1212        "rewrite" 
     
    1414 
    1515    def __init__ (self, cfg, prefix, submit_url): 
    16         Module.__init__ (self, 'redir', cfg, prefix, submit_url) 
    17         FormHelper.__init__ (self, 'redir', cfg) 
     16        ModuleHandler.__init__ (self, 'redir', cfg, prefix, submit_url) 
     17        self.show_document_root = False 
    1818 
    1919    def _op_render (self): 
  • cherokee/trunk/admin/ModuleScgi.py

    r1915 r1917  
    1616        ModuleCgiBase.__init__ (self, cfg, prefix, 'scgi', submit) 
    1717 
    18         self.fixed_check_file  = "0" 
    19         self.show_script_alias = False 
    20         self.show_change_uid   = False 
     18        self.fixed_check_file   = "0" 
     19        self.show_script_alias  = False 
     20        self.show_change_uid    = False 
     21        self.show_document_root = False 
    2122 
    2223    def _op_render (self): 
  • cherokee/trunk/admin/ModuleServerInfo.py

    r1795 r1917  
    11from Form import * 
    22from Table import * 
    3 from Module import * 
     3from ModuleHandler import * 
    44 
    55NOTE_INFORMATION = 'Which information should be shown.' 
     
    1111] 
    1212 
    13 class ModuleServerInfo (Module, FormHelper): 
     13class ModuleServerInfo (ModuleHandler): 
    1414    PROPERTIES = [] 
    1515 
    1616    def __init__ (self, cfg, prefix, submit_url): 
    17         Module.__init__ (self, 'server_info', cfg, prefix, submit_url) 
    18         FormHelper.__init__ (self, 'server_info', cfg) 
     17        ModuleHandler.__init__ (self, 'server_info', cfg, prefix, submit_url) 
     18        self.show_document_root = False 
    1919 
    2020    def _op_render (self): 
  • cherokee/trunk/admin/PageEntry.py

    r1885 r1917  
    3737    def _parse_uri (self, uri): 
    3838        assert (len(uri) > 1) 
    39         assert ("prio" in uri) 
     39        assert ("rule" in uri) 
    4040         
    4141        # Parse the URL 
     
    4848            self._priorities  = RuleList (self._cfg, 'vserver!%s!user_dir!rule'%(self._host)) 
    4949            self._entry       = self._priorities[int(self._prio)] 
    50             url = '/vserver/%s/userdir/prio/%s' % (self._host, self._prio) 
     50            url = '/vserver/%s/userdir/rule/%s' % (self._host, self._prio) 
    5151        else: 
    5252            self._host        = temp[1] 
     
    5454            self._priorities  = RuleList (self._cfg, 'vserver!%s!rule'%(self._host)) 
    5555            self._entry       = self._priorities[int(self._prio)] 
    56             url = '/vserver/%s/prio/%s' % (self._host, self._prio) 
     56            url = '/vserver/%s/rule/%s' % (self._host, self._prio) 
    5757 
    5858        # Set the submit URL 
     
    125125        e = self.AddPropOptions_Reload (table, 'Handler', '%s!handler'%(pre), 
    126126                                        modules_available(HANDLERS), NOTE_HANDLER) 
    127         self.AddPropEntry (table, 'Document Root', '%s!document_root'%(pre), NOTE_DOCUMENT_ROOT) 
     127 
     128        props = self._get_handler_properties() 
     129        if props and props.show_document_root: 
     130            self.AddPropEntry (table, 'Document Root', '%s!document_root'%(pre), NOTE_DOCUMENT_ROOT) 
    128131 
    129132        if e: 
     
    143146        return form.Render(txt) 
    144147 
    145     def _render_handler_properties (self): 
     148    def _get_handler_properties (self): 
    146149        pre  = "%s!handler" % (self._conf_prefix) 
    147150        name = self._cfg.get_val(pre) 
     151        if not name: 
     152            return None 
    148153 
    149154        try: 
    150155            props = module_obj_factory (name, self._cfg, pre, self.submit_url) 
    151156        except IOError: 
    152             return "Couldn't load the properties module" 
    153         return props._op_render() 
     157            return None 
     158        return props 
    154159 
    155160    def _render_rule (self): 
  • cherokee/trunk/admin/PageVServer.py

    r1845 r1917  
    156156 
    157157        # Get to the details page 
    158         return "%s/prio/%d" % (url_prefix, priority) 
     158        return "%s/rule/%d" % (url_prefix, priority) 
    159159 
    160160    def _op_render_vserver_details (self, host): 
     
    287287 
    288288            if _type != 'default': 
    289                 link     = '<a href="%s/prio/%s">%s</a>' % (url_prefix, prio, name) 
     289                link     = '<a href="%s/rule/%s">%s</a>' % (url_prefix, prio, name) 
    290290                js       = "post_del_key('%s', '%s');" % (self.submit_ajax_url, pre) 
    291291                final    = self.InstanceCheckbox ('%s!match!final'%(pre), True, quiet=True) 
     
    293293                extra    = '' 
    294294            else: 
    295                 link     = '<a href="%s/prio/%s">Default</a>' % (url_prefix, prio) 
     295                link     = '<a href="%s/rule/%s">Default</a>' % (url_prefix, prio) 
    296296                extra    = ' NoDrag="1" NoDrop="1"' 
    297297                final    = self.HiddenInput ('%s!match!final'%(pre), "1") 
  • cherokee/trunk/admin/RuleList.py

    r1722 r1917  
    5353 
    5454    def get_highest_priority(self): 
    55         keys = self._cfg[self._cfg_pre].keys(
     55        keys = self._cfg.keys(self._cfg_pre
    5656        if not keys: 
    5757            return 100 
  • cherokee/trunk/admin/server.py

    r1784 r1917  
    2828from PageError import * 
    2929from PageAjaxUpdate import * 
     30from PageWizard import * 
    3031from CherokeeManagement import * 
    3132 
     
    9091            page = PageVServers(cfg) 
    9192        elif uri.startswith('/vserver/'): 
    92             if "/prio/" in uri: 
     93            if "/rule/" in uri: 
    9394                page = PageEntry(cfg) 
    9495            else: 
    9596                page = PageVServer(cfg) 
     97        elif uri.startswith('/wizard/'): 
     98            page = PageWizard(cfg) 
    9699        elif uri.startswith('/apply'): 
    97100            self.handle_post()