genprovider 0.2.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/CHANGELOG +8 -0
- data/CHANGELOG~ +4 -0
- data/Gemfile +4 -0
- data/LICENSE +58 -0
- data/README.rdoc +50 -0
- data/Rakefile +6 -0
- data/bin/genprovider +256 -0
- data/bin/regprovider +105 -0
- data/features/003-create.feature +10 -0
- data/features/004-modify.feature +9 -0
- data/features/005-delete.feature +7 -0
- data/features/datatypes.feature +13 -0
- data/features/ensure-format.feature +28 -0
- data/features/have-instances.feature +19 -0
- data/features/mof/trivial.mof +20 -0
- data/features/registration.feature +12 -0
- data/features/run-genprovider.feature +10 -0
- data/features/show-context.feature +9 -0
- data/features/step_definitions/genprovider.rb +52 -0
- data/features/step_definitions/mof.rb +3 -0
- data/features/step_definitions/registration.rb +21 -0
- data/features/step_definitions/wbemcli.rb +58 -0
- data/features/support/env.rb +20 -0
- data/genprovider.gemspec +36 -0
- data/lib/genprovider/class.rb +200 -0
- data/lib/genprovider/classinfo.rb +88 -0
- data/lib/genprovider/output.rb +104 -0
- data/lib/genprovider/provider.rb +721 -0
- data/lib/genprovider/rdoc.rb +149 -0
- data/lib/genprovider/registration.rb +22 -0
- data/lib/genprovider/testcase.rb +139 -0
- data/lib/genprovider/version.rb +3 -0
- data/lib/genprovider.rb +35 -0
- data/samples/mof/LMI_Embedded.mof +6 -0
- data/samples/mof/RCP_ArrayDataTypes.mof +27 -0
- data/samples/mof/RCP_ClassMethod.mof +7 -0
- data/samples/mof/RCP_ComplexMethod.mof +14 -0
- data/samples/mof/RCP_IndicationGenerator.mof +13 -0
- data/samples/mof/RCP_PassCData.mof +10 -0
- data/samples/mof/RCP_ShowContext.mof +11 -0
- data/samples/mof/RCP_SimpleClass.mof +7 -0
- data/samples/mof/RCP_SimpleDataTypes.mof +27 -0
- data/samples/mof/RCP_SimpleMethod.mof +9 -0
- data/samples/mof/qualifiers.mof +20 -0
- data/samples/provider/lmi_embedded.rb +148 -0
- data/samples/provider/rcp_array_data_types.rb +219 -0
- data/samples/provider/rcp_class_method.rb +54 -0
- data/samples/provider/rcp_complex_method.rb +170 -0
- data/samples/provider/rcp_pass_c_data.rb +130 -0
- data/samples/provider/rcp_show_context.rb +134 -0
- data/samples/provider/rcp_simple_class.rb +124 -0
- data/samples/provider/rcp_simple_data_types.rb +152 -0
- data/samples/provider/rcp_simple_method.rb +143 -0
- data/samples/registration/LMI_Embedded.registration +7 -0
- data/samples/registration/RCP_ArrayDataTypes.registration +7 -0
- data/samples/registration/RCP_ClassMethod.registration +8 -0
- data/samples/registration/RCP_ComplexMethod.registration +8 -0
- data/samples/registration/RCP_PassCData.registration +7 -0
- data/samples/registration/RCP_ShowContext.registration +7 -0
- data/samples/registration/RCP_SimpleDataTypes.registration +7 -0
- data/samples/registration/RCP_SimpleMethod.registration +8 -0
- data/samples/sfcb.reg/RCP_ComputerSystem.reg +5 -0
- data/samples/sfcb.reg/RCP_OSProcess.reg +5 -0
- data/samples/sfcb.reg/RCP_OperatingSystem.reg +5 -0
- data/samples/sfcb.reg/RCP_PhysicalMemory.reg +5 -0
- data/samples/sfcb.reg/RCP_Processor.reg +5 -0
- data/samples/sfcb.reg/RCP_RunningOS.reg +5 -0
- data/samples/sfcb.reg/RCP_SimpleClass.reg +5 -0
- data/samples/sfcb.reg/RCP_UnixProcess.reg +5 -0
- data/sfcbd +4 -0
- data/stress.sh +4 -0
- data/tasks/clean.rake +4 -0
- data/tasks/doc.rake +16 -0
- data/tasks/features.rake +8 -0
- data/tasks/prepstage.rake +16 -0
- data/tasks/registration.rake +10 -0
- data/tasks/sfcb.rake +3 -0
- data/tasks/test.rake +10 -0
- data/test/env.rb +23 -0
- data/test/helper.rb +23 -0
- data/test/mkreg.rb +32 -0
- data/test/mof/RCP_ClassMethod.rb +15 -0
- data/test/mof/RCP_ComplexMethod.rb +16 -0
- data/test/mof/RCP_SimpleMethod.rb +15 -0
- data/test/registration.rb +37 -0
- data/test/sfcb.rb +94 -0
- data/test/test_lmi_embedded.rb +64 -0
- data/test/test_rcp_array_data_types.rb +140 -0
- data/test/test_rcp_class_method.rb +31 -0
- data/test/test_rcp_complex_method.rb +68 -0
- data/test/test_rcp_simple_data_types.rb +66 -0
- data/test/test_rcp_simple_method.rb +47 -0
- data/valgrind +8 -0
- metadata +288 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
#
|
2
|
+
# Provider RCP_SimpleClass for class RCP_SimpleClass:CIM::Class
|
3
|
+
#
|
4
|
+
require 'syslog'
|
5
|
+
|
6
|
+
require 'cmpi/provider'
|
7
|
+
|
8
|
+
module Cmpi
|
9
|
+
#
|
10
|
+
# A simple class to detect memory leaks in cmpi-bindings
|
11
|
+
#
|
12
|
+
class RCP_SimpleClass < InstanceProvider
|
13
|
+
|
14
|
+
#
|
15
|
+
# Provider initialization
|
16
|
+
#
|
17
|
+
def initialize( name, broker, context )
|
18
|
+
@trace_file = STDERR
|
19
|
+
super broker
|
20
|
+
end
|
21
|
+
|
22
|
+
def cleanup( context, terminating )
|
23
|
+
@trace_file.puts "cleanup terminating? #{terminating}"
|
24
|
+
true
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.typemap
|
28
|
+
{
|
29
|
+
"Name" => Cmpi::string,
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
#
|
35
|
+
# Iterator for names and instances
|
36
|
+
# yields references matching reference and properties
|
37
|
+
#
|
38
|
+
def each( context, reference, properties = nil, want_instance = false )
|
39
|
+
if want_instance
|
40
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleClass"
|
41
|
+
result = Cmpi::CMPIInstance.new result
|
42
|
+
else
|
43
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleClass"
|
44
|
+
end
|
45
|
+
|
46
|
+
# Set key properties
|
47
|
+
|
48
|
+
result.Name = "simple class" # string (-> RCP_SimpleClass)
|
49
|
+
unless want_instance
|
50
|
+
yield result
|
51
|
+
return
|
52
|
+
end
|
53
|
+
|
54
|
+
# Instance: Set non-key properties
|
55
|
+
|
56
|
+
yield result
|
57
|
+
end
|
58
|
+
public
|
59
|
+
|
60
|
+
def enum_instance_names( context, result, reference )
|
61
|
+
@trace_file.puts "enum_instance_names ref #{reference}"
|
62
|
+
each(context, reference) do |ref|
|
63
|
+
@trace_file.puts "ref #{ref}"
|
64
|
+
result.return_objectpath ref
|
65
|
+
end
|
66
|
+
result.done
|
67
|
+
true
|
68
|
+
end
|
69
|
+
|
70
|
+
def enum_instances( context, result, reference, properties )
|
71
|
+
@trace_file.puts "enum_instances ref #{reference}, props #{properties.inspect}"
|
72
|
+
each(context, reference, properties, true) do |instance|
|
73
|
+
@trace_file.puts "instance #{instance}"
|
74
|
+
result.return_instance instance
|
75
|
+
end
|
76
|
+
result.done
|
77
|
+
true
|
78
|
+
end
|
79
|
+
|
80
|
+
def get_instance( context, result, reference, properties )
|
81
|
+
@trace_file.puts "get_instance ref #{reference}, props #{properties.inspect}"
|
82
|
+
each(context, reference, properties, true) do |instance|
|
83
|
+
@trace_file.puts "instance #{instance}"
|
84
|
+
result.return_instance instance
|
85
|
+
break # only return first instance
|
86
|
+
end
|
87
|
+
result.done
|
88
|
+
true
|
89
|
+
end
|
90
|
+
|
91
|
+
def create_instance( context, result, reference, newinst )
|
92
|
+
@trace_file.puts "create_instance ref #{reference}, newinst #{newinst.inspect}"
|
93
|
+
# Create instance according to reference and newinst
|
94
|
+
result.return_objectpath reference
|
95
|
+
result.done
|
96
|
+
true
|
97
|
+
end
|
98
|
+
|
99
|
+
def set_instance( context, result, reference, newinst, properties )
|
100
|
+
@trace_file.puts "set_instance ref #{reference}, newinst #{newinst.inspect}, props #{properties.inspect}"
|
101
|
+
properties.each do |prop|
|
102
|
+
newinst.send "#{prop.name}=".to_sym, FIXME
|
103
|
+
end
|
104
|
+
result.return_instance newinst
|
105
|
+
result.done
|
106
|
+
true
|
107
|
+
end
|
108
|
+
|
109
|
+
def delete_instance( context, result, reference )
|
110
|
+
@trace_file.puts "delete_instance ref #{reference}"
|
111
|
+
result.done
|
112
|
+
true
|
113
|
+
end
|
114
|
+
|
115
|
+
# query : String
|
116
|
+
# lang : String
|
117
|
+
def exec_query( context, result, reference, query, lang )
|
118
|
+
@trace_file.puts "exec_query ref #{reference}, query #{query}, lang #{lang}"
|
119
|
+
result.done
|
120
|
+
true
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
#
|
2
|
+
# Provider RCP_SimpleDataTypes for class RCP_SimpleDataTypes:CIM::Class
|
3
|
+
#
|
4
|
+
require 'syslog'
|
5
|
+
|
6
|
+
require 'cmpi/provider'
|
7
|
+
|
8
|
+
module Cmpi
|
9
|
+
#
|
10
|
+
# A dummy class to represent various data types
|
11
|
+
#
|
12
|
+
class RCP_SimpleDataTypes < InstanceProvider
|
13
|
+
|
14
|
+
#
|
15
|
+
# Provider initialization
|
16
|
+
#
|
17
|
+
def initialize( name, broker, context )
|
18
|
+
@trace_file = STDERR
|
19
|
+
super broker
|
20
|
+
end
|
21
|
+
|
22
|
+
def cleanup( context, terminating )
|
23
|
+
@trace_file.puts "cleanup terminating? #{terminating}"
|
24
|
+
true
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.typemap
|
28
|
+
{
|
29
|
+
"Name" => Cmpi::string,
|
30
|
+
"bool" => Cmpi::boolean,
|
31
|
+
"text" => Cmpi::string,
|
32
|
+
"char_16" => Cmpi::char16,
|
33
|
+
"unsigned_int_8" => Cmpi::uint8,
|
34
|
+
"unsigned_int_16" => Cmpi::uint16,
|
35
|
+
"unsigned_int_32" => Cmpi::uint32,
|
36
|
+
"unsigned_int_64" => Cmpi::uint64,
|
37
|
+
"byte" => Cmpi::sint8,
|
38
|
+
"short" => Cmpi::sint16,
|
39
|
+
"int" => Cmpi::sint32,
|
40
|
+
"long" => Cmpi::sint64,
|
41
|
+
"float" => Cmpi::real32,
|
42
|
+
"double" => Cmpi::real64,
|
43
|
+
"date_time" => Cmpi::dateTime,
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
#
|
49
|
+
# Iterator for names and instances
|
50
|
+
# yields references matching reference and properties
|
51
|
+
#
|
52
|
+
def each( context, reference, properties = nil, want_instance = false )
|
53
|
+
if want_instance
|
54
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleDataTypes"
|
55
|
+
result = Cmpi::CMPIInstance.new result
|
56
|
+
else
|
57
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleDataTypes"
|
58
|
+
end
|
59
|
+
|
60
|
+
# Set key properties
|
61
|
+
|
62
|
+
result.Name = "Sample"
|
63
|
+
unless want_instance
|
64
|
+
yield result
|
65
|
+
return
|
66
|
+
end
|
67
|
+
|
68
|
+
# Instance: Set non-key properties
|
69
|
+
|
70
|
+
result.bool = true
|
71
|
+
result.text = "This is new text"
|
72
|
+
result.char_16 = 65535
|
73
|
+
result.unsigned_int_8 = 123
|
74
|
+
result.unsigned_int_16 = 12345
|
75
|
+
result.unsigned_int_32 = 1234567890
|
76
|
+
result.unsigned_int_64 = 1234567891011121314
|
77
|
+
result.byte = -1
|
78
|
+
result.short = -1
|
79
|
+
result.int = -1
|
80
|
+
result.long = -1
|
81
|
+
result.float = 3.142592653
|
82
|
+
result.double = Math::PI
|
83
|
+
result.date_time = Time.now #0
|
84
|
+
yield result
|
85
|
+
end
|
86
|
+
public
|
87
|
+
|
88
|
+
def enum_instance_names( context, result, reference )
|
89
|
+
@trace_file.puts "enum_instance_names ref #{reference}"
|
90
|
+
each(context, reference) do |ref|
|
91
|
+
@trace_file.puts "ref #{ref}"
|
92
|
+
result.return_objectpath ref
|
93
|
+
end
|
94
|
+
result.done
|
95
|
+
true
|
96
|
+
end
|
97
|
+
|
98
|
+
def enum_instances( context, result, reference, properties )
|
99
|
+
@trace_file.puts "enum_instances ref #{reference}, props #{properties.inspect}"
|
100
|
+
each(context, reference, properties, true) do |instance|
|
101
|
+
@trace_file.puts "instance #{instance}"
|
102
|
+
result.return_instance instance
|
103
|
+
end
|
104
|
+
result.done
|
105
|
+
true
|
106
|
+
end
|
107
|
+
|
108
|
+
def get_instance( context, result, reference, properties )
|
109
|
+
@trace_file.puts "get_instance ref #{reference}, props #{properties.inspect}"
|
110
|
+
each(context, reference, properties, true) do |instance|
|
111
|
+
@trace_file.puts "instance #{instance}"
|
112
|
+
result.return_instance instance
|
113
|
+
break # only return first instance
|
114
|
+
end
|
115
|
+
result.done
|
116
|
+
true
|
117
|
+
end
|
118
|
+
|
119
|
+
def create_instance( context, result, reference, newinst )
|
120
|
+
@trace_file.puts "create_instance ref #{reference}, newinst #{newinst.inspect}"
|
121
|
+
# Create instance according to reference and newinst
|
122
|
+
result.return_objectpath reference
|
123
|
+
result.done
|
124
|
+
true
|
125
|
+
end
|
126
|
+
|
127
|
+
def set_instance( context, result, reference, newinst, properties )
|
128
|
+
@trace_file.puts "set_instance ref #{reference}, newinst #{newinst.inspect}, props #{properties.inspect}"
|
129
|
+
properties.each do |prop|
|
130
|
+
newinst.send "#{prop.name}=".to_sym, FIXME
|
131
|
+
end
|
132
|
+
result.return_instance newinst
|
133
|
+
result.done
|
134
|
+
true
|
135
|
+
end
|
136
|
+
|
137
|
+
def delete_instance( context, result, reference )
|
138
|
+
@trace_file.puts "delete_instance ref #{reference}"
|
139
|
+
result.done
|
140
|
+
true
|
141
|
+
end
|
142
|
+
|
143
|
+
# query : String
|
144
|
+
# lang : String
|
145
|
+
def exec_query( context, result, reference, query, lang )
|
146
|
+
@trace_file.puts "exec_query ref #{reference}, query #{query}, lang #{lang}"
|
147
|
+
result.done
|
148
|
+
true
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,143 @@
|
|
1
|
+
#
|
2
|
+
# Provider RCP_SimpleMethod for class RCP_SimpleMethod:CIM::Class
|
3
|
+
#
|
4
|
+
require 'syslog'
|
5
|
+
|
6
|
+
require 'cmpi/provider'
|
7
|
+
|
8
|
+
module Cmpi
|
9
|
+
#
|
10
|
+
# A simple class to implement Method
|
11
|
+
#
|
12
|
+
class RCP_SimpleMethod < MethodProvider
|
13
|
+
|
14
|
+
include InstanceProviderIF
|
15
|
+
#
|
16
|
+
# Provider initialization
|
17
|
+
#
|
18
|
+
def initialize( name, broker, context )
|
19
|
+
@trace_file = STDERR
|
20
|
+
super broker
|
21
|
+
end
|
22
|
+
|
23
|
+
def cleanup( context, terminating )
|
24
|
+
@trace_file.puts "cleanup terminating? #{terminating}"
|
25
|
+
true
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.typemap
|
29
|
+
{
|
30
|
+
"Name" => Cmpi::string,
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
# Methods
|
35
|
+
|
36
|
+
# RCP_SimpleMethod: ReturnTrue
|
37
|
+
#
|
38
|
+
def return_true_args; [[],[Cmpi::boolean, ]] end
|
39
|
+
#
|
40
|
+
# Input args
|
41
|
+
#
|
42
|
+
# Additional output args
|
43
|
+
#
|
44
|
+
def return_true( context, reference )
|
45
|
+
@trace_file.puts "return_true #{context}, #{reference}"
|
46
|
+
result = true # boolean
|
47
|
+
# function body goes here
|
48
|
+
return result
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
private
|
53
|
+
#
|
54
|
+
# Iterator for names and instances
|
55
|
+
# yields references matching reference and properties
|
56
|
+
#
|
57
|
+
def each( context, reference, properties = nil, want_instance = false )
|
58
|
+
if want_instance
|
59
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleMethod"
|
60
|
+
result = Cmpi::CMPIInstance.new result
|
61
|
+
else
|
62
|
+
result = Cmpi::CMPIObjectPath.new reference.namespace, "RCP_SimpleMethod"
|
63
|
+
end
|
64
|
+
|
65
|
+
# Set key properties
|
66
|
+
|
67
|
+
result.Name = "Func" # string (-> RCP_SimpleMethod)
|
68
|
+
unless want_instance
|
69
|
+
yield result
|
70
|
+
return
|
71
|
+
end
|
72
|
+
|
73
|
+
# Instance: Set non-key properties
|
74
|
+
|
75
|
+
yield result
|
76
|
+
end
|
77
|
+
public
|
78
|
+
|
79
|
+
def enum_instance_names( context, result, reference )
|
80
|
+
@trace_file.puts "enum_instance_names ref #{reference}"
|
81
|
+
each(context, reference) do |ref|
|
82
|
+
@trace_file.puts "ref #{ref}"
|
83
|
+
result.return_objectpath ref
|
84
|
+
end
|
85
|
+
result.done
|
86
|
+
true
|
87
|
+
end
|
88
|
+
|
89
|
+
def enum_instances( context, result, reference, properties )
|
90
|
+
@trace_file.puts "enum_instances ref #{reference}, props #{properties.inspect}"
|
91
|
+
each(context, reference, properties, true) do |instance|
|
92
|
+
@trace_file.puts "instance #{instance}"
|
93
|
+
result.return_instance instance
|
94
|
+
end
|
95
|
+
result.done
|
96
|
+
true
|
97
|
+
end
|
98
|
+
|
99
|
+
def get_instance( context, result, reference, properties )
|
100
|
+
@trace_file.puts "get_instance ref #{reference}, props #{properties.inspect}"
|
101
|
+
each(context, reference, properties, true) do |instance|
|
102
|
+
@trace_file.puts "instance #{instance}"
|
103
|
+
result.return_instance instance
|
104
|
+
break # only return first instance
|
105
|
+
end
|
106
|
+
result.done
|
107
|
+
true
|
108
|
+
end
|
109
|
+
|
110
|
+
def create_instance( context, result, reference, newinst )
|
111
|
+
@trace_file.puts "create_instance ref #{reference}, newinst #{newinst.inspect}"
|
112
|
+
# Create instance according to reference and newinst
|
113
|
+
result.return_objectpath reference
|
114
|
+
result.done
|
115
|
+
true
|
116
|
+
end
|
117
|
+
|
118
|
+
def set_instance( context, result, reference, newinst, properties )
|
119
|
+
@trace_file.puts "set_instance ref #{reference}, newinst #{newinst.inspect}, props #{properties.inspect}"
|
120
|
+
properties.each do |prop|
|
121
|
+
newinst.send "#{prop.name}=".to_sym, FIXME
|
122
|
+
end
|
123
|
+
result.return_instance newinst
|
124
|
+
result.done
|
125
|
+
true
|
126
|
+
end
|
127
|
+
|
128
|
+
def delete_instance( context, result, reference )
|
129
|
+
@trace_file.puts "delete_instance ref #{reference}"
|
130
|
+
result.done
|
131
|
+
true
|
132
|
+
end
|
133
|
+
|
134
|
+
# query : String
|
135
|
+
# lang : String
|
136
|
+
def exec_query( context, result, reference, query, lang )
|
137
|
+
@trace_file.puts "exec_query ref #{reference}, query #{query}, lang #{lang}"
|
138
|
+
result.done
|
139
|
+
true
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider LMI_Embedded of class LMI_Embedded
|
3
|
+
#
|
4
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
5
|
+
#
|
6
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
7
|
+
LMI_Embedded test/test LMI_Embedded rbCmpiProvider instance
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_ArrayDataTypes of class RCP_ArrayDataTypes
|
3
|
+
#
|
4
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
5
|
+
#
|
6
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
7
|
+
RCP_ArrayDataTypes test/test RCP_ArrayDataTypes rbCmpiProvider instance
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_ClassMethod of class
|
3
|
+
# RCP_ClassMethod
|
4
|
+
#
|
5
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
6
|
+
#
|
7
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
8
|
+
RCP_ClassMethod test/test RCP_ClassMethod rbCmpiProvider instance method
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_ComplexMethod of class
|
3
|
+
# RCP_ComplexMethod
|
4
|
+
#
|
5
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
6
|
+
#
|
7
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
8
|
+
RCP_ComplexMethod test/test RCP_ComplexMethod rbCmpiProvider instance method
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_PassCData of class RCP_PassCData
|
3
|
+
#
|
4
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
5
|
+
#
|
6
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
7
|
+
RCP_PassCData test/test RCP_PassCData rbCmpiProvider instance
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_ShowContext of class RCP_ShowContext
|
3
|
+
#
|
4
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
5
|
+
#
|
6
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
7
|
+
RCP_ShowContext test/test RCP_ShowContext rbCmpiProvider instance
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_SimpleDataTypes of class RCP_SimpleDataTypes
|
3
|
+
#
|
4
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
5
|
+
#
|
6
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
7
|
+
RCP_SimpleDataTypes test/test RCP_SimpleDataTypes rbCmpiProvider instance
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#
|
2
|
+
# Registration for provider RCP_SimpleMethod of class
|
3
|
+
# RCP_SimpleMethod
|
4
|
+
#
|
5
|
+
# Generated by 'genprovider' for use with cmpi-bindings-ruby
|
6
|
+
#
|
7
|
+
# Classname - Namespace - Providername - Libraryname - Capabilities ...
|
8
|
+
RCP_SimpleMethod test/test RCP_SimpleMethod rbCmpiProvider instance method
|
data/sfcbd
ADDED
data/stress.sh
ADDED
data/tasks/clean.rake
ADDED
data/tasks/doc.rake
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
task :doc do
|
2
|
+
begin
|
3
|
+
require 'yard'
|
4
|
+
YARD::Rake::YardocTask.new(:doc) do |t|
|
5
|
+
t.files = ['lib/**/*.rb']
|
6
|
+
t.options = ['--no-private']
|
7
|
+
end
|
8
|
+
rescue LoadError
|
9
|
+
STDERR.puts "Install yard if you want prettier docs"
|
10
|
+
require 'rdoc/task'
|
11
|
+
Rake::RDocTask.new(:doc) do |rdoc|
|
12
|
+
rdoc.rdoc_dir = "doc"
|
13
|
+
rdoc.title = "genprovider #{Genprovider::VERSION}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/tasks/features.rake
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
directory "tmp"
|
2
|
+
directory "tmp/sfcb"
|
3
|
+
|
4
|
+
file "tmp/sfcb/sfcb.cfg" => ["tmp/sfcb", :mksfcb] do
|
5
|
+
$sfcb.mkcfg
|
6
|
+
end
|
7
|
+
|
8
|
+
task :mksfcb do
|
9
|
+
require_relative "../test/helper"
|
10
|
+
Helper.sfcb
|
11
|
+
puts "$sfcb #{$sfcb}"
|
12
|
+
end
|
13
|
+
|
14
|
+
task :prepstage => ["tmp/sfcb/sfcb.cfg"] do
|
15
|
+
puts "Prepare sfcb staging"
|
16
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
task :registration => [:prepstage] do |t|
|
2
|
+
puts "Register all providers"
|
3
|
+
|
4
|
+
require_relative "../test/registration"
|
5
|
+
Dir['samples/registration/*.registration'].each do |regname|
|
6
|
+
klass = File.basename regname, ".registration"
|
7
|
+
register_klass :klass => klass
|
8
|
+
end
|
9
|
+
mkrepos
|
10
|
+
end
|
data/tasks/sfcb.rake
ADDED
data/tasks/test.rake
ADDED
data/test/env.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#
|
2
|
+
# test/env.rb
|
3
|
+
#
|
4
|
+
|
5
|
+
fdirname = File.dirname(__FILE__)
|
6
|
+
|
7
|
+
##
|
8
|
+
# Assuming __FILE__ lives in test/
|
9
|
+
#
|
10
|
+
|
11
|
+
# establish parent for test data
|
12
|
+
TOPLEVEL = File.expand_path(File.join(fdirname,".."))
|
13
|
+
|
14
|
+
# use local version for testing
|
15
|
+
LIBDIR = File.join(TOPLEVEL, "lib")
|
16
|
+
|
17
|
+
# genprovider cli binary
|
18
|
+
GENPROVIDER = File.join(TOPLEVEL,"bin","genprovider")
|
19
|
+
|
20
|
+
NAMESPACE = "test/test"
|
21
|
+
|
22
|
+
TMPDIR = File.join(TOPLEVEL, "tmp")
|
23
|
+
|
data/test/helper.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#
|
2
|
+
# test/helper.rb
|
3
|
+
#
|
4
|
+
|
5
|
+
require_relative "./env"
|
6
|
+
require_relative "./sfcb"
|
7
|
+
|
8
|
+
class Helper
|
9
|
+
def self.sfcb
|
10
|
+
$sfcb ||= Sfcb.new :tmpdir => TMPDIR, :provider => "#{TOPLEVEL}/samples/provider"
|
11
|
+
end
|
12
|
+
def self.setup klass, namespace = "test/test"
|
13
|
+
self.sfcb
|
14
|
+
client = Sfcc::Cim::Client.connect(:uri => $sfcb.uri, :verify => false)
|
15
|
+
raise "Connection error" unless client
|
16
|
+
op = Sfcc::Cim::ObjectPath.new(namespace, klass, client)
|
17
|
+
return client, op
|
18
|
+
end
|
19
|
+
def self.teardown
|
20
|
+
$sfcb.stop
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|