From: Tony Mack Date: Wed, 14 Oct 2009 00:27:49 +0000 (+0000) Subject: initial checkin of files necessary for deploying via apache mod_python X-Git-Tag: sfa-0.9-6~193 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=28042436af37a6700822081a99989ad6061dd9f5;p=sfa.git initial checkin of files necessary for deploying via apache mod_python --- diff --git a/sfa/server/SfaAggregateModPython.py b/sfa/server/SfaAggregateModPython.py new file mode 100755 index 00000000..892cf46b --- /dev/null +++ b/sfa/server/SfaAggregateModPython.py @@ -0,0 +1,69 @@ +# +# Apache mod_python interface +# +# Aaron Klingaman +# Mark Huang +# +# Copyright (C) 2004-2006 The Trustees of Princeton University +# + +import sys +import traceback +import xmlrpclib +from mod_python import apache + +from sfa.plc.api import GeniAPI + +api = GeniAPI(interface='aggregate') + +class unbuffered: + """ + Write to /var/log/httpd/error_log. See + + http://www.modpython.org/FAQ/faqw.py?req=edit&file=faq02.003.htp + """ + + def write(self, data): + sys.stderr.write(data) + sys.stderr.flush() + +#log = unbuffered() + +def handler(req): + try: + if req.method != "POST": + req.content_type = "text/html" + req.send_http_header() + req.write(""" + +SFA Aggregate API XML-RPC/SOAP Interface + +

SFA Aggregate API XML-RPC/SOAP Interface

+

Please use XML-RPC or SOAP to access the SFA API.

+ +""") + return apache.OK + + # Read request + request = req.read(int(req.headers_in['content-length'])) + + # mod_python < 3.2: The IP address portion of remote_addr is + # incorrect (always 0.0.0.0) when IPv6 is enabled. + # http://issues.apache.org/jira/browse/MODPYTHON-64?page=all + (remote_ip, remote_port) = req.connection.remote_addr + remote_addr = (req.connection.remote_ip, remote_port) + + # Handle request + response = api.handle(remote_addr, request) + + # Write response + req.content_type = "text/xml; charset=" + api.encoding + req.send_http_header() + req.write(response) + + return apache.OK + + except Exception, err: + # Log error in /var/log/httpd/(ssl_)?error_log + print >> log, err, traceback.format_exc() + return apache.HTTP_INTERNAL_SERVER_ERROR diff --git a/sfa/server/SfaRegistryModPython.py b/sfa/server/SfaRegistryModPython.py new file mode 100755 index 00000000..4c231929 --- /dev/null +++ b/sfa/server/SfaRegistryModPython.py @@ -0,0 +1,69 @@ +# +# Apache mod_python interface +# +# Aaron Klingaman +# Mark Huang +# +# Copyright (C) 2004-2006 The Trustees of Princeton University +# + +import sys +import traceback +import xmlrpclib +from mod_python import apache + +from sfa.plc.api import GeniAPI + +api = GeniAPI(interface='registry') + +class unbuffered: + """ + Write to /var/log/httpd/error_log. See + + http://www.modpython.org/FAQ/faqw.py?req=edit&file=faq02.003.htp + """ + + def write(self, data): + sys.stderr.write(data) + sys.stderr.flush() + +#log = unbuffered() + +def handler(req): + try: + if req.method != "POST": + req.content_type = "text/html" + req.send_http_header() + req.write(""" + +SFA Registry API XML-RPC/SOAP Interface + +

SFA Registry API XML-RPC/SOAP Interface

+

Please use XML-RPC or SOAP to access the SFA API.

+ +""") + return apache.OK + + # Read request + request = req.read(int(req.headers_in['content-length'])) + + # mod_python < 3.2: The IP address portion of remote_addr is + # incorrect (always 0.0.0.0) when IPv6 is enabled. + # http://issues.apache.org/jira/browse/MODPYTHON-64?page=all + (remote_ip, remote_port) = req.connection.remote_addr + remote_addr = (req.connection.remote_ip, remote_port) + + # Handle request + response = api.handle(remote_addr, request) + + # Write response + req.content_type = "text/xml; charset=" + api.encoding + req.send_http_header() + req.write(response) + + return apache.OK + + except Exception, err: + # Log error in /var/log/httpd/(ssl_)?error_log + print >> log, err, traceback.format_exc() + return apache.HTTP_INTERNAL_SERVER_ERROR diff --git a/sfa/server/SfaSliceMgrModPython.py b/sfa/server/SfaSliceMgrModPython.py new file mode 100755 index 00000000..7a7a8c6f --- /dev/null +++ b/sfa/server/SfaSliceMgrModPython.py @@ -0,0 +1,69 @@ +# +# Apache mod_python interface +# +# Aaron Klingaman +# Mark Huang +# +# Copyright (C) 2004-2006 The Trustees of Princeton University +# + +import sys +import traceback +import xmlrpclib +from mod_python import apache + +from sfa.plc.api import GeniAPI + +api = GeniAPI(interface='slicemgr') + +class unbuffered: + """ + Write to /var/log/httpd/error_log. See + + http://www.modpython.org/FAQ/faqw.py?req=edit&file=faq02.003.htp + """ + + def write(self, data): + sys.stderr.write(data) + sys.stderr.flush() + +#log = unbuffered() + +def handler(req): + try: + if req.method != "POST": + req.content_type = "text/html" + req.send_http_header() + req.write(""" + +SFA SliceMgr API XML-RPC/SOAP Interface + +

