Changeset 329f61d for fedd/fedd_proj.py


Ignore:
Timestamp:
Jun 27, 2008 6:34:17 PM (16 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
Children:
0a47d52
Parents:
4f4b977
Message:

basic XMLRPC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fedd/fedd_proj.py

    r4f4b977 r329f61d  
    88from M2Crypto.SSL.SSLServer import SSLServer
    99import M2Crypto.httpslib
     10import xmlrpclib
    1011
    1112import re
     
    3031    id_attrs = ("testbed", "cert_file", "trusted_certs", "proxy",
    3132            "proxy_trusted_certs", "cert_pwd")
     33
     34    # Used by the SOAP caller
     35    soap_namespace = 'http://www.isi.edu/faber/fedd.wsdl'
     36    soap_methods = { 'RequestAccess': 'soap_RequestAccess' }
     37    xmlrpc_methods = { 'RequestAccess': 'xmlrpc_RequestAccess' }
    3238
    3339    class access_project:
     
    407413        return msg
    408414
    409 
    410     def soap_RequestAccess(self, ps, fid):
    411         req = ps.Parse(RequestAccessRequestMessage.typecode)
    412 
    413 
    414         #if req == None: raise Fault(Fault.Client, "No request??")
    415         #req = req.get_element_RequestAccessRequestBody()
    416         # if req == None: raise Fault(Fault.Client, "No request body??")
    417 
    418         msg = self.RequestAccess(unpack_soap(req), fedid)
    419         resp = RequestAccessResponseMessage()
    420 
    421         resp.set_element_RequestAccessResponseBody(
    422                 pack_soap(resp, "RequestAccessResponseBody", msg))
    423         return resp
    424 
    425415    def RequestAccess(self, req, fid):
    426416
     
    466456            # Proxy the request
    467457            return self.proxy_request(dt, req)
     458
     459    def soap_RequestAccess(self, ps, fid):
     460        req = ps.Parse(RequestAccessRequestMessage.typecode)
     461
     462        msg = self.RequestAccess(unpack_soap(req), fedid)
     463        resp = RequestAccessResponseMessage()
     464
     465        resp.set_element_RequestAccessResponseBody(
     466                pack_soap(resp, "RequestAccessResponseBody", msg))
     467        return resp
     468
     469    def xmlrpc_RequestAccess(self, params, fid):
     470        msg = self.RequestAccess(params[0], fedid)
     471        if msg != None:
     472            return xmlrpclib.dumps(({ "RequestAccessResponseBody": msg },))
    468473
    469474    def read_trust(self, trust):
     
    634639        f.close()
    635640
     641    def soap_dispatch(self, method, req, fid):
     642        if fedd_proj.soap_methods.has_key(method):
     643            return getattr(self, fedd_proj.soap_methods[method])(req, fid)
     644        else:
     645            raise Fault(Fault.Client, "Unknown method: %s" % method)
     646
     647    def xmlrpc_dispatch(self, method, req, fid):
     648        if fedd_proj.xmlrpc_methods.has_key(method):
     649            return getattr(self, fedd_proj.xmlrpc_methods[method])(req, fid)
     650        else:
     651            raise xmlrpclib.Fault(100, "Unknown method: %s" % method)
     652
    636653def new_feddservice(configfile):
    637654    return fedd_proj(configfile)
Note: See TracChangeset for help on using the changeset viewer.