Skip to content

Using SWIG to write CIM (CMPI) providers in any (scripting) language

License

Unknown, Unknown licenses found

Licenses found

Unknown
COPYING
Unknown
LICENSE.BSD
Notifications You must be signed in to change notification settings

kkaempf/cmpi-bindings

Repository files navigation

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.

About

Using SWIG to write CIM (CMPI) providers in any (scripting) language

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
COPYING
Unknown
LICENSE.BSD

Stars

Watchers

Forks

Packages

No packages published