Пример #1
0
    def add_methods(self, service):
        """ Build method view for service """
        bindings = {
            'document/literal': Document(self),
            'rpc/literal': RPC(self),
            'rpc/encoded': Encoded(self)
        }
        for p in service.ports:
            binding = p.binding
            ptype = p.binding.type
            operations = p.binding.type.operations
            for name in operations.keys():
                for operation in operations[name]:
                    m = Facade('Method')
                    m.name = name
                    m.location = p.location
                    m.binding = Facade('binding')
                    op = binding.operation(name, operation.input.name,
                                           operation.output.name)
                    m.soap = op.soap
                    key = '/'.join((op.soap.style, op.soap.input.body.use))
                    m.binding.input = bindings.get(key)
                    key = '/'.join((op.soap.style, op.soap.output.body.use))
                    m.binding.output = bindings.get(key)

                    p.methods.add(name, m)
Пример #2
0
 def add_methods(self, service):
     """ Build method view for service """
     bindings = {
         'document/literal': Document(self),
         'rpc/literal': RPC(self),
         'rpc/encoded': Encoded(self)
     }
     for p in service.ports:
         binding = p.binding
         ptype = p.binding.type
         operations = p.binding.type.operations.values()
         for name in [op.name for op in operations]:
             m = Facade('Method')
             m.name = name
             m.location = p.location
             m.binding = Facade('binding')
             op = binding.operation(name)
             op.soap.input.policy = self.build_policy(
                 binding, op.soap.input, True)
             op.soap.output.policy = self.build_policy(
                 binding, op.soap.output, False)
             m.soap = op.soap
             key = '/'.join((op.soap.style, op.soap.input.body.use))
             m.binding.input = bindings.get(key)
             key = '/'.join((op.soap.style, op.soap.output.body.use))
             m.binding.output = bindings.get(key)
             op = ptype.operation(name)
             p.methods[name] = m
Пример #3
0
 def add_methods(self, service):
     """ Build method view for service """
     bindings = {
         'document/literal' : Document(self),
         'rpc/literal' : RPC(self),
         'rpc/encoded' : Encoded(self)
     }
     for p in service.ports:
         binding = p.binding
         ptype = p.binding.type
         operations = list(p.binding.type.operations.values())
         for name in [op.name for op in operations]:
             m = Facade('Method')
             m.name = name
             m.location = p.location
             m.binding = Facade('binding')
             op = binding.operation(name)
             m.soap = op.soap
             key = '/'.join((op.soap.style, op.soap.input.body.use))
             m.binding.input = bindings.get(key)
             key = '/'.join((op.soap.style, op.soap.output.body.use))
             m.binding.output = bindings.get(key)
             op = ptype.operation(name)
             p.methods[name] = m
Пример #4
0
 def __init__(self, root, definitions):
     """
     @param root: An XML root element.
     @type root: L{Element}
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     """
     NamedObject.__init__(self, root, definitions)
     self.operations = {}
     self.type = root.get('type')
     sr = self.soaproot()
     if sr is None:
         self.soap = None
         log.debug('binding: "%s" not a soap binding', self.name)
         return
     soap = Facade('soap')
     self.soap = soap
     self.soap.style = sr.get('style', default='document')
     self.add_operations(self.root, definitions)
Пример #5
0
    def __init__(self, root, definitions):
        """
        @param root: An XML root element.
        @type root: L{Element}
        @param definitions: A definitions object.
        @type definitions: L{Definitions}

        """
        NamedObject.__init__(self, root, definitions)
        self.operations = {}
        self.type = root.get("type")
        sr = self.soaproot()
        if sr is None:
            self.soap = None
            log.debug("binding: '%s' not a SOAP binding", self.name)
            return
        soap = Facade("soap")
        self.soap = soap
        self.soap.style = sr.get("style", default="document")
        self.add_operations(self.root, definitions)
Пример #6
0
 def header(self, definitions, parent, root):
     """ add the input/output header properties """
     if root is None:
         return
     header = Facade('Header')
     parent.headers.append(header)
     header.use = root.get('use', default='literal')
     ns = root.get('namespace')
     if ns is None:
         header.namespace = definitions.tns
     else:
         prefix = root.findPrefix(ns, 'h0')
         header.namespace = (prefix, ns)
     msg = root.get('message')
     if msg is not None:
         header.message = msg
     part = root.get('part')
     if part is not None:
         header.part = part
Пример #7
0
 def header(self, definitions, parent, root):
     """Add the input/output header properties."""
     if root is None:
         return
     header = Facade("Header")
     parent.headers.append(header)
     header.use = root.get("use", default="literal")
     ns = root.get("namespace")
     if ns is None:
         header.namespace = definitions.tns
     else:
         prefix = root.findPrefix(ns, "h0")
         header.namespace = (prefix, ns)
     msg = root.get("message")
     if msg is not None:
         header.message = msg
     part = root.get("part")
     if part is not None:
         header.part = part
Пример #8
0
 def __init__(self, root, definitions):
     """
     @param root: An XML root element.
     @type root: L{Element}
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     """
     NamedObject.__init__(self, root, definitions)
     self.operations = {}
     self.policies = []
     self.type = root.get('type')
     sr = self.soaproot()
     if sr is None:
         self.soap = None
         log.debug('binding: "%s" not a soap binding', self.name)
         return
     soap = Facade('soap')
     self.soap = soap
     self.soap.style = sr.get('style', default='document')
     self.soap.version = (sr.namespace()[1]
                          == soap12ns[1]) and 'SOAP12' or 'SOAP11'
     self.add_operations(self.root, definitions)
     self.add_policies(self.root, definitions)
Пример #9
0
 def add_methods(self, service):
     """Build method view for service."""
     bindings = {
         "document/literal": Document(self),
         "rpc/literal": RPC(self),
         "rpc/encoded": Encoded(self)}
     for p in service.ports:
         binding = p.binding
         ptype = p.binding.type
         operations = p.binding.type.operations.values()
         for name in (op.name for op in operations):
             m = Facade("Method")
             m.name = name
             m.location = p.location
             m.binding = Facade("binding")
             op = binding.operation(name)
             m.soap = op.soap
             key = "/".join((op.soap.style, op.soap.input.body.use))
             m.binding.input = bindings.get(key)
             key = "/".join((op.soap.style, op.soap.output.body.use))
             m.binding.output = bindings.get(key)
             p.methods[name] = m
Пример #10
0
 def header(self, definitions, parent, root):
     """ add the input/output header properties """
     if root is None:
         return
     header = Facade('Header')
     parent.headers.append(header)
     header.use = root.get('use', default='literal')
     ns = root.get('namespace')
     if ns is None:
         header.namespace = definitions.tns
     else:
         prefix = root.findPrefix(ns, 'h0')
         header.namespace = (prefix, ns)
     msg = root.get('message')
     if msg is not None:
         header.message = msg
     part = root.get('part')
     if part is not None:
         header.part = part
Пример #11
0
 def header(self, definitions, parent, root):
     """Add the input/output header properties."""
     if root is None:
         return
     header = Facade("Header")
     parent.headers.append(header)
     header.use = root.get("use", default="literal")
     ns = root.get("namespace")
     if ns is None:
         header.namespace = definitions.tns
     else:
         prefix = root.findPrefix(ns, "h0")
         header.namespace = (prefix, ns)
     msg = root.get("message")
     if msg is not None:
         header.message = msg
     part = root.get("part")
     if part is not None:
         header.part = part
