[sblim-cmpi-fsvol] Add better support of mofs registration for various CIMOMs

vcrhonek vcrhonek at fedoraproject.org
Thu Nov 10 13:12:30 UTC 2011


commit 9debcc22cfdb4d9ac5096cbcb60b472254876a2c
Author: Vitezslav Crhonek <vcrhonek at redhat.com>
Date:   Thu Nov 10 14:12:06 2011 +0100

    Add better support of mofs registration for various CIMOMs

 sblim-cmpi-fsvol.spec |  116 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 83 insertions(+), 33 deletions(-)
---
diff --git a/sblim-cmpi-fsvol.spec b/sblim-cmpi-fsvol.spec
index 94753d5..818995b 100644
--- a/sblim-cmpi-fsvol.spec
+++ b/sblim-cmpi-fsvol.spec
@@ -3,7 +3,7 @@
 Summary:        SBLIM fsvol instrumentation
 Name:           sblim-cmpi-fsvol
 Version:        1.5.1
-Release:        1%{?dist}
+Release:        2%{?dist}
 License:        EPL
 Group:          Applications/System
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -91,47 +91,94 @@ echo "%{_libdir}/cmpi" > $RPM_BUILD_ROOT/%{_sysconfdir}/ld.so.conf.d/%{name}-%{_
 %{_datadir}/sblim-testsuite/system/linux/*FileSystem.*
 %{_datadir}/sblim-testsuite/system/linux/*FileSystemEntries.*
 
-%define FSVOL_SCHEMA %{_datadir}/sblim-cmpi-fsvol/Linux_Fsvol.mof
-%define FSVOL_REGISTRATION %{_datadir}/sblim-cmpi-fsvol/Linux_Fsvol.registration
+%define SCHEMA %{_datadir}/%{name}/Linux_Fsvol.mof
+%define REGISTRATION %{_datadir}/%{name}/Linux_Fsvol.registration
 
 %pre
-if [ -e /usr/sbin/cimserver ]; then
-  CIMSERVER="-t pegasus";
-else
-  CIMSERVER="";
-fi
+function unregister()
+{
+  %{_datadir}/%{name}/provider-register.sh -d \
+        $1 \
+        -m %{SCHEMA} \
+        -r %{REGISTRATION} > /dev/null 2>&1 || :;
+  # don't let registration failure when server not running fail upgrade!
+}
+ 
 # If upgrading, deregister old version
-if [ $1 -gt 1 ]; then
-  %{_datadir}/sblim-cmpi-fsvol/provider-register.sh -d \
-  $CIMSERVER \
-  -r %{FSVOL_REGISTRATION} -m %{FSVOL_SCHEMA} > /dev/null 2>&1 || :;
+if [ $1 -gt 1 ]
+then
+        unregistered=no
+        if [ -e /usr/sbin/cimserver ]; then
+           unregister "-t pegasus";
+           unregistered=yes
+        fi
+ 
+        if [ -e /usr/sbin/sfcbd ]; then
+           unregister "-t sfcb";
+           unregistered=yes
+        fi
+ 
+        if [ "$unregistered" != yes ]; then
+           unregister
+        fi
 fi
 
 %post
-if [ -e /usr/sbin/cimserver ]; then
-  CIMSERVER="-t pegasus";
-else
-  CIMSERVER="";
-fi
+function register()
+{
+  # The follwoing script will handle the registration for various CIMOMs.
+  %{_datadir}/%{name}/provider-register.sh \
+        $1 \
+        -m %{SCHEMA} \
+        -r %{REGISTRATION} > /dev/null 2>&1 || :;
+  # don't let registration failure when server not running fail install!
+}
+ 
 /sbin/ldconfig
-if [ $1 -ge 1 ]; then
-# Register Schema and Provider - this is higly provider specific
-  %{_datadir}/sblim-cmpi-fsvol/provider-register.sh \
-  $CIMSERVER \
-  -r %{FSVOL_REGISTRATION} -m %{FSVOL_SCHEMA} > /dev/null 2>&1 || :;
-fi;
+if [ $1 -ge 1 ]
+then
+        registered=no
+        if [ -e /usr/sbin/cimserver ]; then
+          register "-t pegasus";
+          registered=yes
+        fi
+ 
+        if [ -e /usr/sbin/sfcbd ]; then
+          register "-t sfcb";
+          registered=yes
+        fi
+ 
+        if [ "$registered" != yes ]; then
+          register
+        fi
+fi
 
 %preun
-if [ -e /usr/sbin/cimserver ]; then
-  CIMSERVER="-t pegasus";
-else
-  CIMSERVER="";
-fi
-# Deregister only if not upgrading 
-if [ $1 -eq 0 ]; then
-  %{_datadir}/sblim-cmpi-fsvol/provider-register.sh -d \
-  $CIMSERVER \
-  -r %{FSVOL_REGISTRATION} -m %{FSVOL_SCHEMA} > /dev/null 2>&1 || :;
+function unregister()
+{
+  %{_datadir}/%{name}/provider-register.sh -d \
+        $1 \
+        -m %{SCHEMA} \
+        -r %{REGISTRATION} > /dev/null 2>&1 || :;
+  # don't let registration failure when server not running fail erase!
+}
+ 
+if [ $1 -eq 0 ]
+then
+        unregistered=no
+        if [ -e /usr/sbin/cimserver ]; then
+          unregister "-t pegasus";
+          unregistered=yes
+        fi
+ 
+        if [ -e /usr/sbin/sfcbd ]; then
+          unregister "-t sfcb";
+          unregistered=yes
+        fi
+ 
+        if [ "$unregistered" != yes ]; then
+          unregister
+        fi
 fi
 
 %postun -p /sbin/ldconfig
@@ -140,6 +187,9 @@ fi
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Thu Nov 10 2011 Vitezslav Crhonek <vcrhonek at redhat.com> - 1.5.1-2
+- Add better support of mofs registration for various CIMOMs
+
 * Wed May 25 2011 Vitezslav Crhonek <vcrhonek at redhat.com> - 1.5.1-1
 - Update to sblim-cmpi-fsvol-1.5.1
 


More information about the scm-commits mailing list