def servicelist(self,CntType,Cnt): print("servicelist() called") postvars = cgi.parse_qs(Cnt, keep_blank_values=1) print("postvars:"+str(postvars)) print(" Calling methode.. exploring") url = "http://"+postvars["server"][0]+"/adxwsvc/services/CAdxWebServiceXmlCC?wsdl" try: client = Client(url) methodes = [] for sd in client.sd : for port in sd.ports: for method in port[0].methods: methodes.append(str(method)) CallContext = client.factory.create('CAdxCallContext') CallContext.codeLang = "FRA" CallContext.codeUser = postvars["user"] CallContext.password = postvars["pass"] CallContext.poolAlias = postvars["poolalias"] CallContext.poolId = None CallContext.requestConfig = None publicName = "AWE" objectKeys = client.factory.create('ArrayOfCAdxParamKeyValue') listSize = 100 #-- appel au web service list objet AWE xmlWSLIST = client.service.query(CallContext,publicName,objectKeys,listSize) RetCnt = PXSPage.loadServicelist(methodes) except URLError as e: RetCnt = PXSPage.loadError(["URLError: can't reach server: "+url,"reason: "+str(e.reason)]) CntType = 'text/html' return (202,RetCnt,CntType)
def do_GET(self): print("New GET req path:"+self.path) contentType = 'text/html' if 'Content-type' in self.headers: contentType = self.headers['Content-type'] #-- gestion des requette http classique, 'fichier' , *.html, *.css, ... if (contentType == 'text/html'): docPath = "%s%s" % (self.server.docRoot, self.path) errorPath = "%s/not-found.html" % self.server.docRoot unauthorisedPath = "%s/unauthorized.html" % self.server.docRoot doc = "" if self.path.startswith('../'): code = 404 elif docPath.endswith('/'): print("loading loadIndex()") doc = PXSPage.loadIndex() code = 200 else: code = 404 result = (code, doc, contentType) #-- gestion des requette ajax GET else: extractedpath = self.path.split('?')[0] so = self.Session() try: #-- appel au fcontion defini plus loin grace au dictionnaire 'getFunctionDict' cf EDServiceDescriptor.py #-- exemple : @service_descriptor("GET",5,"/ajax/search") #-- la requete get pour l'url '/ajax/search' applera la fonction décorée #-- le second parametre (5) donne les limitations en fonction du userpower cf EDServiceDescriptor.py et EDSessionElement.py #-- = 0 : fonction accessible en anonym #-- = 5 : user authentifier #-- > 5 : il faudra que le user soit trouvé dans la bdd avec un userpower > 5 (champs de la bdd) result = getFunctionDict[extractedpath](self,contentType,"",so) except KeyError, e: self.log_message("KeyError Error!"+str(e)) result = (404,json.dumps({ "status": "Unhandeled request!" }),contentType) except EDPermitionException, e: self.log_message("Permition Error!"+str(e.value)) result = (401,json.dumps({ "status": "e.value!" }),contentType)
contentType = self.headers['Content-type'] try: #-- appel au fcontion defini plus loin grace au dictionnaire 'postFunctionDict' cf EDServiceDescriptor.py #-- exemple : @service_descriptor("POST",5,"/ajax/search") #-- la requete post pour l'url '/ajax/search' applera la fonction décoré #-- le second parametre (5) donne les limitations en fonction du userpower cf EDServiceDescriptor.py et EDSessionElement.py #-- = 0 : fonction accessible en anonym #-- = 5 : user authentifier #-- > 5 : il faudra que le user soit trouvé dans la bdd avec un userpower > 5 (champs de la bdd) result = postFunctionDict[self.path](self,contentType,content) except KeyError, e: self.log_message(e) result = (404,json.dumps({ "status": "Unhandeled request!" }),contentType) doc = PXSPage.loadIndex() self.done(*result) @service_descriptor("POST",0,"/servicelist") def servicelist(self,CntType,Cnt): print("servicelist() called") postvars = cgi.parse_qs(Cnt, keep_blank_values=1) print("postvars:"+str(postvars)) print(" Calling methode.. exploring") url = "http://"+postvars["server"][0]+"/adxwsvc/services/CAdxWebServiceXmlCC?wsdl" try: client = Client(url) methodes = [] for sd in client.sd : for port in sd.ports: