summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorAnas Nashif <nashif@intel.com>2007-03-04 06:03:20 +0000
committerAnas Nashif <nashif@intel.com>2007-03-04 06:03:20 +0000
commit7a8e33d1532cbab32099b2b0d5ffbe57308af2d7 (patch)
treec12b25e4a955b347879bd122d5dc9ca09a07cb4a /examples
parentc403025da2cb37bcc3e72fbf957fa2df04c63f28 (diff)
downloadwsmancli-7a8e33d1532cbab32099b2b0d5ffbe57308af2d7.tar.gz
wsmancli-7a8e33d1532cbab32099b2b0d5ffbe57308af2d7.tar.xz
wsmancli-7a8e33d1532cbab32099b2b0d5ffbe57308af2d7.zip
fixed example clients
Diffstat (limited to 'examples')
-rw-r--r--examples/win32_service.c420
-rw-r--r--examples/wsmid_identify.c3
2 files changed, 213 insertions, 210 deletions
diff --git a/examples/win32_service.c b/examples/win32_service.c
index 791b1c5..6bbf491 100644
--- a/examples/win32_service.c
+++ b/examples/win32_service.c
@@ -38,101 +38,98 @@
#include <errno.h>
#include <time.h>
-#include "u/libu.h"
-#include "wsman-client-api.h"
-#include "wsman-client-transport.h"
-#include "wsman-xml-serializer.h"
+#include "wsman-api.h"
#define RESOURCE_URI "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
#define CLASSNAME "Win32_Service"
/*
- boolean AcceptPause;
- boolean AcceptStop;
- string Caption;
- uint32 CheckPoint;
- string CreationClassName;
- string Description;
- boolean DesktopInteract;
- string DisplayName;
- string ErrorControl;
- uint32 ExitCode;
- datetime InstallDate;
- string Name;
- string PathName;
- uint32 ProcessId;
- uint32 ServiceSpecificExitCode;
- string ServiceType;
- boolean Started;
- string StartMode;
- string StartName;
- string State;
- string Status;
- string SystemCreationClassName;
- string SystemName;
- uint32 TagId;
- uint32 WaitHint;
-
- */
+ boolean AcceptPause;
+ boolean AcceptStop;
+ string Caption;
+ uint32 CheckPoint;
+ string CreationClassName;
+ string Description;
+ boolean DesktopInteract;
+ string DisplayName;
+ string ErrorControl;
+ uint32 ExitCode;
+ datetime InstallDate;
+ string Name;
+ string PathName;
+ uint32 ProcessId;
+ uint32 ServiceSpecificExitCode;
+ string ServiceType;
+ boolean Started;
+ string StartMode;
+ string StartName;
+ string State;
+ string Status;
+ string SystemCreationClassName;
+ string SystemName;
+ uint32 TagId;
+ uint32 WaitHint;
+
+*/
struct __CIM_Servie
{
- XML_TYPE_BOOL AcceptPause;
- XML_TYPE_BOOL AcceptStop;
- XML_TYPE_STR Caption;
- XML_TYPE_UINT32 CheckPoint;
- XML_TYPE_STR CreationClassName;
- XML_TYPE_STR Description;
- XML_TYPE_BOOL DesktopInteract;
- XML_TYPE_STR DisplayName;
- XML_TYPE_STR ErrorControl;
- XML_TYPE_UINT32 ExitCode;
- XML_TYPE_STR InstallDate;
- XML_TYPE_STR Name;
- XML_TYPE_STR PathName;
- XML_TYPE_UINT32 ProcessId;
- XML_TYPE_UINT32 ServiceSpecificExitCode;
- XML_TYPE_STR ServiceType;
- XML_TYPE_BOOL Started;
- XML_TYPE_STR StartMode;
- XML_TYPE_STR StartName;
- XML_TYPE_STR State;
- XML_TYPE_STR Status;
- XML_TYPE_STR SystemCreationClassName;
- XML_TYPE_STR SystemName;
- XML_TYPE_UINT32 TagId;
- XML_TYPE_UINT32 WaitHint;
+ XML_TYPE_BOOL AcceptPause;
+ XML_TYPE_BOOL AcceptStop;
+ XML_TYPE_STR Caption;
+ XML_TYPE_UINT32 CheckPoint;
+ XML_TYPE_STR CreationClassName;
+ XML_TYPE_STR Description;
+ XML_TYPE_BOOL DesktopInteract;
+ XML_TYPE_STR DisplayName;
+ XML_TYPE_STR ErrorControl;
+ XML_TYPE_UINT32 ExitCode;
+ XML_TYPE_STR InstallDate;
+ XML_TYPE_STR Name;
+ XML_TYPE_STR PathName;
+ XML_TYPE_UINT32 ProcessId;
+ XML_TYPE_UINT32 ServiceSpecificExitCode;
+ XML_TYPE_STR ServiceType;
+ XML_TYPE_BOOL Started;
+ XML_TYPE_STR StartMode;
+ XML_TYPE_STR StartName;
+ XML_TYPE_STR State;
+ XML_TYPE_STR Status;
+ XML_TYPE_STR SystemCreationClassName;
+ XML_TYPE_STR SystemName;
+ XML_TYPE_UINT32 TagId;
+ XML_TYPE_UINT32 WaitHint;
};
typedef struct __CIM_Servie CIM_Servie;
SER_START_ITEMS(CIM_Servie)
-SER_BOOL("AcceptPause", 1),
-SER_BOOL("AcceptStop", 1),
-SER_STR("Caption", 1),
-SER_UINT32("CheckPoint", 1),
-SER_STR("CreationClassName", 1),
-SER_STR("Description", 1),
-SER_BOOL("DesktopInteract", 1),
-SER_STR("DisplayName", 1),
-SER_STR("ErrorControl", 1),
-SER_UINT32("ExitCode", 1),
-SER_STR("InstallDate", 1),
-SER_STR("Name", 1),
-SER_STR("PathName", 1),
-SER_UINT32("ProcessId", 1),
-SER_UINT32("ServiceSpecificExitCode", 1),
-SER_STR("ServiceType", 1),
-SER_BOOL("Started", 1),
-SER_STR("StartMode", 1),
-SER_STR("StartName", 1),
-SER_STR("State", 1),
-SER_STR("Status", 1),
-SER_STR("SystemCreationClassName", 1),
-SER_STR("SystemName", 1),
-SER_UINT32("TagId", 1),
-SER_UINT32("WaitHint", 1),
+SER_NS_BOOL(RESOURCE_URI,"AcceptPause", 1),
+SER_NS_BOOL(RESOURCE_URI,"AcceptStop", 1),
+SER_NS_STR(RESOURCE_URI,"Caption", 1),
+SER_NS_UINT32(RESOURCE_URI,"CheckPoint", 1),
+SER_NS_STR(RESOURCE_URI,"CreationClassName", 1),
+SER_NS_STR(RESOURCE_URI,"Description", 1),
+SER_NS_BOOL(RESOURCE_URI,"DesktopInteract", 1),
+SER_NS_STR(RESOURCE_URI,"DisplayName", 1),
+SER_NS_STR(RESOURCE_URI,"ErrorControl", 1),
+SER_NS_UINT32(RESOURCE_URI,"ExitCode", 1),
+SER_NS_STR(RESOURCE_URI,"InstallDate", 1),
+SER_NS_STR(RESOURCE_URI,"Name", 1),
+SER_NS_STR(RESOURCE_URI,"PathName", 1),
+SER_NS_UINT32(RESOURCE_URI,"ProcessId", 1),
+SER_NS_UINT32(RESOURCE_URI,"ServiceSpecificExitCode", 1),
+SER_NS_STR(RESOURCE_URI,"ServiceType", 1),
+SER_NS_BOOL(RESOURCE_URI,"Started", 1),
+SER_NS_STR(RESOURCE_URI,"StartMode", 1),
+SER_NS_STR(RESOURCE_URI,"StartName", 1),
+SER_NS_STR(RESOURCE_URI,"State", 1),
+SER_NS_STR(RESOURCE_URI,"Status", 1),
+SER_NS_STR(RESOURCE_URI,"SystemCreationClassName", 1),
+SER_NS_STR(RESOURCE_URI,"SystemName", 1),
+SER_NS_UINT32(RESOURCE_URI,"TagId", 1),
+SER_NS_UINT32(RESOURCE_URI,"WaitHint", 1),
SER_END_ITEMS(CIM_Servie);
static char *endpoint = NULL;
@@ -146,143 +143,150 @@ char dump = 0;
-static void print_info(CIM_Servie *service) {
- printf("%s\n", service->Name );
- if (status)
- printf("\tState: %s\n", service->State );
- if (desc)
- printf("\tDescription: %s\n\n", service->Description );
+static void print_info(CIM_Servie *service)
+{
+ if (service->Name) {
+ printf("%s\n", service->Name );
+ } else {
+ printf("Error\n");
+ return;
+ }
+ if (status)
+ printf("\tState: %s\n", service->State );
+ if (desc)
+ printf("\tDescription: %s\n\n", service->Description );
}
static int list_services(WsManClient *cl, WsXmlDocH doc, void *data)
{
-
- if (doc) {
- WsXmlNodeH node = ws_xml_get_soap_body(doc);
- node = ws_xml_get_child(node, 0, XML_NS_ENUMERATION, WSENUM_PULL_RESP);
- node = ws_xml_get_child(node, 0, XML_NS_ENUMERATION, WSENUM_ITEMS);
- if (ws_xml_get_child(node, 0, RESOURCE_URI , CLASSNAME )) {
- CIM_Servie *service = ws_deserialize(wsman_client_get_context(cl),
- node,
- CIM_Servie_TypeInfo, CLASSNAME,
- RESOURCE_URI, NULL,
- 0, 0);
- print_info(service);
- }
- }
+ if (!doc) {
+ return;
+ }
+ if (dump)
+ ws_xml_dump_node_tree(stdout, ws_xml_get_doc_root(doc));
+ WsXmlNodeH node = ws_xml_get_soap_body(doc);
+ node = ws_xml_get_child(node, 0, XML_NS_ENUMERATION, WSENUM_PULL_RESP);
+ node = ws_xml_get_child(node, 0, XML_NS_ENUMERATION, WSENUM_ITEMS);
+ if (ws_xml_get_child(node, 0, RESOURCE_URI , CLASSNAME )) {
+ CIM_Servie *service = ws_deserialize(wsman_client_get_context(cl),
+ node,
+ CIM_Servie_TypeInfo, CLASSNAME,
+ RESOURCE_URI, NULL,
+ 0, 0);
+ print_info(service);
+ }
}
int main(int argc, char** argv)
{
-
- WsManClient *cl;
- WsXmlDocH doc;
- actionOptions options;
- char retval = 0;
- u_error_t *error = NULL;
-
-
- u_option_entry_t opt[] = {
- { "endpoint", 'u', U_OPTION_ARG_STRING, &endpoint,
- "Endpoint in form of a URL", "<uri>" },
- { "list-all", 'l', U_OPTION_ARG_NONE, &listall,
- "List all services", NULL },
- { "desc", 'd', U_OPTION_ARG_NONE, &desc,
- "Show service description", NULL },
- { "stop", 's', U_OPTION_ARG_NONE, &stop,
- "Stop service", NULL },
- { "start", 'S', U_OPTION_ARG_NONE, &start,
- "Start service", NULL },
- { "status", 'X', U_OPTION_ARG_NONE, &status,
- "Get service status", NULL },
- { "dump", 'D', U_OPTION_ARG_NONE, &dump,
- "Dump request", NULL },
- { NULL }
- };
-
- u_option_context_t *opt_ctx;
- opt_ctx = u_option_context_new("");
- u_option_context_set_ignore_unknown_options(opt_ctx, FALSE);
- u_option_context_add_main_entries(opt_ctx, opt, "Win32 Service");
- retval = u_option_context_parse(opt_ctx, &argc, &argv, &error);
-
- u_option_context_free(opt_ctx);
-
- if (error) {
- if (error->message)
- printf ("%s\n", error->message);
- u_error_free(error);
- return 1;
- }
- u_error_free(error);
-
-
- u_uri_t *uri;
- if (endpoint) {
- u_uri_parse((const char *)endpoint, &uri);
- }
- if (!endpoint || !uri) {
- fprintf(stderr, "endpoint option required\n");
- return 1;
- }
-
-
- wsman_client_transport_init(NULL);
- cl = wsman_create_client( uri->host,
- uri->port,
- uri->path,
- uri->scheme,
- uri->user,
- uri->pwd);
- initialize_action_options(&options);
-
- if (listall) {
- wsenum_enumerate_and_pull(cl, RESOURCE_URI, options, list_services, NULL );
-
- } else if (start && argv[1]) {
- if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
- wsman_client_add_selector(&options, "Name", argv[1]);
- doc = wsman_invoke(cl, RESOURCE_URI, options,
- "StartService", NULL);
- ws_xml_dump_node_tree(stdout, ws_xml_get_doc_root(doc));
- ws_xml_destroy_doc(doc);
- } else if (stop && argv[1]) {
- if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
- wsman_client_add_selector(&options, "Name", argv[1]);
- doc = wsman_invoke(cl, RESOURCE_URI, options,
- "StopService", NULL);
- ws_xml_dump_node_tree(stdout, ws_xml_get_doc_root(doc));
- ws_xml_destroy_doc(doc);
- } else if ( argv[1] ) {
- if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
- wsman_client_add_selector(&options, "Name", argv[1]);
- doc = ws_transfer_get(cl, RESOURCE_URI,
- options);
- if (doc) {
- WsXmlNodeH node = ws_xml_get_soap_body(doc);
- if (ws_xml_get_child(node, 0, RESOURCE_URI , CLASSNAME )) {
- CIM_Servie *service = ws_deserialize(wsman_client_get_context(cl),
- node,
- CIM_Servie_TypeInfo, CLASSNAME,
- RESOURCE_URI, NULL,
- 0, 0);
- desc = 1;
- status = 1;
- print_info(service);
- }
- }
- ws_xml_destroy_doc(doc);
- }
-
- if (uri) {
- u_uri_free(uri);
- }
-
- destroy_action_options(&options);
- wsman_release_client(cl);
- return 0;
+ WsManClient *cl;
+ WsXmlDocH doc;
+ actionOptions options;
+ char retval = 0;
+ u_error_t *error = NULL;
+
+
+ u_option_entry_t opt[] = {
+ { "endpoint", 'u', U_OPTION_ARG_STRING, &endpoint,
+ "Endpoint in form of a URL", "<uri>" },
+ { "list-all", 'l', U_OPTION_ARG_NONE, &listall,
+ "List all services", NULL },
+ { "desc", 'd', U_OPTION_ARG_NONE, &desc,
+ "Show service description", NULL },
+ { "stop", 's', U_OPTION_ARG_NONE, &stop,
+ "Stop service", NULL },
+ { "start", 'S', U_OPTION_ARG_NONE, &start,
+ "Start service", NULL },
+ { "status", 'X', U_OPTION_ARG_NONE, &status,
+ "Get service status", NULL },
+ { "dump", 'D', U_OPTION_ARG_NONE, &dump,
+ "Dump request", NULL },
+ { NULL }
+ };
+
+ u_option_context_t *opt_ctx;
+ opt_ctx = u_option_context_new("");
+ u_option_context_set_ignore_unknown_options(opt_ctx, FALSE);
+ u_option_context_add_main_entries(opt_ctx, opt, "Win32 Service");
+ retval = u_option_context_parse(opt_ctx, &argc, &argv, &error);
+
+ u_option_context_free(opt_ctx);
+
+ if (error) {
+ if (error->message)
+ printf ("%s\n", error->message);
+ u_error_free(error);
+ return 1;
+ }
+ u_error_free(error);
+
+
+ u_uri_t *uri;
+ if (endpoint) {
+ u_uri_parse((const char *)endpoint, &uri);
+ }
+ if (!endpoint || !uri) {
+ fprintf(stderr, "endpoint option required\n");
+ return 1;
+ }
+
+
+ wsman_client_transport_init(NULL);
+ cl = wsman_create_client( uri->host,
+ uri->port,
+ uri->path,
+ uri->scheme,
+ uri->user,
+ uri->pwd);
+ initialize_action_options(&options);
+
+ if (listall) {
+ if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
+ wsenum_enumerate_and_pull(cl, RESOURCE_URI, options, list_services, NULL );
+ } else if (start && argv[1]) {
+ if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
+ wsman_client_add_selector(&options, "Name", argv[1]);
+ doc = wsman_invoke(cl, RESOURCE_URI, options,
+ "StartService", NULL);
+ ws_xml_dump_node_tree(stdout, ws_xml_get_doc_root(doc));
+ ws_xml_destroy_doc(doc);
+ } else if (stop && argv[1]) {
+ if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
+ wsman_client_add_selector(&options, "Name", argv[1]);
+ doc = wsman_invoke(cl, RESOURCE_URI, options,
+ "StopService", NULL);
+ ws_xml_dump_node_tree(stdout, ws_xml_get_doc_root(doc));
+ ws_xml_destroy_doc(doc);
+ } else if ( argv[1] ) {
+ if (dump) wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
+ wsman_client_add_selector(&options, "Name", argv[1]);
+ doc = ws_transfer_get(cl, RESOURCE_URI,
+ options);
+ if (doc) {
+ WsXmlNodeH node = ws_xml_get_soap_body(doc);
+ if (ws_xml_get_child(node, 0, RESOURCE_URI , CLASSNAME )) {
+ CIM_Servie *service = ws_deserialize(wsman_client_get_context(cl),
+ node,
+ CIM_Servie_TypeInfo, CLASSNAME,
+ RESOURCE_URI, NULL,
+ 0, 0);
+ desc = 1;
+ status = 1;
+ print_info(service);
+ }
+ }
+ ws_xml_destroy_doc(doc);
+ }
+
+ if (uri) {
+ u_uri_free(uri);
+ }
+
+ destroy_action_options(&options);
+ wsman_release_client(cl);
+ return 0;
}
diff --git a/examples/wsmid_identify.c b/examples/wsmid_identify.c
index 654c9eb..2893f86 100644
--- a/examples/wsmid_identify.c
+++ b/examples/wsmid_identify.c
@@ -39,8 +39,7 @@
#include <time.h>
-#include "wsman-client-api.h"
-#include "wsman-xml-serializer.h"
+#include "wsman-api.h"
struct __wsmid_identify
{