| 
Jim Fehlig wrote:
 After thinking about several approaches for ensuring that host 
instrumentation is available at build time, I've concluded they all 
suck and we should just document this dependency :-).
Detecting existence of dependent providers during configure requires 
asking the cimom (assuming it is running) for a known registered 
profile or class.  This is the only way I see of reliably determining 
if the build host has the required instrumentation - and I'm not 
comfortable doing such hackery in the configure script. 
I like the runtime discovery we have previously discussed, but it is 
useless without our own instrumentation to fall back on in the event 
nothing is found - and I don't want to be in the host instrumentation 
business given the existence of OMC, SBLIM, etc. 
I have two suggestions for handling the host instrumentation dependency.
1. Just document that the existence of virtualization model depends on 
existence of related modeling.  We could provide instructions in the 
README for obtaining and installing the OMC project and be done with it. 
2. Same as above but with added 'feature' of specifying host 
instrumentation via a configure argument.  E.g. one could run 
'./configure --with-omc' or './configure --with-sblim'.  The configure 
script would not detect existence of the instrumentation - just use 
some knowledge about these projects to determine namespace and 
classnames of host instrumentation for use throughout the providers.  
If not specified, default to OMC. 
Option 2 seems reasonable and allows for using SBLIM providers on 
Pegasus until such time OMC providers can run in that environment.  
User is still responsible for ensuring the host instrumentation is 
installed and functional. 
Attached is a patch for the planned approach to handle host 
instrumentation.  OMC is the default but users can run './configure 
--with-host-instrumentation=sblim' to use sblim providers.  A namespace 
and class prefix is written to config.h which can be used in the 
association providers when making upcalls.  Using this technique we can, 
for example, ask for finer-grained CIM_ComputerSystem - 
Linux_ComputerSystem. 
Any problems with this?  If not I will proceed forward.  Silence == 
agreement :-). 
Jim
 diff -r 16d625984bc4 configure.ac
--- a/configure.ac      Thu Sep 28 17:07:14 2006 -0600
+++ b/configure.ac      Wed Oct 04 16:21:27 2006 -0600
@@ -118,6 +118,30 @@ LIBXM_LIBS="$libvirt_LIBS $libxml2_LIBS 
 LIBXM_LIBS="$libvirt_LIBS $libxml2_LIBS "
 AC_SUBST([LIBXM_CFLAGS])
 AC_SUBST([LIBXM_LIBS])
+
+# Add argument to allow specifying which host instrumentation
+# to use.  omc or sblim are the options, omc is default.
+HOST_INSTRUMENTATION="omc"
+AC_ARG_WITH([host-instrumentation],
+       [  --with-host-instrumentation=TYPE  supported types are omc and sblim],
+       [
+               if test "x$withval" != "xno" ; then
+                       
+                       HOST_INSTRUMENTATION="$withval" 
+               fi
+       ]
+)
+
+if test "x$HOST_INSTRUMENTATION" = "xomc" ; then
+       AC_DEFINE([HOST_INSTRUMENTATION_NS],  ["smash"], [Namespace where host 
instrumentation resides.])
+       AC_DEFINE([HOST_INSTRUMENTATION_PREFIX],  ["OMC_"], [Prefix of host 
instrumentation class names.])
+elif test "x$HOST_INSTRUMENTATION" = "xsblim" ; then
+       AC_DEFINE([HOST_INSTRUMENTATION_NS],  ["root/cimv2"], [Namespace where 
host instrumentation resides.])
+       AC_DEFINE([HOST_INSTRUMENTATION_PREFIX],  ["Linux_"], [Prefix of host 
instrumentation class names.])
+else
+       AC_MSG_ERROR([unrecognized host instrumentation $HOST_INSTRUMENTATION])
+fi
+
 
 # Set compiler flag for CMPI API version compatibility
 # SET THE PACKAGE CMPI_VERSION HERE
@@ -189,6 +213,7 @@ if test x"$TESTSUITEDIR" != x; then
 if test x"$TESTSUITEDIR" != x; then
    echo "   TESTSUITEDIR: " $TESTSUITEDIR
 fi
+echo "   HOST_INSTRUMENTATION: " $HOST_INSTRUMENTATION
 echo "   CPPFLAGS:" $CPPFLAGS
 echo
 echo "You can override these values by setting the corresponding"
_______________________________________________
Xen-cim mailing list
Xen-cim@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-cim
 |