summaryrefslogtreecommitdiff
path: root/sys-block/tgt/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-08-15 21:27:56 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-08-15 21:27:56 +0100
commit3648761f2708fcf5662ea1b9585f594c36eefc30 (patch)
tree7b8af3caaff06cdddb5c39ec135ecc908b62a139 /sys-block/tgt/files
parent4214d835b45f0047c644e43c7fa70f1bbdb2e8b3 (diff)
gentoo auto-resync : 15:08:2023 - 21:27:55
Diffstat (limited to 'sys-block/tgt/files')
-rw-r--r--sys-block/tgt/files/tgtd.confd-new7
-rw-r--r--sys-block/tgt/files/tgtd.initd-new136
2 files changed, 143 insertions, 0 deletions
diff --git a/sys-block/tgt/files/tgtd.confd-new b/sys-block/tgt/files/tgtd.confd-new
new file mode 100644
index 000000000000..99a8f8db02fd
--- /dev/null
+++ b/sys-block/tgt/files/tgtd.confd-new
@@ -0,0 +1,7 @@
+# Here you can specify options that are passed directly to tgt daemon
+#tgtd_opts=""
+
+# Config file for automatic configuration with tgt-admin
+#tgtd_conf="/etc/tgt/targets.conf"
+
+# vim: ft=gentoo-conf-d
diff --git a/sys-block/tgt/files/tgtd.initd-new b/sys-block/tgt/files/tgtd.initd-new
new file mode 100644
index 000000000000..7941f1a7e974
--- /dev/null
+++ b/sys-block/tgt/files/tgtd.initd-new
@@ -0,0 +1,136 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# shellcheck shell=sh
+
+# Default configuration fike
+: "${tgtd_conf:=/etc/tgt/targets.conf}"
+
+pidfile="/var/run/${RC_SVCNAME}.pid"
+command="/usr/sbin/tgtd"
+command_args_background="--pid-file ${pidfile}"
+extra_commands="forcedstop"
+extra_started_commands="forcedreload reload"
+
+depend() {
+ use net
+}
+
+start_post() {
+ # We need to wait for 1 second before do anything with tgtd.
+ sleep 1
+ # Put tgtd into "offline" state until all the targets are configured.
+ # We don't want initiators to (re)connect and fail the connection
+ # if configuration is not ready.
+ tgtadm --op update --mode sys --name State -v offline
+
+ # Configure the targets.
+ if [ ! -r "${tgtd_conf}" ]; then
+ ewarn "Configuration file '${tgtd_conf}' not found!"
+ ewarn "Leaving ${SVCNAME} running in 'offline' state."
+ eend 0
+ else
+ ebegin "Loading target configuration"
+ tgt-admin --update ALL -c "${tgtd_conf}"
+ retval=$?
+ if [ $retval -ne 0 ]; then
+ eerror "Could not load configuration!"
+ stop
+ exit $?
+ fi
+ eend $retval
+
+ # Put tgtd into "ready" state.
+ ebegin "Onlining targets. Accepting connections"
+ tgtadm --op update --mode sys --name State -v ready
+ eend $?
+ fi
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ # We need to force shutdown if system is restarting
+ # or shutting down.
+ if [ "$RC_RUNLEVEL" = "shutdown" ] ; then
+ forcedstop
+ else
+ # Remove all targets. Only remove targets which are not in use.
+ tgt-admin --update ALL -c /dev/null >/dev/null 2>&1
+ retval=$?
+ if [ $retval -eq 107 ] ; then
+ einfo "tgtd is not running"
+ else
+ # tgtd will exit if all targets were removed.
+ tgtadm --op delete --mode system >/dev/null 2>&1
+ retval=$?
+ if [ $retval -ne 0 ] ; then
+ eerror "WARNING: Some initiators are still connected - could not stop tgtd"
+ fi
+ fi
+ fi
+ eend $retval
+}
+
+forcedstop() {
+ # NOTE: Forced shutdown of the iscsi target may cause data corruption
+ # for initiators that are connected.
+ ewarn "WARNING: Force-stopping target framework daemon"
+ for i in 5 4 3 2 1; do
+ einfo "Continuing in $i seconds..."
+ sleep 1
+ done
+
+ # Offline everything first. May be needed if we're rebooting, but
+ # expect the initiators to reconnect cleanly when we boot again
+ # (i.e. we don't want them to reconnect to a tgtd which is still
+ # onlineg, but the target is gone).
+ tgtadm --op update --mode sys --name State -v offline >/dev/null 2>&1
+ retval=$?
+ if [ $retval -eq 107 ] ; then
+ einfo "tgtd is not running"
+ else
+ # Offline all targets
+ tgt-admin --offline ALL
+
+ # Remove all targets, even if they are still in use.
+ tgt-admin --update ALL -c /dev/null -f
+
+ # tgtd shuts down after all targets are removed.
+ tgtadm --op delete --mode system
+ retval=$?
+ if [ $retval -ne 0 ] ; then
+ eerror "Failed to shutdown tgtd"
+ eend 1
+ fi
+ fi
+ eend $retval
+}
+
+reload() {
+ ebegin "Updating target framework daemon configuration"
+ # Update configuration for targets. Only targets which
+ # are not in use will be updated.
+ tgt-admin --update ALL -c "${tgtd_conf}" >/dev/null 2>&1
+ retval=$?
+ if [ $retval -eq 107 ]; then
+ ewarn "WARNING: tgtd is not running"
+ fi
+ eend $retval
+}
+
+forcedreload() {
+ ebegin "Updating target framework daemon configuration"
+ ewarn "WARNING: Force-updating running configuration!"
+ # Update configuration for targets, even those in use.
+ tgt-admin --update ALL -f -c "${tgtd_conf}" >/dev/null 2>&1
+ retval=$?
+ if [ $retval -eq 107 ]; then
+ ewarn "WARNING: tgtd is not running"
+ fi
+ eend $retval
+}
+
+status_post() {
+ einfo "Run 'tgt-admin -s' to see detailed target info."
+}