version 1.5, 2007/03/21 18:26:55
|
version 1.9, 2007/10/23 17:48:09
|
Line 12 class XMLRpcServerProxy(SimpleItem):
|
Line 12 class XMLRpcServerProxy(SimpleItem):
|
|
|
meta_type="XMLRpcServerProxy" |
meta_type="XMLRpcServerProxy" |
|
|
|
rpc_arg_expr='[^A-z0-9]' |
|
|
manage_options= ( |
manage_options= ( |
{'label':'Main Config','action':'mainConfigHTML'}, |
{'label':'Main Config','action':'mainConfigHTML'}, |
)+ SimpleItem.manage_options |
)+ SimpleItem.manage_options |
Line 38 class XMLRpcServerProxy(SimpleItem):
|
Line 40 class XMLRpcServerProxy(SimpleItem):
|
|
|
def eval(self,method,argument): |
def eval(self,method,argument): |
"""do proxy request""" |
"""do proxy request""" |
sr=self.ServerProxy() |
server=self.ServerProxy() |
|
|
if self.use_xmlrpc: |
if self.use_xmlrpc: |
# for XML-RPC only letters are allowed |
# for XML-RPC methods only letters are allowed |
method=re.sub('[^A-z0-9]','',method) |
method=re.sub('[^A-z0-9_]','',method) |
argument=re.sub('[^A-z0-9]','',argument) |
# clean argument |
|
argument=re.sub(self.rpc_arg_expr,'',argument) |
|
|
mtstr="""sr.%s('%s')"""%(method,argument) |
cmd="""server.%s('%s')"""%(method,argument) |
|
|
return eval(mtstr) |
return eval(cmd) |
else: |
else: |
# HTTP |
# HTTP |
# TODO: check arguments |
# TODO: check arguments |
Line 56 class XMLRpcServerProxy(SimpleItem):
|
Line 59 class XMLRpcServerProxy(SimpleItem):
|
uri += '?' + argument |
uri += '?' + argument |
|
|
#print "GET: ", uri |
#print "GET: ", uri |
sr.request("GET", uri) |
server.request("GET", uri) |
resp = sr.getresponse() |
resp = server.getresponse() |
|
data = resp.read() |
|
#print "GOT: ", resp.status, ", ", resp.reason, " = ", data |
|
|
|
return data.decode('UTF-8') |
|
|
|
def eval2(self,method,argument1,argument2): |
|
"""do proxy request""" |
|
server=self.ServerProxy() |
|
|
|
if self.use_xmlrpc: |
|
# for XML-RPC methods only letters are allowed |
|
method=re.sub('[^A-z0-9_]','',method) |
|
# clean argument |
|
argument1=re.sub(self.rpc_arg_expr,'',argument1) |
|
argument2=re.sub(self.rpc_arg_expr,'',argument2) |
|
|
|
cmd="""server.%s('%s','%s')"""%(method,argument1,argument2) |
|
|
|
return eval(cmd) |
|
else: |
|
# HTTP |
|
# TODO: check arguments |
|
uri = method |
|
if argument1: |
|
uri += '?' + argument1 + argument2 |
|
|
|
#print "GET: ", uri |
|
server.request("GET", uri) |
|
resp = server.getresponse() |
data = resp.read() |
data = resp.read() |
#print "GOT: ", resp.status, ", ", resp.reason, " = ", data |
#print "GOT: ", resp.status, ", ", resp.reason, " = ", data |
|
|
Line 69 class XMLRpcServerProxy(SimpleItem):
|
Line 101 class XMLRpcServerProxy(SimpleItem):
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def mainConfig(self,serverUrl,use_xmlrpc=True,RESPONSE=None): |
def mainConfig(self,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None): |
"""main config""" |
"""main config""" |
|
|
self.serverUrl=serverUrl |
self.serverUrl=serverUrl |
Line 81 class XMLRpcServerProxy(SimpleItem):
|
Line 113 class XMLRpcServerProxy(SimpleItem):
|
|
|
self.use_xmlrpc=use_xmlrpc |
self.use_xmlrpc=use_xmlrpc |
|
|
|
if rpc_arg_expr is not None: |
|
self.rpc_arg_expr = rpc_arg_expr |
|
|
if RESPONSE: |
if RESPONSE: |
RESPONSE.redirect("/manage_main") |
RESPONSE.redirect("/manage_main") |
|
|
Line 90 def manage_addXMLRpcServerProxyForm(self
|
Line 125 def manage_addXMLRpcServerProxyForm(self
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,RESPONSE=None): |
def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None): |
"""add the basket""" |
"""add the basket""" |
if use_xmlrpc and use_xmlrpc != "no": |
if use_xmlrpc and use_xmlrpc != "no": |
use_xmlrpc = True |
use_xmlrpc = True |
else: |
else: |
use_xmlrpc = False |
use_xmlrpc = False |
|
|
|
if rpc_arg_expr is not None: |
|
self.rpc_arg_expr = rpc_arg_expr |
|
|
ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc) |
ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc) |
|
|
self._setObject(id, ob) |
self._setObject(id, ob) |