Пример #12
0
 def add_operations(self, root, definitions):
     """Add <operation/> children."""
     dsop = Element("operation", ns=soapns)
     for c in root.getChildren("operation"):
         op = Facade("Operation")
         op.name = c.get("name")
         sop = c.getChild("operation", default=dsop)
         soap = Facade("soap")
         soap.action = '"%s"' % (sop.get("soapAction", default=""),)
         soap.style = sop.get("style", default=self.soap.style)
         soap.input = Facade("Input")
         soap.input.body = Facade("Body")
         soap.input.headers = []
         soap.output = Facade("Output")
         soap.output.body = Facade("Body")
         soap.output.headers = []
         op.soap = soap
         input = c.getChild("input")
         if input is None:
             input = Element("input", ns=wsdlns)
         body = input.getChild("body")
         self.body(definitions, soap.input.body, body)
         for header in input.getChildren("header"):
             self.header(definitions, soap.input, header)
         output = c.getChild("output")
         if output is None:
             output = Element("output", ns=wsdlns)
         body = output.getChild("body")
         self.body(definitions, soap.output.body, body)
         for header in output.getChildren("header"):
             self.header(definitions, soap.output, header)
         faults = []
         for fault in c.getChildren("fault"):
             sf = fault.getChild("fault")
             if sf is None:
                 continue
             fn = fault.get("name")
             f = Facade("Fault")
             f.name = sf.get("name", default=fn)
             f.use = sf.get("use", default="literal")
             faults.append(f)
         soap.faults = faults
         self.operations[op.name] = op
Пример #13
0
 def add_operations(self, root, definitions):
     """Add <operation/> children."""
     dsop = Element("operation", ns=soapns)
     for c in root.getChildren("operation"):
         op = Facade("Operation")
         op.name = c.get("name")
         sop = c.getChild("operation", default=dsop)
         soap = Facade("soap")
         soap.action = '"%s"' % (sop.get("soapAction", default=""), )
         soap.style = sop.get("style", default=self.soap.style)
         soap.input = Facade("Input")
         soap.input.body = Facade("Body")
         soap.input.headers = []
         soap.output = Facade("Output")
         soap.output.body = Facade("Body")
         soap.output.headers = []
         op.soap = soap
         input = c.getChild("input")
         if input is None:
             input = Element("input", ns=wsdlns)
         body = input.getChild("body")
         self.body(definitions, soap.input.body, body)
         for header in input.getChildren("header"):
             self.header(definitions, soap.input, header)
         output = c.getChild("output")
         if output is None:
             output = Element("output", ns=wsdlns)
         body = output.getChild("body")
         self.body(definitions, soap.output.body, body)
         for header in output.getChildren("header"):
             self.header(definitions, soap.output, header)
         faults = []
         for fault in c.getChildren("fault"):
             sf = fault.getChild("fault")
             if sf is None:
                 continue
             fn = fault.get("name")
             f = Facade("Fault")
             f.name = sf.get("name", default=fn)
             f.use = sf.get("use", default="literal")
             faults.append(f)
         soap.faults = faults
         self.operations[op.name] = op
Пример #14
0
    def __init__(self, root, definitions):
        """
        @param root: An XML root element.
        @type root: L{Element}
        @param definitions: A definitions object.
        @type definitions: L{Definitions}
        """
        NamedObject.__init__(self, root, definitions)
        self.operations = MultiDict()
        for c in root.getChildren('operation'):
            op = Facade('Operation')
            op.name = c.get('name')
            op.tns = definitions.tns
            input = c.getChild('input')
            if input is None:
                op.input = None
            else:
                op.input = input.get('message')
            output = c.getChild('output')
            if output is None:
                op.output = None
            else:
                op.output = output.get('message')
            faults = []
            for fault in c.getChildren('fault'):
                f = Facade('Fault')
                f.name = fault.get('name')
                f.message = fault.get('message')
                faults.append(f)
            op.faults = faults

            self.operations.add(op.name, op)
Пример #15
0
    def __init__(self, root, definitions):
        """
        @param root: An XML root element.
        @type root: L{Element}
        @param definitions: A definitions object.
        @type definitions: L{Definitions}

        """
        NamedObject.__init__(self, root, definitions)
        self.operations = {}
        for c in root.getChildren("operation"):
            op = Facade("Operation")
            op.name = c.get("name")
            op.tns = definitions.tns
            input = c.getChild("input")
            if input is None:
                op.input = None
            else:
                op.input = input.get("message")
            output = c.getChild("output")
            if output is None:
                op.output = None
            else:
                op.output = output.get("message")
            faults = []
            for fault in c.getChildren("fault"):
                f = Facade("Fault")
                f.name = fault.get("name")
                f.message = fault.get("message")
                faults.append(f)
            op.faults = faults
            self.operations[op.name] = op
