openwsman 2.3.4 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/openwsman/openwsman_wrap.c +623 -3262
- data/ext/ruby/helpers.h +10 -5
- data/lib/openwsman/openwsman.rb +33 -4
- data/lib/openwsman/xmldoc.rb +3 -4
- metadata +66 -85
- data/lib/openwsman/version.rb +0 -10
data/ext/ruby/helpers.h
CHANGED
@@ -113,9 +113,9 @@ static int
|
|
113
113
|
_add_str( VALUE key, VALUE value, hash_t *h )
|
114
114
|
{
|
115
115
|
if (key != Qundef) {
|
116
|
-
const char *k = as_string( key );
|
116
|
+
const char *k = strdup( as_string( key ) );
|
117
117
|
if (!hash_lookup( h, k ) ) {
|
118
|
-
const char *v = as_string( value );
|
118
|
+
const char *v = strdup( as_string( value ) );
|
119
119
|
if ( !hash_alloc_insert( h, k, v ) ) {
|
120
120
|
rb_raise( rb_eException, "hash_alloc_insert failed" );
|
121
121
|
}
|
@@ -132,11 +132,16 @@ static int
|
|
132
132
|
_add_selector( VALUE key, VALUE value, hash_t *h )
|
133
133
|
{
|
134
134
|
if (key != Qundef) {
|
135
|
-
const char *k = as_string( key );
|
135
|
+
const char *k = strdup( as_string( key ) );
|
136
136
|
if (!hash_lookup( h, k ) ) {
|
137
137
|
selector_entry *entry = u_malloc(sizeof(selector_entry));
|
138
138
|
entry->type = 0;
|
139
|
-
|
139
|
+
if (TYPE(value) == T_ARRAY) {
|
140
|
+
rb_raise( rb_eException, "Passing array parameter via invoke() still unsupported" );
|
141
|
+
}
|
142
|
+
else {
|
143
|
+
entry->entry.text = strdup(as_string( value ));
|
144
|
+
}
|
140
145
|
if ( !hash_alloc_insert( h, k, entry ) ) {
|
141
146
|
rb_raise( rb_eException, "hash_alloc_insert failed" );
|
142
147
|
}
|
@@ -163,7 +168,7 @@ value2hash( hash_t *h, VALUE v, int valuetype )
|
|
163
168
|
|
164
169
|
Check_Type( v, T_HASH );
|
165
170
|
|
166
|
-
if (!h) h =
|
171
|
+
if (!h) h = hash_create3(HASHCOUNT_T_MAX, 0, 0);
|
167
172
|
|
168
173
|
rb_hash_foreach( v, (valuetype==0)?_add_str:_add_selector, (unsigned long)h );
|
169
174
|
|
data/lib/openwsman/openwsman.rb
CHANGED
@@ -15,6 +15,28 @@ require 'openwsman/xmlnode'
|
|
15
15
|
# this extends Openwsman::XmlDoc with method_missing
|
16
16
|
require 'openwsman/xmldoc'
|
17
17
|
|
18
|
+
# = About openwsman
|
19
|
+
# Openwsman (http://www.openwsman.org) is a project intended to provide an open-source
|
20
|
+
# implementation of the Web Services Management specification
|
21
|
+
# (WS-Management) and to expose system management information on the
|
22
|
+
# Linux operating system using the WS-Management protocol. WS-Management
|
23
|
+
# is based on a suite of web services specifications and usage
|
24
|
+
# requirements that exposes a set of operations focused on and covers
|
25
|
+
# all system management aspects.
|
26
|
+
#
|
27
|
+
# = Using the bindings
|
28
|
+
# The bindings provide access to the client-side API of openwsman.
|
29
|
+
# You start by creating a Client instance and set up ClientOptions
|
30
|
+
# to control the communication.
|
31
|
+
#
|
32
|
+
# The Client instance now provides the WS-Management operations, like
|
33
|
+
# enumerate, get, invoke, etc.
|
34
|
+
#
|
35
|
+
# All client operations return a XmlDoc representing the SOAP response
|
36
|
+
# from the system.
|
37
|
+
# # You can then use XmlDoc methods to extract SOAP elements from the
|
38
|
+
# response and dig down through its XmlNode and XmlAttr objects.
|
39
|
+
|
18
40
|
module Openwsman
|
19
41
|
class Transport
|
20
42
|
# called when authentication credentials missing or wrong
|
@@ -32,7 +54,9 @@ module Openwsman
|
|
32
54
|
#
|
33
55
|
# ==== Examples
|
34
56
|
# prefix = Openwsman.epr_prefix_for "CIM_Managed_Element"
|
57
|
+
# => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2"
|
35
58
|
# prefix = Openwsman.epr_prefix_for "Win32_Foo", "root/cimv2"
|
59
|
+
# => "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2"
|
36
60
|
#
|
37
61
|
def self.epr_prefix_for classname, namespace = nil
|
38
62
|
prefix = Openwsman::uri_prefix classname
|
@@ -41,16 +65,21 @@ module Openwsman
|
|
41
65
|
end
|
42
66
|
|
43
67
|
# create full endpoint reference URI for namespace and classname
|
68
|
+
#
|
69
|
+
# * +classname+ - classname (using the <schema>_<name> format)
|
70
|
+
# * +namespace+ - optional namespace, required for Windows WMI which embeds the namespace in the EPR
|
71
|
+
#
|
72
|
+
# ==== Examples
|
73
|
+
# Openwsman.epr_uri_for "root/cimv2", "Win32_Foo"
|
74
|
+
# => "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Foo"
|
44
75
|
def self.epr_uri_for namespace, classname
|
45
76
|
raise "Namespace must not be nil" unless namespace
|
46
77
|
raise "Classname must not be nil" unless classname
|
47
|
-
epr =
|
48
|
-
epr << "/#{namespace}" unless namespace.empty?
|
49
|
-
epr << "/#{classname}"
|
78
|
+
epr = epr_prefix_for(classname,namespace) + "/#{classname}"
|
50
79
|
end
|
51
80
|
|
52
81
|
class EndPointReference
|
53
|
-
def method_missing name, *args
|
82
|
+
def method_missing name, *args # :nodoc:
|
54
83
|
selector(name)
|
55
84
|
end
|
56
85
|
end
|
data/lib/openwsman/xmldoc.rb
CHANGED
metadata
CHANGED
@@ -1,82 +1,76 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: openwsman
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.4.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 3
|
9
|
-
- 4
|
10
|
-
version: 2.3.4
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
7
|
+
authors:
|
8
|
+
- Klaus Kämpf
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-09-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rake-compiler
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: mocha
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: mocha
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 9
|
47
|
-
version: "0.9"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0.9'
|
48
38
|
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: yard
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0.9'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: yard
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
54
49
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
- 5
|
62
|
-
version: "0.5"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.5'
|
63
54
|
type: :development
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.5'
|
62
|
+
description: ! 'The openwsman gem provides a Ruby API to manage
|
63
|
+
|
64
|
+
systems using the WS-Management protocol.'
|
65
|
+
email:
|
69
66
|
- kkaempf@suse.de
|
70
67
|
executables: []
|
71
|
-
|
72
|
-
extensions:
|
68
|
+
extensions:
|
73
69
|
- ext/openwsman/extconf.rb
|
74
70
|
extra_rdoc_files: []
|
75
|
-
|
76
|
-
files:
|
71
|
+
files:
|
77
72
|
- lib/openwsman.rb
|
78
73
|
- lib/openwsman/openwsman.rb
|
79
|
-
- lib/openwsman/version.rb
|
80
74
|
- lib/openwsman/xmlnode.rb
|
81
75
|
- lib/openwsman/xmldoc.rb
|
82
76
|
- ext/ruby/helpers.h
|
@@ -84,43 +78,30 @@ files:
|
|
84
78
|
- ext/openwsman/openwsman_wrap.c
|
85
79
|
- ext/openwsman/openwsman.c
|
86
80
|
- ext/openwsman/extconf.rb
|
87
|
-
has_rdoc: true
|
88
81
|
homepage: http://www.github.com/openwsman/openwsman
|
89
82
|
licenses: []
|
90
|
-
|
91
|
-
|
92
|
-
/@ ~-.\n\
|
93
|
-
/ __ .- | remember to have fun! \n // // @ \n\n"
|
83
|
+
post_install_message: ! " ____\n/@ ~-.\n/ __ .- | remember to have fun! \n //
|
84
|
+
// @ \n\n"
|
94
85
|
rdoc_options: []
|
95
|
-
|
96
|
-
require_paths:
|
86
|
+
require_paths:
|
97
87
|
- lib
|
98
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
89
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
|
105
|
-
- 0
|
106
|
-
version: "0"
|
107
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
95
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
hash: 23
|
113
|
-
segments:
|
114
|
-
- 1
|
115
|
-
- 3
|
116
|
-
- 6
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
117
99
|
version: 1.3.6
|
118
100
|
requirements: []
|
119
|
-
|
120
101
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.
|
102
|
+
rubygems_version: 1.8.23
|
122
103
|
signing_key:
|
123
104
|
specification_version: 3
|
124
105
|
summary: Ruby client bindings for Openwsman
|
125
106
|
test_files: []
|
126
|
-
|
107
|
+
has_rdoc:
|
data/lib/openwsman/version.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# openwsman/version.rb
|
2
|
-
|
3
|
-
module Openwsman
|
4
|
-
require 'rbconfig'
|
5
|
-
OPENWSMAN_RUBY_VERSION = "1.9"
|
6
|
-
SYSTEM_RUBY_VERSION = "#{RbConfig::CONFIG['MAJOR']}.#{RbConfig::CONFIG['MINOR']}"
|
7
|
-
if SYSTEM_RUBY_VERSION != OPENWSMAN_RUBY_VERSION
|
8
|
-
STDERR.puts "** Warning: Ruby version mismatch: Openwsman Ruby #{OPENWSMAN_RUBY_VERSION}, Runtime Ruby #{SYSTEM_RUBY_VERSION}"
|
9
|
-
end
|
10
|
-
end
|