source: vanHelsing/trunk/src/VanHelsingServer.py@ 837

Last change on this file since 837 was 837, checked in by slederer, on Mar 12, 2010 at 3:34:41 PM

WSDL-Definition geändert (Element resourceList in resource umbenannt)

File size: 1.9 KB
RevLine 
[824]1from ZSI.ServiceContainer import ServiceContainer, SOAPRequestHandler
[826]2from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED
[824]3from VanHelsing_server import VanHelsing
[836]4from VanHelsing_types import ns0
5import VanHelsingWrapper
6import sys
[824]7
[826]8ResourceInfo= GTD("http://www.dass-it.de/VanHelsing/", "ResourceInfo")(None).pyclass()
[836]9listResourcesType= GTD("http://www.dass-it.de/VanHelsing/", "listResourcesType")(None).pyclass()
10#print dir(ResourceInfo)
[826]11
[824]12class VanSOAPRequestHandler(SOAPRequestHandler):
13 def do_GET(self):
14 wsdl=open("VanHelsing.wsdl").read()
15 self.send_xml(wsdl)
16
17def AsServer(port=80, services=(), RequestHandlerClass=SOAPRequestHandler):
18 address = ("127.0.0.1",port)
19 sc = ServiceContainer(address, RequestHandlerClass=RequestHandlerClass)
20 for service in services:
21 path = service.getPost()
22 sc.setNode(service,path)
23 sc.serve_forever()
24
[826]25
26class RealVanHelsing(VanHelsing):
27 def soap_listResources(self, ps, **kw):
28 request,response=VanHelsing.soap_listResources(self,ps)
29
[836]30 resType=request.get_element_resourceType()
31 resDirector=request.get_element_director()
32
33 result=VanHelsingWrapper.getResources(resDirector,resType)
34
35 rList=[]
36
37 for rid,name in result:
38
[837]39 resInf=response.new_resource()
[836]40 resInf.set_element_director(resDirector)
41 resInf.set_element_resId(rid)
42 resInf.set_element_resType(resType)
43 resInf.set_element_resName(name)
44 rList.append(resInf)
45
[837]46 response.set_element_resource(rList)
[836]47
[826]48 return request,response
49
[824]50if 1:
[836]51 if len(sys.argv) < 2:
52 filename="test.conf"
53 else:
54 filename=sys.argv[1]
55
56 VanHelsingWrapper.loadDirectorConfig(filename)
57
[826]58 AsServer(port=8080,services=[ RealVanHelsing() ], RequestHandlerClass=VanSOAPRequestHandler)
[824]59
Note: See TracBrowser for help on using the repository browser.