Exemple #1
0
    def fromWSDL(self, wsdl):
        '''setup the service description from WSDL,
        should not need to override.
        '''
        assert isinstance(wsdl, WSDLTools.WSDL), 'expecting WSDL instance'

        if len(wsdl.services) == 0:
            raise WsdlGeneratorError('No service defined')

        self.reset()
        self.wsdl = wsdl
        self.setUpHeader()
        self.setUpImports()

        for service in wsdl.services:
            sd = self._service_class(service.name)
            self._services[service.name] = sd

            for port in service.ports:
                desc = BindingDescription(wsdl=wsdl)
                try:
                    desc.setUp(port.getBinding())
                except Wsdl2PythonError:
                    continue

                for soc in desc.operations:
                    if not soc.hasInput(): continue

                    self.messages.append(MessageWriter())
                    self.messages[-1].setUp(soc, port, input=True)
                    if soc.hasOutput():
                        self.messages.append(MessageWriter())
                        self.messages[-1].setUp(soc, port, input=False)

                for e in port.extensions:
                    if isinstance(e, WSDLTools.SoapAddressBinding):
                        sd.location = e.location

                self.setUpMethods(port)

            self.setUpClassDef(service)
            self.setUpInitDef(service)
Exemple #2
0
    def fromWSDL(self, wsdl):
        '''setup the service description from WSDL,
        should not need to override.
        '''
        assert isinstance(wsdl, WSDLTools.WSDL), 'expecting WSDL instance'

        if len(wsdl.services) == 0:
            raise WsdlGeneratorError('No service defined')

        self.reset()
        self.wsdl = wsdl
        self.setUpHeader()
        self.setUpImports()

        for service in wsdl.services:
            sd = self._service_class(service.name)
            self._services[service.name] = sd

            for port in service.ports:
                desc = BindingDescription(wsdl=wsdl)
                try:
                    desc.setUp(port.getBinding())
                except Wsdl2PythonError:
                    continue

                for soc in desc.operations:
                    if not soc.hasInput(): continue

                    self.messages.append(MessageWriter())
                    self.messages[-1].setUp(soc, port, input=True)
                    if soc.hasOutput():
                        self.messages.append(MessageWriter())
                        self.messages[-1].setUp(soc, port, input=False)

                for e in port.extensions:
                    if isinstance(e, WSDLTools.SoapAddressBinding):
                        sd.location = e.location

                self.setUpMethods(port)

            self.setUpClassDef(service)
            self.setUpInitDef(service)
Exemple #3
0
    def fromWsdl(self, service, **kw):
        self.imports.setTypesModuleName(self.typesModuleName)
#        if self.separate_messages:
#            self.messagesImports.setMessagesModuleName(self.messagesModuleName)
        self.imports.appendImport(kw.get('imports', []))

        self.locator.setUp(service)

        try:
            bindings =  [p.binding for p in service.ports]
        except:
            warnings.warn('not all ports have binding declared,')
            bindings = ()

        for port in service.ports:
            if port.binding not in bindings:
                continue
            while port.binding in bindings:
                bindings.remove(port.binding)

            desc = BindingDescription(useWSA=self.wsAddressing,
                                      do_extended=self.do_extended,
                                      wsdl=self._wsdl)
            try:
                desc.setUp(port.getBinding())
            except Wsdl2PythonError, ex:
                self.logger.warning('Skipping port(%s)' %port.name)
                if len(ex.args):
                    self.logger.warning(ex.args[0])
                continue

            desc.setReaderClass(kw.get('readerclass'))
            desc.setWriterClass(kw.get('writerclass'))
            for soc in desc.operations:
                if soc.hasInput() is True:
                    mw = MessageWriter(do_extended=self.do_extended)
                    mw.setUp(soc, port, input=True)
                    self.messages.append(mw)

                    if soc.hasOutput() is True:
                        mw = MessageWriter(do_extended=self.do_extended)
                        mw.setUp(soc, port, input=False)
                        self.messages.append(mw)

            self.bindings.append(desc)
Exemple #4
0
    def fromWsdl(self, service, **kw):
        self.imports.setTypesModuleName(self.typesModuleName)
#        if self.separate_messages:
#            self.messagesImports.setMessagesModuleName(self.messagesModuleName)
        self.imports.appendImport(kw.get('imports', []))

        self.locator.setUp(service)

        try:
            bindings =  [p.binding for p in service.ports]
        except:
            warnings.warn('not all ports have binding declared,')
            bindings = ()

        for port in service.ports:
            if port.binding not in bindings:
                continue
            while port.binding in bindings:
                bindings.remove(port.binding)

            desc = BindingDescription(useWSA=self.wsAddressing,
                                      do_extended=self.do_extended,
                                      wsdl=self._wsdl)
            try:
                desc.setUp(port.getBinding())
            except Wsdl2PythonError as ex:
                self.logger.warning('Skipping port(%s)' %port.name)
                if len(ex.args):
                    self.logger.warning(ex.args[0])
                continue

            desc.setReaderClass(kw.get('readerclass'))
            desc.setWriterClass(kw.get('writerclass'))
            for soc in desc.operations:
                if soc.hasInput() is True:
                    mw = MessageWriter(do_extended=self.do_extended)
                    mw.setUp(soc, port, input=True)
                    self.messages.append(mw)

                    if soc.hasOutput() is True:
                        mw = MessageWriter(do_extended=self.do_extended)
                        mw.setUp(soc, port, input=False)
                        self.messages.append(mw)

            self.bindings.append(desc)