[packages/targetcli-fb] init script and systemd service added
jajcus
jajcus at pld-linux.org
Sun Jan 5 21:13:44 CET 2014
commit 423b09270509ef5ae7bb5716e60662b52918dd5a
Author: Jacek Konieczny <jajcus at jajcus.net>
Date: Sun Jan 5 21:12:21 2014 +0100
init script and systemd service added
targetcli-fb.spec | 28 ++++++++++++-
targetcli.init | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
targetcli.service | 14 +++++++
3 files changed, 157 insertions(+), 1 deletion(-)
---
diff --git a/targetcli-fb.spec b/targetcli-fb.spec
index 8de4ecb..11e3dfd 100644
--- a/targetcli-fb.spec
+++ b/targetcli-fb.spec
@@ -7,8 +7,13 @@ Group: Applications/System
URL: https://github.com/agrover/targetcli-fb
Source0: https://codeload.github.com/agrover/targetcli-fb/tar.gz/v%{version}
# Source0-md5: 758f89dbc40ba54e7f9f901677031fa0
+Source1: targetcli.service
+Source2: targetcli.init
+BuildRequires: rpmbuild(macros) >= 1.647
Requires: python-configshell-fb
Requires: python-rtslib-fb
+Requires(post,preun,postun): systemd-units >= 38
+Requires: systemd-units >= 38
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -24,7 +29,8 @@ generic SCSI target, present in 3.x Linux kernel versions.
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_mandir}/man8,/etc/target/backup}
+install -d $RPM_BUILD_ROOT{%{_mandir}/man8,/etc/target/backup} \
+ $RPM_BUILD_ROOT{%{systemdunitdir},/etc/rc.d/init.d}
%{__python} setup.py \
install --skip-build \
@@ -35,9 +41,27 @@ install -d $RPM_BUILD_ROOT{%{_mandir}/man8,/etc/target/backup}
install targetcli.8 $RPM_BUILD_ROOT%{_mandir}/man8/
+install %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/targetcli.service
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/targetcli
+
# empty JSON file
echo "{}" > $RPM_BUILD_ROOT/etc/target/saveconfig.json
+%post
+/sbin/chkconfig --add targetcli
+%service targetcli restart
+%systemd_post .service
+
+%preun
+if [ "$1" = "0" ]; then
+ %service -q targetcli stop
+ /sbin/chkconfig --del targetcli
+fi
+%systemd_preun targetcli.service
+
+%postun
+%systemd_reload
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -52,3 +76,5 @@ rm -rf $RPM_BUILD_ROOT
%attr(750,root,root) %dir /etc/target
%attr(750,root,root) %dir /etc/target/backup
%attr(640,root,root) /etc/target/saveconfig.json
+%attr(754,root,root) /etc/rc.d/init.d/targetcli
+%{systemdunitdir}/targetcli.service
diff --git a/targetcli.init b/targetcli.init
new file mode 100644
index 0000000..041e112
--- /dev/null
+++ b/targetcli.init
@@ -0,0 +1,116 @@
+#!/bin/sh
+#
+# targetcli iSCSI target kernel configuration
+#
+# chkconfig: 345 70 20
+# description: iSCSI target kernel configuration
+# config: /etc/target/saveconfig.json
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down targetcli
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+start() {
+ # Check if the service is already running?
+ if [ ! -f /var/lock/subsys/targetcli ]; then
+ msg_starting targetcli
+ if /usr/bin/targetcli restoreconfig clear_existing=true > /dev/null ; then
+ ok
+ touch /var/lock/subsys/targetcli
+ RETVAL=0
+ else
+ fail
+ RETVAL=1
+ fi
+ else
+ msg_already_running targetcli
+ fi
+}
+
+stop() {
+ if [ -f /var/lock/subsys/targetcli ]; then
+ msg_stopping targetcli
+ if /usr/bin/targetcli clearconfig confirm=true >/dev/null ; then
+ ok
+ rm -f /var/lock/subsys/targetcli > /dev/null 2>&1
+ RETVAL=0
+ else
+ fail
+ RETVAL=1
+ fi
+ else
+ msg_not_running targetcli
+ fi
+}
+
+condrestart() {
+ if [ -f /var/lock/subsys/targetcli ]; then
+ stop
+ start
+ else
+ msg_not_running targetcli
+ RETVAL=$1
+ fi
+}
+
+reload() {
+ if [ -f /var/lock/subsys/targetcli ]; then
+ msg_reloading targetcli
+ if /usr/bin/targetcli restoreconfig clear_existing=true >/dev/null ; then
+ ok
+ RETVAL=0
+ else
+ fail
+ RETVAL=1
+ fi
+ else
+ msg_not_running targetcli
+ RETVAL=7
+ fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ reload|force-reload)
+ reload
+ ;;
+ status)
+ if [ -f /var/lock/subsys/targetcli ]; then
+ nls "%s was started" "targetcli"
+ RETVAL=0
+ else
+ nls "%s is stopped" "targetcli"
+ RETVAL=3
+ fi
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+ exit 3
+esac
+exit $RETVAL
diff --git a/targetcli.service b/targetcli.service
new file mode 100644
index 0000000..6fc25de
--- /dev/null
+++ b/targetcli.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Restore iSCSI target kernel configuration
+Requires=sys-kernel-config.mount
+After=sys-kernel-config.mount network.target local-fs.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/targetcli restoreconfig clear_existing=true
+ExecStop=/usr/bin/targetcli clearconfig confirm=true
+SyslogIdentifier=targetcli
+
+[Install]
+WantedBy=multi-user.target
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/targetcli-fb.git/commitdiff/910f4fd94e2caf001443e33f43ed5748f219fed8
More information about the pld-cvs-commit
mailing list