[sblim-cmpi-params] Add mofs registration for various CIMOMs

vcrhonek vcrhonek at fedoraproject.org
Thu Nov 10 11:48:36 UTC 2011


commit a84139c639a2cfb0eaa24c23ab54b30da0b10349
Author: Vitezslav Crhonek <vcrhonek at redhat.com>
Date:   Thu Nov 10 12:48:12 2011 +0100

    Add mofs registration for various CIMOMs

 sblim-cmpi-params.spec |  108 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 87 insertions(+), 21 deletions(-)
---
diff --git a/sblim-cmpi-params.spec b/sblim-cmpi-params.spec
index e68f53e..fb535d8 100644
--- a/sblim-cmpi-params.spec
+++ b/sblim-cmpi-params.spec
@@ -2,7 +2,7 @@
 
 Name:           sblim-cmpi-params
 Version:        1.3.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        SBLIM params instrumentation
 
 Group:          Applications/System
@@ -59,42 +59,108 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(-,root,root,-)
 %{_datadir}/sblim-testsuite
 
+%define SCHEMA %{_datadir}/%{name}/*.mof
+%define REGISTRATION %{_datadir}/%{name}/*.registration
 %define PEGASUS_MOF CIM_UnixLocalFileSystem
 
 %pre
+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-params/provider-register.sh -d \
-        -r %{_datadir}/%{name}/*.registration \
-        -m %{_datadir}/%{name}/*.mof > /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
+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
-# Register Schema and Provider - this is higly provider specific  
-# tog-pegasus needs some schemes registered first  
-if [ -x /usr/bin/peg-loadmof.sh ]; then
-   peg-loadmof.sh -n root/cimv2 /usr/share/mof/cim-current/*/{%{PEGASUS_MOF}}.mof > /dev/null 2>&1 || :;
-   /sbin/service tog-pegasus try-restart > /dev/null 2>&1 || :;
-fi
-# The follwoing script will handle the registration for various CIMOMs
-if [ $1 -ge 1 ]; then
-   %{_datadir}/sblim-cmpi-params/provider-register.sh \
-        -r %{_datadir}/%{name}/*.registration \
-        -m %{_datadir}/%{name}/*.mof > /dev/null 2>&1 || :;
+if [ $1 -ge 1 ]
+then
+        registered=no
+        if [ -e /usr/sbin/cimserver ]; then
+          # tog-pegasus needs some schemes registered first
+          if [ -x /usr/bin/peg-loadmof.sh ]; then
+            peg-loadmof.sh -n root/cimv2 /usr/share/mof/cim-current/*/{%{PEGASUS_MOF}}.mof > /dev/null 2>&1 || :;
+            /sbin/service tog-pegasus try-restart > /dev/null 2>&1 || :;
+          fi
+          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
-# Deregister only if not upgrading
-if [ $1 -eq 0 ]; then
-   %{_datadir}/sblim-cmpi-params/provider-register.sh -d \
-        -r %{_datadir}/%{name}/*.registration \
-        -m %{_datadir}/%{name}/*.mof > /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
 
 %changelog
+* Thu Nov 10 2011 Vitezslav Crhonek <vcrhonek at redhat.com> - 1.3.0-3
+- Add mofs registration for various CIMOMs
+
 * Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.0-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 


More information about the scm-commits mailing list