ruby-sfcc provides the SBLIM client API ( sblim.wiki.sourceforge.net/Sfcc ) for ruby.
You can use it to connect to any CIMOM talking CIM-XML, but it can take advantage of sfcb CIMOM by connecting using a native interface.
ruby-sfcc has been built and the testsuite ran against:
* ruby 1.8.7 * ruby 1.9.2 * rubinius HEAD (what will be 1.1 soon)
ruby-sfcc has been built and the testsuite ran against:
-
sblim-sfcc 2.2.4
(Note: Earlier versions of sfcc don’t play well with ruby-sfcc+Rails)
You can create a gem by running rake gem.
See the testsuite for more examples. Or run rake docs.
require 'sfcc' client = Sfcc::Cim::Client.connect('http://root@localhost:5988') op = Sfcc::Cim::ObjectPath.new("root/cimv2", "") result = client.query(op, "select * from CIM_OperatingSystem", "wql") result.each do |instance| puts "query result: #{instance}" end
-
Why not using SWIG?
sfcc has a complex API based on function tables to simulate an object oriented environment in C which would make wrapping it complicated.
-
Why the API?
The motivation is to have the plain API available, and use it to access the CIMOM, gaining the footprint of SBLIM plus features like the local interface to talk with the CIMOM without overhead.
So the API is pretty “raw”, and it is supposed to be consumed by
ActiveCim ( github.com/dmacvicar/activecim ) which is a more ruby-like API to do CIM based management.
-
How to run the testsuite?
You need a CIMOM with base providers (ie: Linux_OperatingSystem) running on localhost 5988 with no authentication
-
If you call Instance#references without a filter class you may get an error. It seems sfcb can’t load a provider.
-
ObjectPath qualifier methods crash
-
make your changes along with tests (don’t touch version in changelog or lib/sfcc/version.rb)
-
send me a pull request
-
Duncan Mac-Vicar P. <dmacvicar@suse.de>
The following people have contributed patches, fixes and enhancements:
-
Klaus Kaempf <kkaempf@suse.de>