1 | from ZSI.ServiceContainer import ServiceContainer, SOAPRequestHandler |
---|
2 | from ZSI.schema import LocalElementDeclaration, ElementDeclaration, TypeDefinition, GTD, GED |
---|
3 | from VanHelsing_server import VanHelsing |
---|
4 | from VanHelsing_types import ns0 |
---|
5 | import VanHelsingWrapper |
---|
6 | import sys |
---|
7 | |
---|
8 | ResourceInfo= GTD("http://www.dass-it.de/VanHelsing/", "ResourceInfo")(None).pyclass() |
---|
9 | listResourcesType= GTD("http://www.dass-it.de/VanHelsing/", "listResourcesType")(None).pyclass() |
---|
10 | #print dir(ResourceInfo) |
---|
11 | |
---|
12 | class VanSOAPRequestHandler(SOAPRequestHandler): |
---|
13 | def do_GET(self): |
---|
14 | wsdl=open("VanHelsing.wsdl").read() |
---|
15 | self.send_xml(wsdl) |
---|
16 | |
---|
17 | def 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 | |
---|
25 | |
---|
26 | class RealVanHelsing(VanHelsing): |
---|
27 | def soap_listResources(self, ps, **kw): |
---|
28 | request,response=VanHelsing.soap_listResources(self,ps) |
---|
29 | |
---|
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 | |
---|
39 | resInf=response.new_resourceList() |
---|
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 | |
---|
46 | response.set_element_resourceList(rList) |
---|
47 | |
---|
48 | return request,response |
---|
49 | |
---|
50 | if 1: |
---|
51 | if len(sys.argv) < 2: |
---|
52 | filename="test.conf" |
---|
53 | else: |
---|
54 | filename=sys.argv[1] |
---|
55 | |
---|
56 | VanHelsingWrapper.loadDirectorConfig(filename) |
---|
57 | |
---|
58 | AsServer(port=8080,services=[ RealVanHelsing() ], RequestHandlerClass=VanSOAPRequestHandler) |
---|
59 | |
---|