Пример #16
0
 def add_operations(self, root, definitions):
     """ Add <operation/> children """
     dsop = Element('operation', ns=soapns)
     for c in root.getChildren('operation'):
         op = Facade('Operation')
         op.name = c.get('name')
         sop = c.getChild('operation', default=dsop)
         soap = Facade('soap')
         soap.action = '"%s"' % sop.get('soapAction', default='')
         soap.style = sop.get('style', default=self.soap.style)
         soap.input = Facade('Input')
         soap.input.body = Facade('Body')
         soap.input.headers = []
         soap.output = Facade('Output')
         soap.output.body = Facade('Body')
         soap.output.headers = []
         op.soap = soap
         input = c.getChild('input')
         if input is None:
             input = Element('input', ns=wsdlns)
         body = input.getChild('body')
         self.body(definitions, soap.input.body, body)
         for header in input.getChildren('header'):
             self.header(definitions, soap.input, header)
         output = c.getChild('output')
         if output is None:
             output = Element('output', ns=wsdlns)
         body = output.getChild('body')
         self.body(definitions, soap.output.body, body)
         for header in output.getChildren('header'):
             self.header(definitions, soap.output, header)
         faults = []
         for fault in c.getChildren('fault'):
             sf = fault.getChild('fault')
             if sf is None:
                 continue
             fn = fault.get('name')
             f = Facade('Fault')
             f.name = sf.get('name', default=fn)
             f.use = sf.get('use', default='literal')
             faults.append(f)
         soap.faults = faults
         self.operations[op.name] = op
Пример #17
0
 def add_operations(self, root, definitions):
     """ Add <operation/> children """
     dsop = Element('operation', ns=soapns)
     for c in root.getChildren('operation'):
         op = Facade('Operation')
         op.name = c.get('name')
         sop = c.getChild('operation', default=dsop)
         soap = Facade('soap')
         soap.action = '"%s"' % sop.get('soapAction', default='')
         soap.style = sop.get('style', default=self.soap.style)
         soap.input = Facade('Input')
         soap.input.body = Facade('Body')
         soap.input.headers = []
         soap.output = Facade('Output')
         soap.output.body = Facade('Body')
         soap.output.headers = []
         op.soap = soap
         input = c.getChild('input')
         if input is None:
             input = Element('input', ns=wsdlns)
         body = input.getChild('body')
         self.body(definitions, soap.input.body, body)
         for header in input.getChildren('header'):
             self.header(definitions, soap.input, header)
         output = c.getChild('output')
         if output is None:
             output = Element('output', ns=wsdlns)
         body = output.getChild('body')
         self.body(definitions, soap.output.body, body)
         for header in output.getChildren('header'):
             self.header(definitions, soap.output, header)
         faults = []
         for fault in c.getChildren('fault'):
             sf = fault.getChild('fault')
             if sf is None:
                 continue
             fn = fault.get('name')
             f = Facade('Fault')
             f.name = sf.get('name', default=fn)
             f.use = sf.get('use', default='literal')
             faults.append(f)
         soap.faults = faults
         self.operations[op.name] = op
Пример #18
0
    def __init__(self, root, definitions):
        """
        @param root: An XML root element.
        @type root: L{Element}
        @param definitions: A definitions object.
        @type definitions: L{Definitions}

        """
        NamedObject.__init__(self, root, definitions)
        self.operations = {}
        for c in root.getChildren("operation"):
            op = Facade("Operation")
            op.name = c.get("name")
            op.tns = definitions.tns
            input = c.getChild("input")
            if input is None:
                op.input = None
            else:
                op.input = input.get("message")
            output = c.getChild("output")
            if output is None:
                op.output = None
            else:
                op.output = output.get("message")
            faults = []
            for fault in c.getChildren("fault"):
                f = Facade("Fault")
                f.name = fault.get("name")
                f.message = fault.get("message")
                faults.append(f)
            op.faults = faults
            self.operations[op.name] = op