openwsman 2.4.14 → 2.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/openwsman/openwsman.i +24 -0
- data/ext/openwsman/version.i +3 -3
- data/ext/openwsman/wsman-client_opt.i +16 -37
- data/ext/openwsman/wsman-epr.i +6 -8
- data/ext/ruby/helpers.h +24 -16
- data/lib/openwsman/openwsman.rb +36 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 863a157db8977112dd862c430f9f8ae8348fa448
|
4
|
+
data.tar.gz: 7d78155cf5883a0bdc1f4d83a14f4c20dbe94a9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87a91cb1af88c6a4cb74f6367791a8bcf7c863aa49ab5f9fc06044fe0345ecce65a7b87a58514c98cf8dad6e9dfafaf396822d9ddd6adeec5663ab2f9e79b081
|
7
|
+
data.tar.gz: 103cbaf1914d50d0693232cba422ba9880e2db2860d0c8c2977ff8117e392034e185d4802c047063246e945459f66da5ef0bd9c54e823f93ddac5221e3856949
|
data/ext/openwsman/openwsman.i
CHANGED
@@ -182,6 +182,9 @@ SWIGINTERNINLINE SV *SWIG_From_double SWIG_PERL_DECL_ARGS_1(double value);
|
|
182
182
|
|
183
183
|
#if defined(SWIGPYTHON)
|
184
184
|
%module pywsman
|
185
|
+
/* Wrap file operations, as Python's native ones are incompatible */
|
186
|
+
FILE *fopen(char *, char *);
|
187
|
+
void fclose(FILE *f);
|
185
188
|
#endif
|
186
189
|
|
187
190
|
#if defined(SWIGPERL)
|
@@ -419,6 +422,27 @@ static epr_t *my_epr_deserialize(WsXmlNodeH node) {
|
|
419
422
|
/* else search the WSA_EPR node */
|
420
423
|
return epr_deserialize(node, XML_NS_ADDRESSING, WSA_EPR, 1);
|
421
424
|
}
|
425
|
+
|
426
|
+
static VALUE kv_list_to_hash(list_t *list)
|
427
|
+
{
|
428
|
+
VALUE v = Qnil;
|
429
|
+
if (!list_isempty(list)) {
|
430
|
+
v = rb_hash_new();
|
431
|
+
lnode_t *node = list_first(list);
|
432
|
+
while (node) {
|
433
|
+
key_value_t *kv = (key_value_t *)node->list_data;
|
434
|
+
if (kv->type == 0) {
|
435
|
+
rb_hash_aset( v, makestring(kv->key), makestring(kv->v.text));
|
436
|
+
}
|
437
|
+
else {
|
438
|
+
VALUE epr = SWIG_NewPointerObj((void*)kv->v.epr, SWIGTYPE_p_epr_t, 0);
|
439
|
+
rb_hash_aset( v, makestring(kv->key), epr);
|
440
|
+
}
|
441
|
+
node = list_next(list, node);
|
442
|
+
}
|
443
|
+
}
|
444
|
+
return v;
|
445
|
+
}
|
422
446
|
#endif
|
423
447
|
|
424
448
|
static char *epr_prefix(const char *uri);
|
data/ext/openwsman/version.i
CHANGED
@@ -368,42 +368,36 @@ typedef struct {} client_opt_t;
|
|
368
368
|
* Add a selector as key/value pair
|
369
369
|
*
|
370
370
|
* NOTE:
|
371
|
-
* the value must be properly escaped (replace & with &, etc.)
|
371
|
+
* the string value must be properly escaped (replace & with &, etc.)
|
372
372
|
* in Ruby use CGI::escapeHTML()
|
373
373
|
*
|
374
374
|
* call-seq:
|
375
375
|
* options.add_selector "Key", "Value"
|
376
|
+
* options.add_selector "Key", end_point_reference
|
376
377
|
*
|
377
378
|
*/
|
378
379
|
void add_selector(VALUE k, VALUE v)
|
379
380
|
{
|
380
381
|
const char *key = as_string(k);
|
381
|
-
|
382
|
+
KLASS_DECL(SwigClassEndPointReference,SWIGTYPE_p_epr_t);
|
383
|
+
if (CLASS_OF(v) == KLASS_OF(SwigClassEndPointReference)) {
|
384
|
+
epr_t *epr;
|
385
|
+
SWIG_ConvertPtr(v, (void **)&epr, SWIGTYPE_p_epr_t, 0);
|
386
|
+
wsmc_add_selector_epr($self, key, epr);
|
387
|
+
}
|
388
|
+
else {
|
389
|
+
const char *value = as_string(v);
|
390
|
+
wsmc_add_selector($self, key, value);
|
391
|
+
}
|
392
|
+
}
|
382
393
|
#else
|
383
394
|
void add_selector(const char *key, const char *value)
|
384
395
|
{
|
385
|
-
#endif
|
386
396
|
wsmc_add_selector($self, key, value);
|
387
397
|
}
|
398
|
+
#endif
|
388
399
|
|
389
400
|
#if defined(SWIGRUBY)
|
390
|
-
%rename( "selectors=" ) set_selectors(VALUE hash);
|
391
|
-
/*
|
392
|
-
* Set selectors from Hash
|
393
|
-
*
|
394
|
-
* NOTE:
|
395
|
-
* the values must be properly escaped (replace & with &, etc.)
|
396
|
-
* in Ruby use CGI::escapeHTML()
|
397
|
-
*
|
398
|
-
* call-seq:
|
399
|
-
* options.selectors = { "Key" => "Value", ... }
|
400
|
-
*
|
401
|
-
*/
|
402
|
-
void set_selectors(VALUE hash)
|
403
|
-
{
|
404
|
-
$self->selectors = value2hash(NULL, hash, 0);
|
405
|
-
}
|
406
|
-
|
407
401
|
%rename( "selectors" ) get_selectors(void);
|
408
402
|
/*
|
409
403
|
* Get selectors as Hash
|
@@ -414,7 +408,7 @@ typedef struct {} client_opt_t;
|
|
414
408
|
*/
|
415
409
|
VALUE get_selectors(void)
|
416
410
|
{
|
417
|
-
return
|
411
|
+
return kv_list_to_hash($self->selectors);
|
418
412
|
}
|
419
413
|
#endif
|
420
414
|
|
@@ -485,22 +479,7 @@ typedef struct {} client_opt_t;
|
|
485
479
|
*/
|
486
480
|
VALUE get_properties(void)
|
487
481
|
{
|
488
|
-
|
489
|
-
if (!list_isempty($self->properties)) {
|
490
|
-
v = rb_hash_new();
|
491
|
-
lnode_t *node = list_first($self->properties);
|
492
|
-
while (node) {
|
493
|
-
client_property_t *property = (client_property_t *)node->list_data;
|
494
|
-
if (property->value.type == 0) {
|
495
|
-
rb_hash_aset( v, makestring(property->key), makestring(property->value.entry.text));
|
496
|
-
}
|
497
|
-
else {
|
498
|
-
rb_hash_aset( v, makestring(property->key), makestring(epr_to_string(property->value.entry.eprp)));
|
499
|
-
}
|
500
|
-
node = list_next($self->properties, node);
|
501
|
-
}
|
502
|
-
}
|
503
|
-
return v;
|
482
|
+
return kv_list_to_hash($self->properties);
|
504
483
|
}
|
505
484
|
#endif
|
506
485
|
|
data/ext/openwsman/wsman-epr.i
CHANGED
@@ -193,9 +193,9 @@ typedef struct {} epr_t;
|
|
193
193
|
#endif
|
194
194
|
int i;
|
195
195
|
Target_Type ary = Target_SizedArray($self->refparams.selectorset.count);
|
196
|
-
|
196
|
+
key_value_t *p = $self->refparams.selectorset.selectors;
|
197
197
|
for (i = 0; i < $self->refparams.selectorset.count; i++) {
|
198
|
-
Target_ListSet(ary, i, SWIG_FromCharPtr(p->
|
198
|
+
Target_ListSet(ary, i, SWIG_FromCharPtr(p->key));
|
199
199
|
++p;
|
200
200
|
}
|
201
201
|
#if defined(SWIGPERL)
|
@@ -216,18 +216,16 @@ typedef struct {} epr_t;
|
|
216
216
|
*/
|
217
217
|
void each() {
|
218
218
|
int i;
|
219
|
-
|
219
|
+
key_value_t *p = NULL;
|
220
220
|
VALUE value, ary;
|
221
221
|
p = $self->refparams.selectorset.selectors;
|
222
222
|
for (i = 0; i < $self->refparams.selectorset.count; i++) {
|
223
223
|
ary = rb_ary_new2(2);
|
224
|
-
rb_ary_store(ary, 0, SWIG_FromCharPtr(p->
|
224
|
+
rb_ary_store(ary, 0, SWIG_FromCharPtr(p->key));
|
225
225
|
if (p->type == 0) {
|
226
|
-
value = SWIG_FromCharPtr(p->
|
226
|
+
value = SWIG_FromCharPtr(p->v.text);
|
227
227
|
} else {
|
228
|
-
|
229
|
-
value = SWIG_FromCharPtr(epr_value);
|
230
|
-
u_free(epr_value);
|
228
|
+
value = SWIG_NewPointerObj((void*) p->v.epr, SWIGTYPE_p_epr_t, 0);
|
231
229
|
}
|
232
230
|
rb_ary_store(ary, 1, value);
|
233
231
|
rb_yield(ary);
|
data/ext/ruby/helpers.h
CHANGED
@@ -125,26 +125,34 @@ _add_str( VALUE key, VALUE value, hash_t *h )
|
|
125
125
|
}
|
126
126
|
|
127
127
|
|
128
|
-
/* add key,value VALUE pair to hash_t* as
|
128
|
+
/* add key,value VALUE pair to hash_t* as key_value_t*
|
129
129
|
* (used as callback for value2hash)
|
130
130
|
*/
|
131
131
|
static int
|
132
|
-
|
132
|
+
_add_kv( VALUE key, VALUE value, hash_t *h )
|
133
133
|
{
|
134
134
|
if (key != Qundef) {
|
135
|
-
const char *k =
|
135
|
+
const char *k = as_string( key );
|
136
136
|
if (!hash_lookup( h, k ) ) {
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
137
|
+
epr_t *epr;
|
138
|
+
const char *text;
|
139
|
+
key_value_t *entry;
|
140
|
+
KLASS_DECL(SwigClassEndPointReference,SWIGTYPE_p_epr_t);
|
141
|
+
if (CLASS_OF(value) == KLASS_OF(SwigClassEndPointReference)) {
|
142
|
+
SWIG_ConvertPtr(value, (void **)&epr, SWIGTYPE_p_epr_t, 0);
|
143
|
+
text = NULL;
|
144
|
+
}
|
145
|
+
else if (TYPE(value) == T_ARRAY) {
|
146
|
+
rb_raise( rb_eException, "Passing array parameter via invoke() still unsupported" );
|
147
|
+
}
|
148
|
+
else {
|
149
|
+
text = as_string(value);
|
150
|
+
epr = NULL;
|
151
|
+
}
|
152
|
+
entry = key_value_create(k, text, epr, NULL);
|
153
|
+
if ( !hash_alloc_insert( h, k, entry ) ) {
|
154
|
+
rb_raise( rb_eException, "hash_alloc_insert failed" );
|
155
|
+
}
|
148
156
|
}
|
149
157
|
}
|
150
158
|
return 0;
|
@@ -158,7 +166,7 @@ _add_selector( VALUE key, VALUE value, hash_t *h )
|
|
158
166
|
*
|
159
167
|
* valuetype - type of hash values
|
160
168
|
* 0 - values are string (char *)
|
161
|
-
* 1 - values are
|
169
|
+
* 1 - values are key_value_t *
|
162
170
|
*
|
163
171
|
*/
|
164
172
|
static hash_t *
|
@@ -170,7 +178,7 @@ value2hash( hash_t *h, VALUE v, int valuetype )
|
|
170
178
|
|
171
179
|
if (!h) h = hash_create3(HASHCOUNT_T_MAX, 0, 0);
|
172
180
|
|
173
|
-
rb_hash_foreach( v, (valuetype==0)?_add_str:
|
181
|
+
rb_hash_foreach( v, (valuetype==0)?_add_str:_add_kv, (unsigned long)h );
|
174
182
|
|
175
183
|
return h;
|
176
184
|
}
|
data/lib/openwsman/openwsman.rb
CHANGED
@@ -38,14 +38,26 @@ require 'openwsman/xmldoc'
|
|
38
38
|
# response and dig down through its XmlNode and XmlAttr objects.
|
39
39
|
|
40
40
|
module Openwsman
|
41
|
-
|
41
|
+
#
|
42
|
+
# ClientOptions
|
43
|
+
#
|
44
|
+
class ClientOptions
|
42
45
|
# assign hash to properties
|
43
46
|
def properties= value
|
44
47
|
value.each do |k,v|
|
45
|
-
self.add_property k.to_s, v
|
48
|
+
self.add_property k.to_s, v
|
49
|
+
end
|
50
|
+
end
|
51
|
+
# assign hash to selectors
|
52
|
+
def selectors= value
|
53
|
+
value.each do |k,v|
|
54
|
+
self.add_selector k.to_s, v
|
46
55
|
end
|
47
56
|
end
|
48
57
|
end
|
58
|
+
#
|
59
|
+
# Transport
|
60
|
+
#
|
49
61
|
class Transport
|
50
62
|
# called when authentication credentials missing or wrong
|
51
63
|
def Transport.auth_request_callback client, auth_type
|
@@ -85,10 +97,30 @@ module Openwsman
|
|
85
97
|
raise "Classname must not be nil" unless classname
|
86
98
|
epr = epr_prefix_for(classname,namespace) + "/#{classname}"
|
87
99
|
end
|
88
|
-
|
100
|
+
#
|
101
|
+
# EndPointReference
|
102
|
+
#
|
89
103
|
class EndPointReference
|
90
104
|
def method_missing name, *args # :nodoc:
|
91
|
-
selector(name)
|
105
|
+
selector(name.to_s)
|
106
|
+
end
|
107
|
+
def to_s
|
108
|
+
s = "#{classname}"
|
109
|
+
first = true
|
110
|
+
self.each do |k,v|
|
111
|
+
s << ((first)?"?":"&")
|
112
|
+
first = false
|
113
|
+
s << "#{k}=#{v.inspect}"
|
114
|
+
end
|
115
|
+
s
|
116
|
+
end
|
117
|
+
end
|
118
|
+
#
|
119
|
+
# Fault
|
120
|
+
#
|
121
|
+
class Fault
|
122
|
+
def to_s
|
123
|
+
"Fault #{code}.#{subcode}: #{detail} - #{reason}"
|
92
124
|
end
|
93
125
|
end
|
94
126
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openwsman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Klaus Kämpf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|