You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-commits@quetz.apache.org by nl...@apache.org on 2005/05/01 14:03:04 UTC

svn commit: r165486 - /httpd/mod_python/trunk/lib/python/mod_python/testhandler.py

Author: nlehuen
Date: Sun May  1 05:03:04 2005
New Revision: 165486

URL: http://svn.apache.org/viewcvs?rev=165486&view=rev
Log: (empty)

Modified:
    httpd/mod_python/trunk/lib/python/mod_python/testhandler.py   (contents, props changed)

Modified: httpd/mod_python/trunk/lib/python/mod_python/testhandler.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/lib/python/mod_python/testhandler.py?rev=165486&r1=165485&r2=165486&view=diff
==============================================================================
--- httpd/mod_python/trunk/lib/python/mod_python/testhandler.py (original)
+++ httpd/mod_python/trunk/lib/python/mod_python/testhandler.py Sun May  1 05:03:04 2005
@@ -1,175 +1,175 @@
- #
- # Copyright 2004 Apache Software Foundation 
- # 
- # Licensed under the Apache License, Version 2.0 (the "License"); you
- # may not use this file except in compliance with the License.  You
- # may obtain a copy of the License at
- #
- #      http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- # implied.  See the License for the specific language governing
- # permissions and limitations under the License.
- #
- # Originally developed by Gregory Trubetskoy.
- #
- # $Id: Cookie.py 149291 2005-01-31 20:12:20Z nlehuen $
-
-"""
-
-This module is a mod_python handler that can be used to test the configuration.
-
-"""
-
-from mod_python import apache, util
-import sys, os.path
-
-class bounded_buffer(object):
-    """
-        This class implements a bounded buffer, i.e. a list that keeps the last
-        n lines. It doesn't use pop(0), which is costly.
-    
-    """
-    def __init__(self,size):
-        self.max_size = size
-        self.list = []
-        self.pos = 0
-    
-    def append(self,value):
-        if len(self.list)<self.max_size:
-            self.list.append(value)
-        else:
-            self.list[self.pos]=value
-        self.pos = (self.pos+1)%self.max_size
-    
-    def items(self):
-        return self.list[self.pos:]+self.list[:self.pos]
-
-    def __iter__(self):
-        return iter(self.items())
-
-def write_table(req,table):
-    req.write('<table border="1">')
-    req.write('<tr><th>Key</th><th>Value</th></tr>\n')
-    for key in table:
-        req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-            key,
-            table[key]
-        ))
-    req.write('</table>')
-
-def write_tree(req,tree,level):
-    for entry in tree:
-        if isinstance(entry,list):
-            write_tree(req,entry,level+1)
-        else:
-            req.write('    '*level)
-            req.write(' '.join(entry))
-            req.write('\n')
-
-def handler(req):
-    req.form = util.FieldStorage(req)
-    
-    if req.form.getfirst('view_log'):
-        log = file(os.path.join(apache.server_root(),req.server.error_fname),'rb')
-        lines = bounded_buffer(100)
-        for line in log:
-            lines.append(line)
-        log.close()
-        req.content_type='text/plain'
-        for line in lines:
-            req.write(line)
-        return apache.OK        
-
-    req.add_common_vars()
-    req.content_type = 'text/html'
-    req.write('<html><head><title>mod_python test page</title></head><body>\n')
-    
-    req.write('<h3>General information</h3>\n')
-    req.write('<table border="1">\n')
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Apache version',
-        req.subprocess_env.get('SERVER_SOFTWARE')
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Apache threaded MPM',
-        (
-            apache.mpm_query(apache.AP_MPMQ_IS_THREADED) and
-            'Yes, maximum %i threads / process'%
-            apache.mpm_query(apache.AP_MPMQ_MAX_THREADS)
-        ) or 'No (single thread MPM)'
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Apache forked MPM',
-        (
-            apache.mpm_query(apache.AP_MPMQ_IS_FORKED) and
-            'Yes, maximum %i processes'%
-            apache.mpm_query(apache.AP_MPMQ_MAX_DAEMONS)
-        ) or 'No (single process MPM)'
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Apache server root',
-        apache.server_root()
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Apache document root',
-        req.document_root()
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code> (<a href="?view_log=1" target="_new">view last 100 lines</a>)</td></tr>\n'%(
-        'Apache error log',
-        os.path.join(apache.server_root(),req.server.error_fname)
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Python sys.version',
-        sys.version
-    ))
-    req.write('<tr><td><code>%s</code></td><td><pre>%s</pre></td></tr>\n'%(
-        'Python sys.path',
-        '\n'.join(sys.path)
-    ))
-    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
-        'Python interpreter name',
-        req.interpreter
-    ))
-    req.write('<tr><td><code>mod_python.publisher available</code></td><td><code>')
-    try:
-        from mod_python import publisher
-        req.write('Yes')
-    except:
-        req.write('No')
-    req.write('</code></td></tr>\n')
-    req.write('<tr><td><code>mod_python.psp available</code></td><td><code>')
-    try:
-        from mod_python import psp
-        req.write('Yes')
-    except:
-        req.write('No')
-    req.write('</code></td></tr>\n')
-    req.write('</table>\n')
-
-    req.write('<h3>Request input headers</h3>\n')
-    write_table(req,req.headers_in)    
-
-    req.write('<h3>Request environment</h3>\n')
-    write_table(req,req.subprocess_env)    
-
-    req.write('<h3>Request configuration</h3>\n')
-    write_table(req,req.get_config())    
-
-    req.write('<h3>Request options</h3>\n')
-    write_table(req,req.get_options())    
-
-    req.write('<h3>Request notes</h3>\n')
-    write_table(req,req.notes)
-
-    req.write('<h3>Server configuration</h3>\n')
-    write_table(req,req.server.get_config())
-
-    req.write('<h3>Server configuration tree</h3>\n<pre>')
-    write_tree(req,apache.config_tree(),0)
-    req.write('</pre>\n')
-
-    req.write('</body></html>')
+ #
+ # Copyright 2004 Apache Software Foundation 
+ # 
+ # Licensed under the Apache License, Version 2.0 (the "License"); you
+ # may not use this file except in compliance with the License.  You
+ # may obtain a copy of the License at
+ #
+ #      http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ # implied.  See the License for the specific language governing
+ # permissions and limitations under the License.
+ #
+ # Originally developed by Gregory Trubetskoy.
+ #
+ # $Id$
+
+"""
+
+This module is a mod_python handler that can be used to test the configuration.
+
+"""
+
+from mod_python import apache, util
+import sys, os.path
+
+class bounded_buffer(object):
+    """
+        This class implements a bounded buffer, i.e. a list that keeps the last
+        n lines. It doesn't use pop(0), which is costly.
+    
+    """
+    def __init__(self,size):
+        self.max_size = size
+        self.list = []
+        self.pos = 0
+    
+    def append(self,value):
+        if len(self.list)<self.max_size:
+            self.list.append(value)
+        else:
+            self.list[self.pos]=value
+        self.pos = (self.pos+1)%self.max_size
+    
+    def items(self):
+        return self.list[self.pos:]+self.list[:self.pos]
+
+    def __iter__(self):
+        return iter(self.items())
+
+def write_table(req,table):
+    req.write('<table border="1">')
+    req.write('<tr><th>Key</th><th>Value</th></tr>\n')
+    for key in table:
+        req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+            key,
+            table[key]
+        ))
+    req.write('</table>')
+
+def write_tree(req,tree,level):
+    for entry in tree:
+        if isinstance(entry,list):
+            write_tree(req,entry,level+1)
+        else:
+            req.write('    '*level)
+            req.write(' '.join(entry))
+            req.write('\n')
+
+def handler(req):
+    req.form = util.FieldStorage(req)
+    
+    if req.form.getfirst('view_log'):
+        log = file(os.path.join(apache.server_root(),req.server.error_fname),'rb')
+        lines = bounded_buffer(100)
+        for line in log:
+            lines.append(line)
+        log.close()
+        req.content_type='text/plain'
+        for line in lines:
+            req.write(line)
+        return apache.OK        
+
+    req.add_common_vars()
+    req.content_type = 'text/html'
+    req.write('<html><head><title>mod_python test page</title></head><body>\n')
+    
+    req.write('<h3>General information</h3>\n')
+    req.write('<table border="1">\n')
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Apache version',
+        req.subprocess_env.get('SERVER_SOFTWARE')
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Apache threaded MPM',
+        (
+            apache.mpm_query(apache.AP_MPMQ_IS_THREADED) and
+            'Yes, maximum %i threads / process'%
+            apache.mpm_query(apache.AP_MPMQ_MAX_THREADS)
+        ) or 'No (single thread MPM)'
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Apache forked MPM',
+        (
+            apache.mpm_query(apache.AP_MPMQ_IS_FORKED) and
+            'Yes, maximum %i processes'%
+            apache.mpm_query(apache.AP_MPMQ_MAX_DAEMONS)
+        ) or 'No (single process MPM)'
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Apache server root',
+        apache.server_root()
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Apache document root',
+        req.document_root()
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code> (<a href="?view_log=1" target="_new">view last 100 lines</a>)</td></tr>\n'%(
+        'Apache error log',
+        os.path.join(apache.server_root(),req.server.error_fname)
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Python sys.version',
+        sys.version
+    ))
+    req.write('<tr><td><code>%s</code></td><td><pre>%s</pre></td></tr>\n'%(
+        'Python sys.path',
+        '\n'.join(sys.path)
+    ))
+    req.write('<tr><td><code>%s</code></td><td><code>%s</code></td></tr>\n'%(
+        'Python interpreter name',
+        req.interpreter
+    ))
+    req.write('<tr><td><code>mod_python.publisher available</code></td><td><code>')
+    try:
+        from mod_python import publisher
+        req.write('Yes')
+    except:
+        req.write('No')
+    req.write('</code></td></tr>\n')
+    req.write('<tr><td><code>mod_python.psp available</code></td><td><code>')
+    try:
+        from mod_python import psp
+        req.write('Yes')
+    except:
+        req.write('No')
+    req.write('</code></td></tr>\n')
+    req.write('</table>\n')
+
+    req.write('<h3>Request input headers</h3>\n')
+    write_table(req,req.headers_in)    
+
+    req.write('<h3>Request environment</h3>\n')
+    write_table(req,req.subprocess_env)    
+
+    req.write('<h3>Request configuration</h3>\n')
+    write_table(req,req.get_config())    
+
+    req.write('<h3>Request options</h3>\n')
+    write_table(req,req.get_options())    
+
+    req.write('<h3>Request notes</h3>\n')
+    write_table(req,req.notes)
+
+    req.write('<h3>Server configuration</h3>\n')
+    write_table(req,req.server.get_config())
+
+    req.write('<h3>Server configuration tree</h3>\n<pre>')
+    write_tree(req,apache.config_tree(),0)
+    req.write('</pre>\n')
+
+    req.write('</body></html>')
     return apache.OK

Propchange: httpd/mod_python/trunk/lib/python/mod_python/testhandler.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpd/mod_python/trunk/lib/python/mod_python/testhandler.py
------------------------------------------------------------------------------
    svn:keywords = Id