HTTPS clone URL
Subversion checkout URL
Using SWIG to write CIM (CMPI) providers in any (scripting) language
Python Ruby C Objective-C Shell Makefile
Swig based CMPI bindings ------------------------ This implements a CMPI-compliant provider interface for various languages via SWIG. Currently supported languages - Ruby - Python - Perl (beginning support) Implementation -------------- cmpi-bindings is implemented as a single CMPI-compliant provider (per supported language) that serves as a "multiplexer" to the instrumented language-specific providers. Using a python provider for class Py_Foo as an example, cmpi-bindings project provides a cmpi-compliant provider (libpyCmpiProvider.so) that will be registered with the cimom as the provider that handles Py_Foo requests. When libpyCmpiProvider gets the request, it will then forward it on to the python module that instruments the Py_Foo class. cmpi-bindings also provides supported-language-interfaces for the Provider Environment and BrokerCIMOMHandle, so that providers can make "up-calls" into the cimom. For the stack discussion below, use the following 'type' abbreviations: Ruby: rb Python: py Perl: pl The cmpi-bindings provider interfaces under CMPI consist of the following stack: CIMOM -> lib<type>CmpiProvider.so -> cmpi_<type>wbem_bindings.<type> -> <python: pywbem/cim_provider2.py> -> language-specific provider module Build / Installation -------------------- The build scripts will only build the modules for which you have appropriate devel packages. It will skip any others. Requirements ------------ cmake 2.4 or later CMPI header files, e.g. from sblim-cmpi-devel Python interface requires: python-devel, pywbem-0.7.0 Perl interface requires: perl Ruby interface requires: ruby ruby-devel (1.8, 1.9, or 2.0) Build ----- From root of tarball's source tree, create a directory 'build' and move (cd) into that directory 'cmake ..' 'make' 'sudo make install' You can pass various parameters to cmake to control the build, e.g. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_FLAGS_RELEASE:STRING="-Wall -O2 -g" -DCMAKE_CXX_FLAGS_RELEASE:STRING="-Wall -O2 -g" -DCMAKE_BUILD_TYPE=Release Test ---- For each language, there is a test/<language> directory. Within that directory, there should be test providers, scripts that use the test providers, and scripts to register the mofs and providers with CIMOMs. Testing ------- The test/ subdir contains a couple of tests and some sample code. If you have Ruby, rake, sblim-sfcb, sblim-sfcc and sfcc.gem installed, test/rake gives you a more complete testsuite. See test/rake/README for details. Language-specific documentation ------------------------------- Python ----- Visit http://pywbem.wiki.sourceforge.net/Provider+Home for QuickStart Guide, Tutorials, sample providers, etc.