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

Reply via email to