diff options
author | Anas Nashif <nashif@intel.com> | 2007-03-29 22:51:38 +0000 |
---|---|---|
committer | Anas Nashif <nashif@intel.com> | 2007-03-29 22:51:38 +0000 |
commit | e1733517e5958b3850d3f0353ed43699712b9398 (patch) | |
tree | f024d68cca1e8cd0bb0554927881b8a31ac85118 /src | |
parent | 3f5ed5e8b6a6e08b1d09be03bf8298bb1209cfa3 (diff) | |
download | wsmancli-e1733517e5958b3850d3f0353ed43699712b9398.tar.gz wsmancli-e1733517e5958b3850d3f0353ed43699712b9398.tar.xz wsmancli-e1733517e5958b3850d3f0353ed43699712b9398.zip |
merged changes by Sumeet: references
Diffstat (limited to 'src')
-rw-r--r-- | src/wsman-client-options.c | 1 | ||||
-rw-r--r-- | src/wsman.c | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/wsman-client-options.c b/src/wsman-client-options.c index a2e0226..c8ddebf 100644 --- a/src/wsman-client-options.c +++ b/src/wsman-client-options.c @@ -112,6 +112,7 @@ WsActions action_data[] = { {"create", WSMAN_ACTION_TRANSFER_CREATE}, {"delete", WSMAN_ACTION_TRANSFER_DELETE}, {"enumerate", WSMAN_ACTION_ENUMERATION}, + { "references", WSMAN_ACTION_ENUMERATE_REFERENCE_INSTANCES}, {"pull", WSMAN_ACTION_PULL}, {"release", WSMAN_ACTION_RELEASE}, {"invoke", WSMAN_ACTION_CUSTOM}, diff --git a/src/wsman.c b/src/wsman.c index f613ad6..69c4e5a 100644 --- a/src/wsman.c +++ b/src/wsman.c @@ -103,6 +103,7 @@ int main(int argc, char **argv) WsXmlDocH rqstDoc; actionOptions *options; WsXmlDocH enum_response; + WsXmlDocH reference_response; WsXmlDocH resource; char *enumeration_mode, *binding_enumeration_mode, *resource_uri_with_selectors; @@ -357,6 +358,40 @@ int main(int argc, char **argv) } u_free(enumContext); break; + case WSMAN_ACTION_ENUMERATE_REFERENCE_INSTANCES: + fprintf(stderr, "Enumerate Reference Instances. resource_uri: %s\n", resource_uri); + reference_response = wsenum_reference_instances(cl, resource_uri, options); + wsman_output(cl, reference_response); + if (reference_response) { + if (!(wsman_client_get_response_code(cl) == 200 || + wsman_client_get_response_code(cl) == 400 || + wsman_client_get_response_code(cl) == 500)) { + break; + } + enumContext = wsenum_get_enum_context(reference_response); + ws_xml_destroy_doc(reference_response); + } else { + break; + } + + if (!wsman_options_get_step_request()) { + while (enumContext != NULL && enumContext[0] != 0) { + + doc = wsenum_pull(cl, resource_uri, options, enumContext); + wsman_output(cl, doc); + + if (wsman_client_get_response_code(cl) != 200 && + wsman_client_get_response_code(cl) != 400 && + wsman_client_get_response_code(cl) != 500) { + break; + } + enumContext = wsenum_get_enum_context(doc); + if (doc) { + ws_xml_destroy_doc(doc); + } + } + } + break; default: fprintf(stderr, "Action not supported\n"); retVal = 1; |