From 650c4928c3cc34f29a516fddb9697dde93ebbf2a Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Tue, 7 Mar 2006 22:26:55 +0000 Subject: [PATCH] - base for WSDL-Webservice git-svn-id: file:///home/www/usr01/svn/gnuviechadmin/gnuviech.info/gnuviechadmin/trunk@178 a67ec6bc-e5d5-0310-a910-815c51eb3124 --- backend/src/SOAPServer.py | 32 ++ common/src/data/gnuviechadmin.wsdl | 20 +- .../__init__.py | 0 .../gnuviechadmin_services.py | 193 ++++++++++++ .../gnuviechadmin_services_server.py | 172 +++++++++++ .../gnuviechadmin_services_types.py | 287 ++++++++++++++++++ 6 files changed, 700 insertions(+), 4 deletions(-) create mode 100644 backend/src/SOAPServer.py rename common/src/{gnuviechadmin-common => gnuviechadminCommon}/__init__.py (100%) create mode 100644 common/src/gnuviechadminCommon/gnuviechadmin_services.py create mode 100644 common/src/gnuviechadminCommon/gnuviechadmin_services_server.py create mode 100644 common/src/gnuviechadminCommon/gnuviechadmin_services_types.py diff --git a/backend/src/SOAPServer.py b/backend/src/SOAPServer.py new file mode 100644 index 0000000..aecdfce --- /dev/null +++ b/backend/src/SOAPServer.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# +# (c) 2006 Jan Dittberner +# $Id$ +# + +from ZSI.ServiceContainer import ServiceContainer +from ZSI.dispatch import SOAPRequestHandler +from gnuviechadminCommon.gnuviechadmin_services_server import * + +service = gnuviechadmin() + +class mySOAPRequestHandler(SOAPRequestHandler): + ''' + Own SOAP request handler implementation. + ''' + def do_GET(self): + ''' + Process the HTTP GET method, delivers service's WSDL. + ''' + self.send_xml(service._wsdl) + +def AsServer(port=80, services=(), RequestHandlerClass=SOAPRequestHandler): + address = ('', port) + sc = ServiceContainer(address, RequestHandlerClass=RequestHandlerClass) + for service in services: + path = service.getPost() + sc.setNode(service, path) + sc.serve_forever() + +if __name__ == '__main__': + AsServer(port=8080, services=[service], RequestHandlerClass=mySOAPRequestHandler) diff --git a/common/src/data/gnuviechadmin.wsdl b/common/src/data/gnuviechadmin.wsdl index ca2f4b0..15b2225 100644 --- a/common/src/data/gnuviechadmin.wsdl +++ b/common/src/data/gnuviechadmin.wsdl @@ -1,8 +1,8 @@ - + @@ -122,6 +122,18 @@ Version: $Id$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +""" + + def __init__(self, post='/gnuviechadmin', **kw): + ServiceSOAPBinding.__init__(self, post) + + + def soap_Authenticate(self, ps): + # input vals in request object + args = ps.Parse( AuthRequestWrapper ) + + # assign return values to response object + class SimpleTypeWrapper(str): typecode = AuthResponseWrapper() + + # WARNING specify value eg. SimpleTypeWrapper(1) + response = SimpleTypeWrapper() + + # Return the response + return response + + def soap_ListDomains(self, ps): + # input vals in request object + args = ps.Parse( ListDomainsRequestWrapper ) + + # assign return values to response object + response = ListDomainsResponseWrapper() + + # Return the response + return response + + def soap_ListMailAliases(self, ps): + # input vals in request object + args = ps.Parse( ListMailAliasesRequestWrapper ) + + # assign return values to response object + response = ListMailAliasesResponseWrapper() + + # Return the response + return response diff --git a/common/src/gnuviechadminCommon/gnuviechadmin_services_types.py b/common/src/gnuviechadminCommon/gnuviechadmin_services_types.py new file mode 100644 index 0000000..43c7fd9 --- /dev/null +++ b/common/src/gnuviechadminCommon/gnuviechadmin_services_types.py @@ -0,0 +1,287 @@ +################################################## +# gnuviechadmin-common/gnuviechadmin_services_types.py +# generated by ZSI.wsdl2python +# +# +################################################## + + +import ZSI +from ZSI.TCcompound import Struct + +############################## +# targetNamespace +# +# https://ssl.gnuviech.info/gnuviechadmin/ +############################## + + +# imported as: ns1 +class https___ssl_gnuviech_info_gnuviechadmin: + targetNamespace = 'https://ssl.gnuviech.info/gnuviechadmin/' + + class Domain_Def(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + type = 'Domain' + + def __init__(self, name=None, ns=None, **kw): + # internal vars + self._domainName = None + + TClist = [ZSI.TC.String(pname="domainName",aname="_domainName"), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_domainName(self): + return self._domainName + + def Set_domainName(self,_domainName): + self._domainName = _domainName + + + class LoginInfo_Def(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + type = 'LoginInfo' + + def __init__(self, name=None, ns=None, **kw): + # internal vars + self._login = None + self._password = None + + TClist = [ZSI.TC.String(pname="login",aname="_login"), ZSI.TC.String(pname="password",aname="_password"), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_login(self): + return self._login + + def Set_login(self,_login): + self._login = _login + + def Get_password(self): + return self._password + + def Set_password(self,_password): + self._password = _password + + + class MailAlias_Def(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + type = 'MailAlias' + + def __init__(self, name=None, ns=None, **kw): + # internal vars + self._alias = None + self._target = None + + TClist = [ZSI.TC.String(pname="alias",aname="_alias"), ZSI.TC.String(pname="target",aname="_target"), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_alias(self): + return self._alias + + def Set_alias(self,_alias): + self._alias = _alias + + def Get_target(self): + return self._target + + def Set_target(self,_target): + self._target = _target + + + class ListMailAliasesRequest_Dec(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + literal = 'ListMailAliasesRequest' + + def __init__(self, name=None, ns=None, **kw): + name = name or self.__class__.literal + ns = ns or self.__class__.schema + + # internal vars + self._AuthCode = None + self._DomainName = None + + TClist = [ZSI.TC.String(pname="AuthCode",aname="_AuthCode"), ZSI.TC.String(pname="DomainName",aname="_DomainName"), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_AuthCode(self): + return self._AuthCode + + def Set_AuthCode(self,_AuthCode): + self._AuthCode = _AuthCode + + def Get_DomainName(self): + return self._DomainName + + def Set_DomainName(self,_DomainName): + self._DomainName = _DomainName + + + class DomainList_Def(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + type = 'DomainList' + + def __init__(self, name=None, ns=None, **kw): + # internal vars + self._domain = None + + TClist = [ns1.Domain_Def(name="domain", ns=ns), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_domain(self): + return self._domain + + def Set_domain(self,_domain): + self._domain = _domain + + + class LoginInfo_Dec(LoginInfo_Def): + literal = "LoginInfo" + schema = "https://ssl.gnuviech.info/gnuviechadmin/" + + def __init__(self, name=None, ns=None, **kw): + name = name or self.__class__.literal + ns = ns or self.__class__.schema + + ns1.LoginInfo_Def.__init__(self, name=name, ns=ns, **kw) + self.typecode = ns1.LoginInfo_Def(name=name, ns=ns, **kw) + + class MailAliasList_Def(ZSI.TCcompound.Struct): + schema = 'https://ssl.gnuviech.info/gnuviechadmin/' + type = 'MailAliasList' + + def __init__(self, name=None, ns=None, **kw): + # internal vars + self._alias = None + + TClist = [ns1.MailAlias_Def(name="alias", ns=ns), ] + + oname = name + + if name: + aname = '_%s' % name + if ns: + oname += ' xmlns="%s"' % ns + else: + oname += ' xmlns="%s"' % self.__class__.schema + else: + aname = None + + ZSI.TCcompound.Struct.__init__(self, self.__class__, TClist, + pname=name, inorder=0, + aname=aname, oname=oname, + **kw) + def Get_alias(self): + return self._alias + + def Set_alias(self,_alias): + self._alias = _alias + + + class DomainList_Dec(DomainList_Def): + literal = "DomainList" + schema = "https://ssl.gnuviech.info/gnuviechadmin/" + + def __init__(self, name=None, ns=None, **kw): + name = name or self.__class__.literal + ns = ns or self.__class__.schema + + ns1.DomainList_Def.__init__(self, name=name, ns=ns, **kw) + self.typecode = ns1.DomainList_Def(name=name, ns=ns, **kw) + + class ListMailAliasesResponse_Dec(MailAliasList_Def): + literal = "ListMailAliasesResponse" + schema = "https://ssl.gnuviech.info/gnuviechadmin/" + + def __init__(self, name=None, ns=None, **kw): + name = name or self.__class__.literal + ns = ns or self.__class__.schema + + ns1.MailAliasList_Def.__init__(self, name=name, ns=ns, **kw) + self.typecode = ns1.MailAliasList_Def(name=name, ns=ns, **kw) + + class AuthCode_Dec(ZSI.TC.String): + literal = "AuthCode" + schema = "https://ssl.gnuviech.info/gnuviechadmin/" + + def __init__(self, name=None, ns=None, **kw): + name = name or self.__class__.literal + ns = ns or self.__class__.schema + kw["oname"] = '%s xmlns="%s"' %(name, ns) + + ZSI.TC.String.__init__(self,pname=name, aname="%s" % name, **kw) + +# define class alias for subsequent ns classes +ns1 = https___ssl_gnuviech_info_gnuviechadmin + + +