def _create(self, operation, args, kwargs, client=None, options=None): """Create the XML document to send to the server. Note that this generates the soap envelope without the wsse applied. """ operation_obj = self.get(operation) if not operation_obj: raise ValueError("Operation %r not found" % operation) # Create the SOAP envelope serialized = operation_obj.create(*args, **kwargs) self._set_http_headers(serialized, operation_obj) envelope = serialized.content http_headers = serialized.headers # Apply ws-addressing if client: if not options: options = client.service._binding_options if operation_obj.abstract.input_message.wsa_action: envelope, http_headers = wsa.WsAddressingPlugin().egress( envelope, http_headers, operation_obj, options) # Apply plugins envelope, http_headers = plugins.apply_egress( client, envelope, http_headers, operation_obj, options) # Apply WSSE if client.wsse: envelope, http_headers = client.wsse.apply(envelope, http_headers) return envelope, http_headers
def _create(self, operation, args, kwargs, client=None, options=None): """Create the XML document to send to the server. Note that this generates the soap envelope without the wsse applied. """ operation_obj = self.get(operation) if not operation_obj: raise ValueError("Operation %r not found" % operation) # Create the SOAP envelope serialized = operation_obj.create(*args, **kwargs) self._set_http_headers(serialized, operation_obj) envelope = serialized.content http_headers = serialized.headers # Apply ws-addressing if client: if not options: options = client.service._binding_options if operation_obj.abstract.input_message.wsa_action: envelope, http_headers = wsa.WsAddressingPlugin().egress( envelope, http_headers, operation_obj, options) # Apply plugins envelope, http_headers = plugins.apply_egress( client, envelope, http_headers, operation_obj, options) # Apply WSSE if client.wsse: envelope, http_headers = client.wsse.sign(envelope, http_headers) return envelope, http_headers
def _create(self, operation, args, kwargs, client=None, options=None): """Create the XML document to send to the server. Note that this generates the soap envelope without the wsse applied. """ operation_obj = self.get(operation) if not operation_obj: raise ValueError("Operation %r not found" % operation) # Create the SOAP envelope serialized = operation_obj.create(*args, **kwargs) self._set_http_headers(serialized, operation_obj) envelope = serialized.content http_headers = serialized.headers # Apply ws-addressing if client: if not options: options = client.service._binding_options # CTIE does not accept WSA # if operation_obj.abstract.wsa_action: # envelope, http_headers = wsa.WsAddressingPlugin().egress( # envelope, http_headers, operation_obj, options # ) # Apply plugins envelope, http_headers = plugins.apply_egress( client, envelope, http_headers, operation_obj, options) # Apply WSSE if client.wsse: if isinstance(client.wsse, list): for wsse in client.wsse: envelope, http_headers = wsse.apply( envelope, http_headers) else: envelope, http_headers = client.wsse.apply( envelope, http_headers) # Add extra http headers from the setings object if client.settings.extra_http_headers: http_headers.update(client.settings.extra_http_headers) return envelope, http_headers