wsman-client.i client declarations for openwsman swig bindings
%rename(Client) _WsManClient; %nodefault _WsManClient; typedef struct _WsManClient { } WsManClient;
Document-class: Client Instances of Client represent a connection to a client used for sending WS-Management operation requests. /
%extend _WsManClient {
/* Create a client connection. There are two ways to connect to a client, either by specifying a URL or by passing all client parameters separately call-seq: Client.new(uri) Client.new(host, port, path, scheme, username, password) Client.new("http://user:pass@host.domain.com:1234/path") Client.new("host.domain.com", 1234, "/path", "http", "user", "pass") / _WsManClient( const char *uri ) { struct _WsManClient *client = wsmc_create_from_uri( uri ); if (client == NULL) SWIG_exception( SWIG_ValueError, "Can't create Openwsman::Client from given URI" );
if defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGJAVA)
fail:
endif
return client; } /* / _WsManClient(const char *hostname, const int port, const char *path, const char *scheme, const char *username, const char *password) { struct _WsManClient *client = wsmc_create( hostname, port, path, scheme, username, password ); if (client == NULL) SWIG_exception( SWIG_ValueError, "Can't create Openwsman::Client from given values" );
if defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGJAVA)
fail:
endif
return client; } /* destructor ~_WsManClient() { wsmc_release( $self ); } /* set dumpfile */
if defined(SWIGRUBY)
%rename( "dumpfile=" ) set_dumpfile( FILE *f );
endif
/* Set the dumpfile (for debugging) to dump xml requests call-seq: client.dumpfile = File.open(...) / void set_dumpfile( FILE *f ) { wsmc_set_dumpfile( $self, f ); } /* Response code of the last request (HTTP response code) call-seq: client.reponse_code -> Integer / long response_code() { return wsmc_get_response_code( $self ); } %newobject scheme; /* String representation of the transport scheme call-seq: client.scheme -> String / char *scheme() { return wsmc_get_scheme( $self ); } %newobject host; /* The host part of the client URL / char *host() { return wsmc_get_hostname( $self ); } /* The TCP port used in the connection / int port() { return wsmc_get_port( $self ); } %newobject path; /* The path of the clien URL / char *path() { return wsmc_get_path( $self ); } %newobject user; /* The user name used for authentication / char *user() { return wsmc_get_user( $self ); } %newobject password; /* The password used for authentication / char *password() { return wsmc_get_password( $self ); } /* The Transport instance associated to the client / WsManTransport *transport() { wsmc_transport_init($self, NULL); wsmc_transport_set_auth_request_func( $self, auth_request_callback ); return (WsManTransport *)$self; } /* Send a (raw) SOAP request to the client call-seq: client.send_request(XmlDoc.new("<xml ...>...</xml>")) -> Integer / int send_request(WsXmlDocH request) { return wsman_send_request($self, request); } /* Build envelope from response call-seq: client.build_envelope_from_response() -> XmlDoc / WsXmlDocH build_envelope_from_response() { return wsmc_build_envelope_from_response($self); } /* Get client encoding call-seq: client.encoding -> "utf-8" / char *encoding() { return wsmc_get_encoding($self); }
if defined(SWIGRUBY)
%rename( "encoding=" ) set_encoding( const char *encoding );
endif
/* Set client encoding call-seq: client.encoding = "utf-8" / void set_encoding(const char *encoding) { wsmc_set_encoding($self, encoding); }
/—————————————————————–/ /* actions */
/* WS-Identify identify: Sends an identify request call-seq: client.identify(options) -> XmlDoc / WsXmlDocH identify( client_opt_t *options ) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_identify_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_identify_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_identify( $self, options );
endif
} /* WS-Get get_from_epr: Get a resource via an endpoint reference call-seq: client.get_from_epr(options, end_point_reference) -> XmlDoc / WsXmlDocH get_from_epr( client_opt_t *options , epr_t *epr) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.epr = epr;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_get_from_epr_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_get_from_epr_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_get_from_epr( $self, epr, options);
endif
} /* WS-Delete delete_from_epr: Remove a resource via an endpoint reference call-seq: client.delete_from_epr(options, end_point_reference) -> XmlDoc / WsXmlDocH delete_from_epr( client_opt_t *options , epr_t *epr) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.epr = epr;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_delete_from_epr_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_delete_from_epr_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_delete_from_epr( $self, epr, options);
endif
} /* WS-Enumerate enumerate: List resources It is highly recommended to do an optimized enumeration by setting the client options options.flags = Openwsman::FLAG_ENUMERATION_OPTIMIZATION options.max_elements = 999 to get the enumeration result as part of the http request. Otherwise separate pull requests are needed resulting in extra round-trips (client -> wsman -> cimom & back), dramatically affecting performance. call-seq: client.enumerate(options, filter, uri) -> XmlDoc / WsXmlDocH enumerate( client_opt_t *options , filter_t *filter, char *resource_uri) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.filter = filter; args.resource_uri = resource_uri;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_enumerate_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_enumerate_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_enumerate( $self, resource_uri, options, filter);
endif
} /* WS-Transport pull: Get resources from enumeration context call-seq: client.pull(options, filter, uri, context) -> XmlDoc / WsXmlDocH pull( client_opt_t *options , filter_t *filter, const char *resource_uri, const char *context) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.filter = filter; args.resource_uri = resource_uri; args.context = context;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_pull_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_pull_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_pull( $self, resource_uri, options, filter, context);
endif
} /* WS-Create create: Create a resource call-seq: client.create(options, uri, xml, xml.size, "utf-8") -> XmlDoc / WsXmlDocH create( client_opt_t *options, const char *resource_uri, const char *data, size_t size, const char *encoding = "utf-8") {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri; args.data = data; args.size = size; args.encoding = encoding;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_create_fromtext_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_create_fromtext_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_create_fromtext( $self, resource_uri, options, data, size, encoding);
endif
} /* WS-Transport put: Change a resource call-seq: client.put(options, uri, xml, xml.size, "utf-8") -> XmlDoc / WsXmlDocH put( client_opt_t *options, const char *resource_uri, const char *data, size_t size, const char *encoding = "utf-8") {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri; args.data = data; args.size = size; args.encoding = encoding;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_put_fromtext_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_put_fromtext_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_put_fromtext( $self, resource_uri, options, data, size, encoding);
endif
} /* WS-Release release: Release enumeration context call-seq: client.release(options, uri, context) -> XmlDoc / WsXmlDocH release( client_opt_t *options, const char *resource_uri, const char *context) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri; args.context = context;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_release_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_release_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_release( $self, resource_uri, options, context);
endif
} /* WS-Transport get: Get a resource call-seq: client.get(options, uri) -> XmlDoc / WsXmlDocH get( client_opt_t *options, const char *resource_uri) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_get_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_get_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_get( $self, resource_uri, options);
endif
} /* WS-Transport delete: Delete a resource call-seq: client.delete(options, uri) -> XmlDoc / WsXmlDocH delete( client_opt_t *options, const char *resource_uri) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_delete_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_delete_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_delete( $self, resource_uri, options);
endif
} /* WS-Invoke invoke: Invoke a resource function call-seq: client.invoke(options, uri, "method-name") -> XmlDoc client.invoke(options, uri, "method-name", xml_doc) -> XmlDoc / WsXmlDocH invoke( client_opt_t *options, const char *resource_uri, const char *method, WsXmlDocH data = NULL) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri; args.method = method; args.method_args = data;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_invoke_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_invoke_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_invoke( $self, resource_uri, options, method, data);
endif
} /* WS-Eventing subscribe: Subscribe a listener to events call-seq: client.subscribe(options, filter, uri) -> XmlDoc / WsXmlDocH subscribe(client_opt_t *options, filter_t *filter, const char *resource_uri) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.filter = filter; args.resource_uri = resource_uri;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_subscribe_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_subscribe_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_subscribe($self, resource_uri, options, filter);
endif
} /* WS-Eventing unsubscribe: Remove a listener from events call-seq: client.unsubscribe(options, filter, uri, identifier) -> XmlDoc / WsXmlDocH unsubscribe(client_opt_t *options, filter_t *filter, const char *resource_uri, const char *identifier) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.filter = filter; args.resource_uri = resource_uri; args.identifier = identifier;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_unsubscribe_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_unsubscribe_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_unsubscribe($self, resource_uri, options, identifier);
endif
} /* WS-Eventing renew: Renew a subscription call-seq: client.renew(options, uri, identifier) -> XmlDoc / WsXmlDocH renew(client_opt_t *options , char *resource_uri, char *identifier) {
if RUBY_VERSION > 18 /* YARV */
wsmc_action_args_t args; args.client = $self; args.options = options; args.resource_uri = resource_uri; args.identifier = identifier;
if RUBY_VERSION > 20 /* New threading model */
return (WsXmlDocH)rb_thread_call_without_gvl((void * (*)(void *))ruby_renew_thread, &args, RUBY_UBF_IO, 0);
else
return (WsXmlDocH)rb_thread_blocking_region((rb_blocking_function_t*)ruby_renew_thread, &args, RUBY_UBF_IO, 0);
endif else
return wsmc_action_renew($self, resource_uri, options, identifier);
endif
} /* Get a string representation of the last fault call-seq: client.fault_string -> String / char *fault_string() { return wsmc_get_fault_string($self); } /* Get a numeric representation of the last fault call-seq: client.last_error -> Integer / int last_error() { return wsmc_get_last_error($self); }
}