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)
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
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
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)
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)
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
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
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)
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
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
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
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)
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
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