Changeset 1917
- Timestamp:
- 08/30/08 18:53:37 (3 months ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/admin/Module.py (modified) (3 diffs)
- cherokee/trunk/admin/ModuleAdmin.py (modified) (1 diff)
- cherokee/trunk/admin/ModuleCgi.py (modified) (3 diffs)
- cherokee/trunk/admin/ModuleCommon.py (modified) (3 diffs)
- cherokee/trunk/admin/ModuleCustomError.py (modified) (1 diff)
- cherokee/trunk/admin/ModuleDirlist.py (modified) (3 diffs)
- cherokee/trunk/admin/ModuleFcgi.py (modified) (1 diff)
- cherokee/trunk/admin/ModuleFile.py (modified) (2 diffs)
- cherokee/trunk/admin/ModuleHandler.py (added)
- cherokee/trunk/admin/ModuleMirror.py (modified) (2 diffs)
- cherokee/trunk/admin/ModuleRedir.py (modified) (3 diffs)
- cherokee/trunk/admin/ModuleScgi.py (modified) (1 diff)
- cherokee/trunk/admin/ModuleServerInfo.py (modified) (2 diffs)
- cherokee/trunk/admin/PageEntry.py (modified) (5 diffs)
- cherokee/trunk/admin/PageVServer.py (modified) (3 diffs)
- cherokee/trunk/admin/RuleList.py (modified) (1 diff)
- cherokee/trunk/admin/server.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r1916 r1917 1 1 2008-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. 2 13 3 14 * admin/config.py: Adds a couple of convenience methods and cherokee/trunk/admin/Module.py
r1596 r1917 9 9 self.submit_url = submit_url 10 10 11 def module_obj_factory (name, cfg, prefix, submit_url, **kwargs):11 def module_obj_factory_detailed (mod_type, name, cfg, prefix, submit_url, **kwargs): 12 12 # Assemble module name 13 13 mod_name = reduce (lambda x,y: x+y, map(lambda x: x.capitalize(), name.split('_'))) 14 14 15 15 # 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)) 17 17 sys.modules[name] = mod 18 18 19 19 # 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) 21 21 exec(src) 22 22 … … 26 26 27 27 return mod_obj 28 29 def module_obj_factory (name, cfg, prefix, submit_url, **kwargs): 30 return module_obj_factory_detailed ("Module", name, cfg, prefix, submit_url, **kwargs) 28 31 29 32 def modules_available (module_list): … … 35 38 plugin, name = entry 36 39 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): 39 46 new_module_list.append(entry) 40 47 cherokee/trunk/admin/ModuleAdmin.py
r1116 r1917 1 1 from Form import * 2 from Module import *2 from ModuleHandler import * 3 3 4 class ModuleAdmin (Module , FormHelper):4 class ModuleAdmin (ModuleHandler): 5 5 PROPERTIES = [] 6 6 7 7 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 10 10 11 11 def _op_render (self): cherokee/trunk/admin/ModuleCgi.py
r1915 r1917 1 from Form import *2 1 from Table import * 3 from Module import *2 from ModuleHandler import * 4 3 from validations import * 5 4 … … 11 10 NOTE_XSENDFILE = 'Allow the use of the non-standard X-Sendfile header.' 12 11 13 class ModuleCgiBase (Module , FormHelper):12 class ModuleCgiBase (ModuleHandler): 14 13 PROPERTIES = [ 15 14 'script_alias', … … 22 21 23 22 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) 26 24 27 25 self.fixed_check_file = None cherokee/trunk/admin/ModuleCommon.py
r1415 r1917 2 2 from Table import * 3 3 4 from ModuleHandler import * 4 5 from ModuleFile import * 5 6 from ModuleDirlist import * … … 7 8 NOTE_PATHINFO = "Allow extra tailing paths" 8 9 9 class ModuleCommon (Module , FormHelper):10 class ModuleCommon (ModuleHandler): 10 11 PROPERTIES = ModuleFile.PROPERTIES + ModuleDirlist.PROPERTIES + [ 11 12 'allow_pathinfo' … … 13 14 14 15 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) 17 17 18 18 self._file = ModuleFile (cfg, prefix, submit_url) cherokee/trunk/admin/ModuleCustomError.py
r1887 r1917 1 1 from Form import * 2 2 from Table import * 3 from Module import *3 from ModuleHandler import * 4 4 from consts import * 5 5 6 6 NOTE_ERRORS = 'HTTP Error that you be used to reply the request.' 7 7 8 class ModuleCustomError (Module , FormHelper):8 class ModuleCustomError (ModuleHandler): 9 9 PROPERTIES = [] 10 10 11 11 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 14 14 15 15 def _op_render (self): cherokee/trunk/admin/ModuleDirlist.py
r1415 r1917 4 4 from Form import * 5 5 from Table import * 6 from Module import *6 from ModuleHandler import * 7 7 from configured import * 8 8 … … 18 18 NOTE_NOTICE_FILES = "List of notice files to be inserted." 19 19 20 class ModuleDirlist (Module , FormHelper):20 class ModuleDirlist (ModuleHandler): 21 21 PROPERTIES = [ 22 22 'size', 'date', … … 27 27 28 28 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) 31 30 32 31 def _op_render (self): cherokee/trunk/admin/ModuleFcgi.py
r1915 r1917 16 16 ModuleCgiBase.__init__ (self, cfg, prefix, 'fcgi', submit) 17 17 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 21 22 22 23 def _op_render (self): cherokee/trunk/admin/ModuleFile.py
r1415 r1917 1 1 from Form import * 2 2 from Table import * 3 from Module import *3 from ModuleHandler import * 4 4 5 5 NOTE_IO_CACHE = 'Enables an internal I/O cache that improves performance.' 6 6 7 class ModuleFile (Module , FormHelper):7 class ModuleFile (ModuleHandler): 8 8 PROPERTIES = [ 9 9 'iocache' … … 11 11 12 12 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) 15 14 16 15 def _op_render (self): cherokee/trunk/admin/ModuleMirror.py
r1791 r1917 1 1 from Form import * 2 2 from Table import * 3 from Module import *3 from ModuleHandler import * 4 4 from validations import * 5 5 from consts import * 6 6 from ModuleBalancer import * 7 7 8 class ModuleMirror (Module , FormHelper):8 class ModuleMirror (ModuleHandler): 9 9 PROPERTIES = [ 10 10 'balancer' … … 12 12 13 13 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 16 16 17 17 def _op_render (self): cherokee/trunk/admin/ModuleRedir.py
r1752 r1917 1 1 from Form import * 2 2 from Table import * 3 from Module import *3 from ModuleHandler import * 4 4 from consts import * 5 5 … … 8 8 NOTE_SUBSTITUTION = "Target address. It can use Regular Expression substitution sub-strings." 9 9 10 class ModuleRedir (Module , FormHelper):10 class ModuleRedir (ModuleHandler): 11 11 PROPERTIES = [ 12 12 "rewrite" … … 14 14 15 15 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 18 18 19 19 def _op_render (self): cherokee/trunk/admin/ModuleScgi.py
r1915 r1917 16 16 ModuleCgiBase.__init__ (self, cfg, prefix, 'scgi', submit) 17 17 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 21 22 22 23 def _op_render (self): cherokee/trunk/admin/ModuleServerInfo.py
r1795 r1917 1 1 from Form import * 2 2 from Table import * 3 from Module import *3 from ModuleHandler import * 4 4 5 5 NOTE_INFORMATION = 'Which information should be shown.' … … 11 11 ] 12 12 13 class ModuleServerInfo (Module , FormHelper):13 class ModuleServerInfo (ModuleHandler): 14 14 PROPERTIES = [] 15 15 16 16 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 19 19 20 20 def _op_render (self): cherokee/trunk/admin/PageEntry.py
r1885 r1917 37 37 def _parse_uri (self, uri): 38 38 assert (len(uri) > 1) 39 assert (" prio" in uri)39 assert ("rule" in uri) 40 40 41 41 # Parse the URL … … 48 48 self._priorities = RuleList (self._cfg, 'vserver!%s!user_dir!rule'%(self._host)) 49 49 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) 51 51 else: 52 52 self._host = temp[1] … … 54 54 self._priorities = RuleList (self._cfg, 'vserver!%s!rule'%(self._host)) 55 55 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) 57 57 58 58 # Set the submit URL … … 125 125 e = self.AddPropOptions_Reload (table, 'Handler', '%s!handler'%(pre), 126 126 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) 128 131 129 132 if e: … … 143 146 return form.Render(txt) 144 147 145 def _ render_handler_properties (self):148 def _get_handler_properties (self): 146 149 pre = "%s!handler" % (self._conf_prefix) 147 150 name = self._cfg.get_val(pre) 151 if not name: 152 return None 148 153 149 154 try: 150 155 props = module_obj_factory (name, self._cfg, pre, self.submit_url) 151 156 except IOError: 152 return "Couldn't load the properties module"153 return props ._op_render()157 return None 158 return props 154 159 155 160 def _render_rule (self): cherokee/trunk/admin/PageVServer.py
r1845 r1917 156 156 157 157 # Get to the details page 158 return "%s/ prio/%d" % (url_prefix, priority)158 return "%s/rule/%d" % (url_prefix, priority) 159 159 160 160 def _op_render_vserver_details (self, host): … … 287 287 288 288 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) 290 290 js = "post_del_key('%s', '%s');" % (self.submit_ajax_url, pre) 291 291 final = self.InstanceCheckbox ('%s!match!final'%(pre), True, quiet=True) … … 293 293 extra = '' 294 294 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) 296 296 extra = ' NoDrag="1" NoDrop="1"' 297 297 final = self.HiddenInput ('%s!match!final'%(pre), "1") cherokee/trunk/admin/RuleList.py
r1722 r1917 53 53 54 54 def get_highest_priority(self): 55 keys = self._cfg [self._cfg_pre].keys()55 keys = self._cfg.keys(self._cfg_pre) 56 56 if not keys: 57 57 return 100 cherokee/trunk/admin/server.py
r1784 r1917 28 28 from PageError import * 29 29 from PageAjaxUpdate import * 30 from PageWizard import * 30 31 from CherokeeManagement import * 31 32 … … 90 91 page = PageVServers(cfg) 91 92 elif uri.startswith('/vserver/'): 92 if "/ prio/" in uri:93 if "/rule/" in uri: 93 94 page = PageEntry(cfg) 94 95 else: 95 96 page = PageVServer(cfg) 97 elif uri.startswith('/wizard/'): 98 page = PageWizard(cfg) 96 99 elif uri.startswith('/apply'): 97 100 self.handle_post()