SFA SliceMgr API XML-RPC/SOAP Interface

+

Please use XML-RPC or SOAP to access the SFA API.

+ +""") + return apache.OK + + # Read request + request = req.read(int(req.headers_in['content-length'])) + + # mod_python < 3.2: The IP address portion of remote_addr is + # incorrect (always 0.0.0.0) when IPv6 is enabled. + # http://issues.apache.org/jira/browse/MODPYTHON-64?page=all + (remote_ip, remote_port) = req.connection.remote_addr + remote_addr = (req.connection.remote_ip, remote_port) + + # Handle request + response = api.handle(remote_addr, request) + + # Write response + req.content_type = "text/xml; charset=" + api.encoding + req.send_http_header() + req.write(response) + + return apache.OK + + except Exception, err: + # Log error in /var/log/httpd/(ssl_)?error_log + print >> log, err, traceback.format_exc() + return apache.HTTP_INTERNAL_SERVER_ERROR diff --git a/sfa/server/sfa.aggregate.httpd.conf b/sfa/server/sfa.aggregate.httpd.conf new file mode 100644 index 00000000..2e6f4f44 --- /dev/null +++ b/sfa/server/sfa.aggregate.httpd.conf @@ -0,0 +1,24 @@ +Listen 12346 + + + ErrorLog logs/sfa_ssl_error_log + TransferLog logs/sfa_ssl_access_log + CustomLog logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b + LogLevel warn + + SSLEngine on + SSLProtocol all -SSLv2 + + SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW + SSLCertificateFile /etc/sfa/authorities/server.cert + SSLCertificateKeyFile /etc/sfa/authorities/server.key + SetEnvIf User-Agent ".*MSIE.*" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + + SetHandler mod_python + PythonPath "sys.path + ['/usr/lib/python2.5/site-packages/sfa/', '/usr/lib/python2.5/site-packages/sfa/server/']" + PythonHandler SfaAggregateModPython + + diff --git a/sfa/server/sfa.registry.httpd.conf b/sfa/server/sfa.registry.httpd.conf new file mode 100644 index 00000000..714fe553 --- /dev/null +++ b/sfa/server/sfa.registry.httpd.conf @@ -0,0 +1,24 @@ +Listen 12345 + + + ErrorLog logs/sfa_ssl_error_log + TransferLog logs/sfa_ssl_access_log + CustomLog logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b + LogLevel warn + + SSLEngine on + SSLProtocol all -SSLv2 + + SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW + SSLCertificateFile /etc/sfa/authorities/server.cert + SSLCertificateKeyFile /etc/sfa/authorities/server.key + SetEnvIf User-Agent ".*MSIE.*" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + + SetHandler mod_python + PythonPath "sys.path + ['/usr/lib/python2.5/site-packages/sfa/', '/usr/lib/python2.5/site-packages/sfa/server/']" + PythonHandler SfaRegistryModPython + + diff --git a/sfa/server/sfa.slicemgr.httpd.conf b/sfa/server/sfa.slicemgr.httpd.conf new file mode 100644 index 00000000..6e3a8e87 --- /dev/null +++ b/sfa/server/sfa.slicemgr.httpd.conf @@ -0,0 +1,24 @@ +Listen 12347 + + + ErrorLog logs/sfa_ssl_error_log + TransferLog logs/sfa_ssl_access_log + CustomLog logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b + LogLevel warn + + SSLEngine on + SSLProtocol all -SSLv2 + + SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW + SSLCertificateFile /etc/sfa/authorities/server.cert + SSLCertificateKeyFile /etc/sfa/authorities/server.key + SetEnvIf User-Agent ".*MSIE.*" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + + SetHandler mod_python + PythonPath "sys.path + ['/usr/lib/python2.5/site-packages/sfa/', '/usr/lib/python2.5/site-packages/sfa/server/']" + PythonHandler SfaSliceMgrModPython + +