Changeset f069052 for fedd/fedd/remote_service.py
- Timestamp:
- Nov 30, 2008 5:38:16 PM (15 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
- Children:
- 05191a6
- Parents:
- edbc841
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd/remote_service.py
redbc841 rf069052 11 11 from ZSI import ParseException, FaultException, SoapWriter 12 12 13 from service_error import *13 from service_error import service_error 14 14 from xmlrpclib import ServerProxy, dumps, loads, Fault, Error, Binary 15 15 16 import fedd_services 17 import fedd_internal_services 16 18 from util import fedd_ssl_context 17 19 from fedid import fedid … … 181 183 created constructors will result in None being returned. 182 184 """ 183 def __init__(self, typecode, method, constructor, body_name):184 self.typecode = typecode185 def __init__(self, service_name, method, typecode=None, 186 constructor=None, body_name=None): 185 187 self.method = method 186 self.constructor = constructor 187 self.body_name = body_name 188 189 response_class_name = "%sResponseMessage" % service_name 190 request_class_name = "%sRequestMessage" % service_name 191 192 if body_name: self.body_name = body_name 193 else: self.body_name = "%sResponseBody" % service_name 194 195 if constructor: self.constructor = constructor 196 else: 197 self.constructor = self.get_class(response_class_name) 198 if not self.constructor: 199 raise service_error(service_error.internal, 200 "Cannot find class for %s" % response_class_name) 201 202 if typecode: self.typecode = typecode 203 else: 204 req = self.get_class(request_class_name) 205 if req: 206 self.typecode = req.typecode 207 else: 208 raise service_error(service_error.internal, 209 "Cannot find class for %s" % request_class_name) 210 211 if not self.typecode: 212 raise service_error(service_error.internal, 213 "Cannot get typecode for %s" % class_name) 214 215 def get_class(self, class_name): 216 return getattr(fedd_services, class_name, None) or \ 217 getattr(fedd_internal_services, class_name, None) 188 218 189 219 def __call__(self, ps, fid): … … 197 227 resp = self.constructor() 198 228 set_element = getattr(resp, "set_element_%s" % self.body_name, None) 229 print "set_element_%s" % self.body_name 199 230 if set_element and callable(set_element): 200 231 try: … … 220 251 to fedid objects on input and encapsulated as Binaries on output. 221 252 """ 222 def __init__(self, method, body_name):253 def __init__(self, service_name, method): 223 254 self.method = method 224 self.body_name = body_name255 self.body_name = "%sResponseBody" % service_name 225 256 226 257 def __call__(self, params, fid): … … 239 270 240 271 class service_caller(remote_service_base): 241 def __init__(self, service_name, port_name, locator, request_message,242 request_body_name , tracefile=None):272 def __init__(self, service_name, request_message=None, 273 request_body_name=None, tracefile=None): 243 274 self.service_name = service_name 244 self.port_name = port_name 245 self.locator = locator 246 self.request_message = request_message 247 self.request_body_name = request_body_name 275 276 if getattr(fedd_services.feddBindingSOAP, service_name, None): 277 self.locator = fedd_services.feddServiceLocator 278 self.port_name = 'getfeddPortType' 279 elif getattr(fedd_internal_services.feddInternalBindingSOAP, 280 service_name, None): 281 self.locator = fedd_internal_services.feddInternalServiceLocator 282 self.port_name = 'getfeddInternalPortType' 283 284 if request_message: self.request_message = request_message 285 else: 286 request_message_name = "%sRequestMessage" % service_name 287 self.request_message = \ 288 getattr(fedd_services, request_message_name, None) or \ 289 getattr(fedd_internal_services, request_message_name, None) 290 if not self.request_message: 291 raise service_error(service_error.internal, 292 "Cannot find class for %s" % request_message_name) 293 294 if request_body_name: self.request_body_name = request_body_name 295 else: self.request_body_name = "%sRequestBody" % service_name 296 248 297 self.tracefile = tracefile 249 298 self.__call__ = self.call_service
Note: See TracChangeset
for help on using the changeset viewer.