[sblim-gather] Update provider registration script to use systemctl to stop/start sfcb, Fix registration/deregistra
vcrhonek
vcrhonek at fedoraproject.org
Thu Mar 5 12:28:30 UTC 2015
commit 71bd4ebbee9927f1cf13a2837d01a07c63888eb2
Author: Vitezslav Crhonek <vcrhonek at redhat.com>
Date: Thu Mar 5 13:28:24 2015 +0100
Update provider registration script to use systemctl to stop/start sfcb, Fix registration/deregistration, Require cim-server instead of tog-pegasus, don't BuildRequire tog-pegasus-devel
sblim-gather-2.2.9-prov-reg-sfcb-systemd.patch | 42 +++++++++
sblim-gather-2.2.9-remove-assoc-conflict.patch | 20 +++++
sblim-gather.spec | 118 ++++++++++++++++++-------
3 files changed, 146 insertions(+), 34 deletions(-)
---
diff --git a/sblim-gather-2.2.9-prov-reg-sfcb-systemd.patch b/sblim-gather-2.2.9-prov-reg-sfcb-systemd.patch
new file mode 100644
index 0000000..374f7b2
--- /dev/null
+++ b/sblim-gather-2.2.9-prov-reg-sfcb-systemd.patch
@@ -0,0 +1,42 @@
+diff -up sblim-gather-2.2.9/provider/provider-register.sh.orig sblim-gather-2.2.9/provider/provider-register.sh
+--- sblim-gather-2.2.9/provider/provider-register.sh.orig 2015-03-03 12:46:57.671267255 +0100
++++ sblim-gather-2.2.9/provider/provider-register.sh 2015-03-03 12:48:00.501535717 +0100
+@@ -351,20 +351,8 @@ sfcb_rebuild()
+ if ps -C sfcbd > /dev/null 2>&1
+ then
+ # sfcb is running -- need to restart
+- for INITSCRIPT in /etc/init.d/sfcb /usr/local/etc/init.d/sfcb none
+- do
+- if test -x $INITSCRIPT
+- then
+- break;
+- fi
+- done
+ chatter "Shutting down sfcb."
+- if test $INITSCRIPT = none
+- then
+- killall sfcbd
+- else
+- $INITSCRIPT stop
+- fi
++ systemctl stop sblim-sfcb
+ t=0
+ while ps -C sfcbd > /dev/null 2>&1
+ do
+@@ -385,14 +373,8 @@ sfcb_rebuild()
+ return 1
+ fi
+
+- if test $INITSCRIPT = none
+- then
+- echo "No init script found - you need to start sfcbd manually." >&2
+- return 1
+- else
+- chatter "Restarting sfcb."
+- $INITSCRIPT start
+- fi
++ chatter "Restarting sfcb."
++ systemctl start sblim-sfcb
+ else
+ # Not running - rebuild repository
+ chatter "Rebuilding repository."
diff --git a/sblim-gather-2.2.9-remove-assoc-conflict.patch b/sblim-gather-2.2.9-remove-assoc-conflict.patch
new file mode 100644
index 0000000..b348ffa
--- /dev/null
+++ b/sblim-gather-2.2.9-remove-assoc-conflict.patch
@@ -0,0 +1,20 @@
+diff -up sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.mof.orig sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.mof
+--- sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.mof.orig 2014-10-09 23:29:10.000000000 +0200
++++ sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.mof 2015-03-05 13:17:35.657778506 +0100
+@@ -22,9 +22,3 @@
+
+ class Linux_MetricRegisteredProfile : CIM_RegisteredProfile
+ { };
+-
+-[
+- Association
+-]
+-class Linux_MetricElementConformsToProfile : CIM_ElementConformsToProfile
+-{ };
+diff -up sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.registration.orig sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.registration
+--- sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.registration.orig 2014-10-09 23:29:10.000000000 +0200
++++ sblim-gather-2.2.9/provider/mof/Linux_MetricProfile.registration 2015-03-05 13:17:40.169798969 +0100
+@@ -1,3 +1,2 @@
+ # Classname Namespace ProviderName ProviderModule ProviderTypes ...
+ Linux_MetricRegisteredProfile root/interop OSBase_MetricRegisteredProfileProvider OSBase_MetricRegisteredProfileProvider instance
+-Linux_MetricElementConformsToProfile root/interop OSBase_MetricElementConformsToProfileProvider OSBase_MetricElementConformsToProfileProvider instance association
diff --git a/sblim-gather.spec b/sblim-gather.spec
index 6e8c22b..70fc572 100644
--- a/sblim-gather.spec
+++ b/sblim-gather.spec
@@ -1,10 +1,9 @@
%global sblim_testsuite_version 1.2.4
%global provider_dir %{_libdir}/cmpi
-%global tog_pegasus_version 2:2.6.1-1
Name: sblim-gather
Version: 2.2.9
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: SBLIM Gatherer
Group: Applications/System
@@ -20,7 +19,6 @@ Source6: reposd.service
BuildRequires: sblim-cmpi-devel
BuildRequires: sblim-cmpi-base-devel
-BuildRequires: tog-pegasus-devel >= %{tog_pegasus_version}
BuildRequires: libsysfs-devel
BuildRequires: libvirt-devel
BuildRequires: xmlto
@@ -35,8 +33,13 @@ Patch3: sblim-gather-2.2.8-docdir.patch
Patch4: sblim-gather-2.2.8-multilib.patch
# Patch5: use Pegasus root/interop instead of root/PG_Interop
Patch5: sblim-gather-2.2.9-pegasus-interop.patch
+# Patch6: call systemctl in provider registration
+Patch6: sblim-gather-2.2.9-prov-reg-sfcb-systemd.patch
+# Patch7: remove conflicting assoc class Linux_MetricElementConformsToProfile
+# from Linux_MetricProfile.mof (already included in Linux_Metric.mof)
+Patch7: sblim-gather-2.2.9-remove-assoc-conflict.patch
-Requires: tog-pegasus >= %{tog_pegasus_version}
+Requires: cim-server
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
@@ -50,10 +53,9 @@ and providing performance data.
%package provider
Summary: SBLIM Gatherer Provider
Group: Applications/System
-BuildRequires: tog-pegasus-devel >= %{tog_pegasus_version}
Requires: %{name} = %{version}-%{release}
Requires: sblim-cmpi-base
-Requires: tog-pegasus
+Requires: cim-server
%description provider
The CIM (Common Information Model) Providers for the
@@ -63,9 +65,8 @@ Gatherer.
%package devel
Summary: SBLIM Gatherer Development Support
Group: Development/Libraries
-BuildRequires: tog-pegasus-devel >= %{tog_pegasus_version}
Requires: %{name} = %{version}-%{release}
-Requires: tog-pegasus
+Requires: cim-server
%description devel
This package is needed to develop new plugins for the
@@ -75,10 +76,9 @@ Gatherer.
%package test
Summary: SBLIM Gatherer Testcase Files
Group: Applications/System
-BuildRequires: tog-pegasus-devel >= %{tog_pegasus_version}
Requires: %{name}-provider = %{version}-%{release}
Requires: sblim-testsuite
-Requires: tog-pegasus
+Requires: cim-server
%description test
Gatherer Testcase Files for the
@@ -94,6 +94,8 @@ tar xfvz %{SOURCE4}
%patch3 -p1 -b .docdir
%patch4 -p1 -b .multilib
%patch5 -p1 -b .pegasus-interop
+%patch6 -p1 -b .prov-reg-sfcb-systemd
+%patch7 -p1 -b .remove-assoc-conflict
%build
%ifarch s390 s390x ppc ppc64
@@ -102,7 +104,6 @@ export CFLAGS="$RPM_OPT_FLAGS -fsigned-char -fno-strict-aliasing"
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%endif
%configure TESTSUITEDIR=%{_datadir}/sblim-testsuite \
- CIMSERVER=pegasus \
PROVIDERDIR=%{provider_dir}
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
@@ -183,14 +184,13 @@ install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/reposd.service
%{_datadir}/sblim-testsuite/system/linux/gather-systemname.sh
%{_datadir}/sblim-testsuite/test-gather.sh
-%global GATHER_1ST_SCHEMA %{_datadir}/%{name}/Linux_Metric.mof
-%global GATHER_1ST_REGISTRATION %{_datadir}/%{name}/Linux_Metric.registration
+%global GATHER_1ST_SCHEMA %{_datadir}/%{name}/Linux_Metric.mof %{_datadir}/%{name}/Linux_MetricProfile.mof
+%global GATHER_1ST_REGISTRATION %{_datadir}/%{name}/Linux_Metric.registration %{_datadir}/%{name}/Linux_MetricProfile.registration
%global G_GLOB_IGNORE */Linux_Metric.*
-
-%global GATHER_SCHEMA %{_datadir}/%{name}/*.mof
-%global GATHER_REGISTRATION %{_datadir}/%{name}/*.registration
+%global SCHEMA %{_datadir}/%{name}/*.mof
+%global REGISTRATION %{_datadir}/%{name}/*.registration
%post
install -d -m 0755 -o root -g root /var/run/gather
@@ -212,37 +212,87 @@ fi
%systemd_postun_with_restart reposd.service
%pre provider
-if [ $1 -gt 1 ]
-then
- %{_datadir}/%{name}/provider-register.sh -t pegasus -d \
- -r %{GATHER_REGISTRATION} -m %{GATHER_SCHEMA} &> /dev/null || :;
+function unregister()
+{
# don't let registration failure when server not running fail upgrade!
+ GLOBIGNORE=%{G_GLOB_IGNORE}
+ %{_datadir}/%{name}/provider-register.sh -v -d $1 -m %{SCHEMA} -r %{REGISTRATION} #> /dev/null 2>&1 || :;
+ %{_datadir}/%{name}/provider-register.sh -v -d $1 -m %{GATHER_1ST_SCHEMA} -r %{GATHER_1ST_REGISTRATION} #> /dev/null 2>&1 || :;
+}
+
+# if upgrading, deregister old version
+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 provider
-/sbin/ldconfig
-if [ $1 -ge 1 ]
-then
- GLOBIGNORE=%{G_GLOB_IGNORE}
- %{_datadir}/%{name}/provider-register.sh -t pegasus -r \
- %{GATHER_1ST_REGISTRATION} -m %{GATHER_1ST_SCHEMA} &>/dev/null || :;
- %{_datadir}/%{name}/provider-register.sh -t pegasus \
- -r %{GATHER_REGISTRATION} -m %{GATHER_SCHEMA} &>/dev/null || :;
+function register()
+{
# don't let registration failure when server not running fail install!
+ %{_datadir}/%{name}/provider-register.sh -v $1 -m %{GATHER_1ST_SCHEMA} -r %{GATHER_1ST_REGISTRATION} #> /dev/null 2>&1 || :;
+ GLOBIGNORE=%{G_GLOB_IGNORE}
+ %{_datadir}/%{name}/provider-register.sh -v $1 -m %{SCHEMA} -r %{REGISTRATION} #> /dev/null 2>&1 || :;
+}
+
+/sbin/ldconfig
+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 provider
-# Deregister only if not upgrading
-if [ $1 -eq 0 ]
-then
- %{_datadir}/%{name}/provider-register.sh -t pegasus -d \
- -r %{GATHER_REGISTRATION} -m %{GATHER_SCHEMA} &> /dev/null || :;
- # don't let registration failure when server not running fail erase!
+function unregister()
+{
+ # don't let registration failure when server not running fail upgrade!
+ GLOBIGNORE=%{G_GLOB_IGNORE}
+ %{_datadir}/%{name}/provider-register.sh -v -d $1 -m %{SCHEMA} -r %{REGISTRATION} #> /dev/null 2>&1 || :;
+ %{_datadir}/%{name}/provider-register.sh -v -d $1 -m %{GATHER_1ST_SCHEMA} -r %{GATHER_1ST_REGISTRATION} #> /dev/null 2>&1 || :;
+}
+
+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 provider -p /sbin/ldconfig
%changelog
+* Thu Mar 05 2015 Vitezslav Crhonek <vcrhonek at redhat.com> - 2.2.9-3
+- Update provider registration script to use systemctl to stop/start sfcb
+- Fix registration/deregistration
+- Require cim-server instead of tog-pegasus, don't BuildRequire tog-pegasus-devel
+
* Thu Jan 15 2015 Vitezslav Crhonek <vcrhonek at redhat.com> - 2.2.9-2
- Fix packaging of tmpfiles
More information about the scm-commits
mailing list