Hi, Am Freitag, 8. April 2011, 15:07:12 schrieb Michael Calmer: > Hi, > > here is the patch to build rhn-virtualization on openSUSE. > > 0010-build-rhn-virtualization-on-SUSE.patch: > - modify the specfile > - add SUSE init script
Attached is a new version of this patch. build rhn-virtualization on SUSE - add packages to make it build in OBS - change scripts to call cron init script on SUSE - add SUSE init script -- Regards, Michael Calmer -------------------------------------------------------------------------- Michael Calmer SUSE LINUX Products GmbH, Maxfeldstr. 5, D-90409 Nuernberg T: +49 (0) 911 74053 0 F: +49 (0) 911 74053575 - e-mail: michael.cal...@suse.com -------------------------------------------------------------------------- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
From bba929abce49b3d1c0a107f7d305164da3b9f82b Mon Sep 17 00:00:00 2001 From: Michael Calmer <m...@suse.de> Date: Fri, 15 Apr 2011 11:44:22 +0200 Subject: [PATCH 09/13] build rhn-virtualization on SUSE - add packages to make it build in OBS - change scripts to call cron init script on SUSE - add SUSE init script --- .../rhn-virtualization/rhn-virtualization.spec | 31 +++++- .../scripts/rhn-virtualization-host.SUSE | 113 ++++++++++++++++++++ 2 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 client/tools/rhn-virtualization/scripts/rhn-virtualization-host.SUSE diff --git a/client/tools/rhn-virtualization/rhn-virtualization.spec b/client/tools/rhn-virtualization/rhn-virtualization.spec index 70eaf77..8c0074c 100644 --- a/client/tools/rhn-virtualization/rhn-virtualization.spec +++ b/client/tools/rhn-virtualization/rhn-virtualization.spec @@ -15,6 +15,10 @@ Release: 1%{?dist} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: python +%if 0%{?suse_version} +# make chkconfig work in OBS +BuildRequires: sysconfig syslog +%endif %description rhn-virtualization provides various RHN/Spacewalk actions for manipulation @@ -24,7 +28,14 @@ virtual machine guest images. Summary: Files needed by rhn-virtualization-host Group: System Environment/Base Requires: rhn-client-tools +%if 0%{?suse_version} +# aaa_base provide chkconfig +Requires: aaa_base +# provide directories for filelist check in obs +BuildRequires: rhn-client-tools rhn-check +%else Requires: chkconfig +%endif %description common This package contains files that are needed by the rhn-virtualization-host @@ -35,7 +46,11 @@ Summary: RHN/Spacewalk Virtualization support specific to the Host system Group: System Environment/Base Requires: libvirt-python Requires: rhn-virtualization-common = %{version}-%{release} +%if 0%{?suse_version} +Requires: cron +%else Requires: /usr/sbin/crond +%endif %if 0%{?rhel} && 0%{?rhel} < 6 # in RHEL5 we need libvirt, but in RHEV@RHEL5 there should not be libvirt # as there is vdsm and bunch of other packages, but we have no clue how to @@ -51,7 +66,9 @@ that is specific to the Host system (a.k.a. Dom0). %prep %setup -q - +%if 0%{?suse_version} +cp scripts/rhn-virtualization-host.SUSE scripts/rhn-virtualization-host +%endif %build make -f Makefile.rhn-virtualization @@ -59,22 +76,30 @@ make -f Makefile.rhn-virtualization %install rm -rf $RPM_BUILD_ROOT -make -f Makefile.rhn-virtualization DESTDIR=$RPM_BUILD_ROOT install +make -f Makefile.rhn-virtualization DESTDIR=$RPM_BUILD_ROOT PKGDIR0=%{_initrddir} install + - %clean rm -rf $RPM_BUILD_ROOT %post host /sbin/chkconfig --add rhn-virtualization-host +%if 0%{?suse_version} +/sbin/service cron try-restart ||: +%else /sbin/service crond condrestart +%endif %preun host /sbin/chkconfig --del rhn-virtualization-host %postun host +%if 0%{?suse_version} +/sbin/service cron try-restart ||: +%else /sbin/service crond condrestart +%endif %files common %defattr(-,root,root,-) diff --git a/client/tools/rhn-virtualization/scripts/rhn-virtualization-host.SUSE b/client/tools/rhn-virtualization/scripts/rhn-virtualization-host.SUSE new file mode 100644 index 0000000..da66d86 --- /dev/null +++ b/client/tools/rhn-virtualization/scripts/rhn-virtualization-host.SUSE @@ -0,0 +1,113 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: rhn-virtualization-host +# Required-Start: $network $syslog $remote_fs +# Required-Stop: $network $syslog $remote_fs +# Default-Start: 3 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts up xen domains when the host boots. +# Description: Starts up xen domains when the host boots. +### END INIT INFO + +# chkconfig: 2345 99 99 +# description: Starts up xen domains when the host boots. + +. /etc/rc.status + +auto_dir="/etc/sysconfig/rhn/virt/auto" +py_path="/usr/share/rhn:/usr/share/rhn/virtualization" +script_path="/usr/share/rhn/virtualization" +get_config_value="PYTHONPATH=$py_path python $script_path/get_config_value.py" +get_uuid="$get_config_value uuid" +get_name="$get_config_value name" +init_action="PYTHONPATH=$py_path python $script_path/init_action.py" +start_action="$init_action start" +stop_action="$init_action shutdown" + +if [ -d $auto_dir ]; then + list_of_files=$(ls $auto_dir) +else + list_of_files= +fi + +start() { + echo -n "Starting Managed Xen Domains:" + for NAME in $list_of_files; do + dom_uuid=$(eval $get_uuid $auto_dir/$NAME) + eval $start_action $dom_uuid > /dev/null 2>&1 + if [ $? -ne 0 ]; then + rc_check + fi + done + + touch /var/lock/subsys/rhn-virtualization + rc_status -v +} + +stop() { + echo -n "Stopping Managed Xen Domains:" + for NAME in $list_of_files; do + dom_uuid=$(eval $get_uuid $auto_dir/$NAME) + eval $stop_action $dom_uuid > /dev/null 2>&1 + if [ $? -ne 0 ]; then + rc_check + fi + done + + rm -f /var/lock/subsys/rhn-virtualization + rc_status -v +} + +status() { + found_guests=0 + + for NAME in $list_of_files; do + found_guests=1 + dom_name=$(eval $get_name $auto_dir/$NAME) + dom_state=$(virsh domstate $dom_name 2> /dev/null) + + if [ $? -eq 0 ]; then + echo "$dom_name: $dom_state" + else + echo "Error getting the status for $dom_name." + rc_check + fi + done + + if [ $found_guests -eq 0 ]; then + echo "No guest configurations symlinked in $auto_dir." + fi + + rc_status -v +} + + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + stop + start + ;; + condrestart|try-restart) + if [ -f /var/lock/subsys/rhn-virtualization ]; then + stop + start + fi + ;; + status) + status + ;; + *) + echo "Usage: service rhn-virtualization [start|stop|restart|condrestart|try-restart|reload|status]" + ;; +esac -- 1.7.3.4
_______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel