version 1.3, 2007/11/26 20:29:55
|
version 1.5, 2008/03/06 15:08:32
|
Line 74 class XmlRpcProxyMethod(SimpleItem):
|
Line 74 class XmlRpcProxyMethod(SimpleItem):
|
|
|
rpc_arg_expr='[^A-z0-9]' |
rpc_arg_expr='[^A-z0-9]' |
|
|
|
num_retries=0 |
|
|
manage_options= ( |
manage_options= ( |
{'label':'Main Config','action':'mainConfigForm'}, |
{'label':'Main Config','action':'mainConfigForm'}, |
)+ SimpleItem.manage_options |
)+ SimpleItem.manage_options |
|
|
|
|
def __init__(self,id,rpc_arg_expr=None): |
def __init__(self,id,rpc_arg_expr=None,num_retries=0): |
"""init server proxy""" |
"""init server proxy""" |
self.id=id |
self.id=id |
|
self.num_retries = num_retries |
if rpc_arg_expr: |
if rpc_arg_expr: |
self.rpc_arg_expr = rpc_arg_expr |
self.rpc_arg_expr = rpc_arg_expr |
|
|
Line 92 class XmlRpcProxyMethod(SimpleItem):
|
Line 95 class XmlRpcProxyMethod(SimpleItem):
|
if self.rpc_arg_expr: |
if self.rpc_arg_expr: |
# clean arguments |
# clean arguments |
args = [ re.sub(self.rpc_arg_expr,'',a) for a in argv] |
args = [ re.sub(self.rpc_arg_expr,'',a) for a in argv] |
|
else: |
|
args = argv |
|
|
|
i = 0 |
|
while True: |
|
try: |
# call the method self.id on the server with the args |
# call the method self.id on the server with the args |
return getattr(server, self.id)(*args) |
return getattr(server, self.id)(*args) |
|
|
|
except: |
|
# should we catch only specific exceptions? |
|
if i >= self.num_retries: |
|
# pass on exception |
|
raise |
|
i += 1 |
|
|
|
|
__call__ = eval |
__call__ = eval |
|
|
|
|
mainConfigForm = PageTemplateFile('zpt/manageXmlRpcProxyMethod',globals()) |
mainConfigForm = PageTemplateFile('zpt/manageXmlRpcProxyMethod',globals()) |
|
|
def mainConfig(self,rpc_arg_expr=None,RESPONSE=None): |
def mainConfig(self,rpc_arg_expr=None,num_retries=0,RESPONSE=None): |
"""main config""" |
"""main config""" |
|
|
|
self.num_retries = num_retries |
if rpc_arg_expr is not None: |
if rpc_arg_expr is not None: |
self.rpc_arg_expr = rpc_arg_expr |
self.rpc_arg_expr = rpc_arg_expr |
|
|
Line 116 def manage_addXmlRpcProxyMethodForm(self
|
Line 133 def manage_addXmlRpcProxyMethodForm(self
|
pt=PageTemplateFile('zpt/addXmlRpcProxyMethod',globals()).__of__(self) |
pt=PageTemplateFile('zpt/addXmlRpcProxyMethod',globals()).__of__(self) |
return pt() |
return pt() |
|
|
def manage_addXmlRpcProxyMethod(self,id,rpc_arg_expr,RESPONSE=None): |
def manage_addXmlRpcProxyMethod(self,id,rpc_arg_expr,num_retries,RESPONSE=None): |
"""add the basket""" |
"""add the basket""" |
ob=XmlRpcProxyMethod(id,rpc_arg_expr) |
ob=XmlRpcProxyMethod(id,rpc_arg_expr,num_retries) |
self._setObject(id, ob) |
self._setObject(id, ob) |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |