Changeset 19cc408 for fedd/fedd.py
- Timestamp:
- Oct 3, 2008 4:46:21 PM (16 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
- Children:
- ea0a821
- Parents:
- 01073f7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd.py
r01073f7 r19cc408 15 15 16 16 from fedd_util import fedd_ssl_context, fedid 17 from fedd_proj import new_feddservice 17 from fedd_deter_impl import new_feddservice 18 from service_error import * 18 19 19 20 # The SSL server here is based on the implementation described at … … 27 28 SSLServer.__init__(self, ME, handler, ssl_ctx) 28 29 self.impl = impl 30 self.soap_methods = impl.get_soap_services() 31 self.xmlrpc_methods = impl.get_xmlrpc_services() 29 32 30 33 class fedd_soap_handler(BaseHTTPRequestHandler): 31 34 server_version = "ZSI/2.0 fedd/0.1 " + BaseHTTPRequestHandler.server_version 32 33 35 34 36 def send_xml(self, text, code=200): … … 80 82 if not self.check_method(ps): return 81 83 try: 82 resp = self.s erver.impl.soap_dispatch(ps.body_root.localName, ps,84 resp = self.soap_dispatch(ps.body_root.localName, ps, 83 85 fedid(cert=self.request.get_peer_cert())) 84 86 except Fault, f: … … 91 93 self.send_xml(str(sw)) 92 94 95 def soap_dispatch(self, method, req, fid): 96 if self.server.soap_methods.has_key(method): 97 try: 98 return self.server.soap_methods[method](req, fid) 99 except service_error, e: 100 de = ns0.faultType_Def( 101 (ns0.faultType_Def.schema, 102 "FeddFaultBody")).pyclass() 103 de._code=e.code 104 de._errstr=e.code_string() 105 de._desc=e.desc 106 if e.is_server_error(): 107 raise Fault(Fault.Server, e.code_string(), detail=de) 108 else: 109 raise Fault(Fault.Client, e.code_string(), detail=de) 110 else: 111 raise Fault(Fault.Client, "Unknown method: %s" % method) 112 113 93 114 class fedd_xmlrpc_handler(BaseHTTPRequestHandler): 94 115 server_version = "ZSI/2.0 fedd/0.1 " + BaseHTTPRequestHandler.server_version … … 120 141 if method != None: 121 142 try: 122 resp = self. server.impl.xmlrpc_dispatch(method, params,143 resp = self.xmlrpc_dispatch(method, params, 123 144 fedid(cert=self.request.get_peer_cert())) 124 145 data = xmlrpclib.dumps((resp,), encoding='UTF-8', … … 129 150 self.send_xml(data) 130 151 152 153 def xmlrpc_dispatch(self, method, req, fid): 154 if self.server.xmlrpc_methods.has_key(method): 155 try: 156 return self.server.xmlrpc_methods[method](req, fid) 157 except service_error, e: 158 raise xmlrpclib.Fault(e.code_string(), e.desc) 159 else: 160 raise xmlrpclib.Fault(100, "Unknown method: %s" % method) 131 161 132 162 class fedd_opts(OptionParser):
Note: See TracChangeset
for help on using the changeset viewer.