Module Name: src Committed By: mlelstv Date: Fri Feb 3 13:53:40 UTC 2023
Modified Files: src/distrib/sets/lists/etc: mi src/etc/defaults: rc.conf src/etc/rc.d: Makefile Added Files: src/etc/rc.d: iscsid_volumes Log Message: Add start script to attach iscsi volumes at boot. The default is to execute the script (iscsid_volumes=YES), so if you have any volumes defined, you should also start iscsid (iscsid=YES) to avoid error messages. To generate a diff of this commit: cvs rdiff -u -r1.270 -r1.271 src/distrib/sets/lists/etc/mi cvs rdiff -u -r1.162 -r1.163 src/etc/defaults/rc.conf cvs rdiff -u -r1.116 -r1.117 src/etc/rc.d/Makefile cvs rdiff -u -r0 -r1.1 src/etc/rc.d/iscsid_volumes Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/etc/mi diff -u src/distrib/sets/lists/etc/mi:1.270 src/distrib/sets/lists/etc/mi:1.271 --- src/distrib/sets/lists/etc/mi:1.270 Mon Jun 6 10:56:27 2022 +++ src/distrib/sets/lists/etc/mi Fri Feb 3 13:53:40 2023 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.270 2022/06/06 10:56:27 nia Exp $ +# $NetBSD: mi,v 1.271 2023/02/03 13:53:40 mlelstv Exp $ # # Note: end-user configuration files that are moved to another location # should not be marked "obsolete"; they should just be removed from @@ -83,6 +83,7 @@ ./etc/inetd.conf etc-netutil-etc ./etc/iscsi/auths etc-iscsi-etc iscsi ./etc/iscsi/targets etc-iscsi-etc iscsi +./etc/iscsi/volumes etc-iscsi-etc ./etc/kyua/kyua.conf etc-kyua-etc kyua ./etc/lkm.conf etc-obsolete obsolete ./etc/localtime etc-sys-etc @@ -238,6 +239,7 @@ ./etc/rc.d/irdaattach etc-sys-rc ./etc/rc.d/iscsi_target etc-iscsi-rc ./etc/rc.d/iscsid etc-iscsi-rc +./etc/rc.d/iscsid_volumes etc-iscsi-rc ./etc/rc.d/isdnd etc-obsolete obsolete ./etc/rc.d/isibootd etc-bootserver-rc ./etc/rc.d/kdc etc-krb5-rc Index: src/etc/defaults/rc.conf diff -u src/etc/defaults/rc.conf:1.162 src/etc/defaults/rc.conf:1.163 --- src/etc/defaults/rc.conf:1.162 Sun Feb 20 14:42:07 2022 +++ src/etc/defaults/rc.conf Fri Feb 3 13:53:40 2023 @@ -1,4 +1,4 @@ -# $NetBSD: rc.conf,v 1.162 2022/02/20 14:42:07 alnsn Exp $ +# $NetBSD: rc.conf,v 1.163 2023/02/03 13:53:40 mlelstv Exp $ # # /etc/defaults/rc.conf -- # default configuration of /etc/rc.conf @@ -317,6 +317,8 @@ kdc=NO kdc_flags="--detach" iscsi_target=NO iscsi_target_flags="" # iSCSI kernel initiator iscsid=NO +# iSCSI attach from /etc/iscsi/volumes +iscsid_volumes=YES # WPA daemons. hostapd=NO hostapd_flags="-Bs /etc/hostapd.conf" Index: src/etc/rc.d/Makefile diff -u src/etc/rc.d/Makefile:1.116 src/etc/rc.d/Makefile:1.117 --- src/etc/rc.d/Makefile:1.116 Mon Jun 6 10:56:28 2022 +++ src/etc/rc.d/Makefile Fri Feb 3 13:53:40 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.116 2022/06/06 10:56:28 nia Exp $ +# $NetBSD: Makefile,v 1.117 2023/02/03 13:53:40 mlelstv Exp $ .include <bsd.own.mk> @@ -25,7 +25,7 @@ CONFIGFILES=\ gpio \ hostapd httpd \ identd ifwatchd inetd ip6addrctl ipfilter ipfs ipmon ipnat \ - ipsec irdaattach iscsi_target iscsid isibootd \ + ipsec irdaattach iscsi_target iscsid iscsid_volumes isibootd \ kdc \ ldconfig ldpd lvmlockdir local lpd lvm \ makemandb mdnsd mixerctl modules mopd motd mountall \ Added files: Index: src/etc/rc.d/iscsid_volumes diff -u /dev/null src/etc/rc.d/iscsid_volumes:1.1 --- /dev/null Fri Feb 3 13:53:40 2023 +++ src/etc/rc.d/iscsid_volumes Fri Feb 3 13:53:40 2023 @@ -0,0 +1,110 @@ +#!/bin/sh +# +# $NetBSD: iscsid_volumes,v 1.1 2023/02/03 13:53:40 mlelstv Exp $ +# + +# PROVIDE: iscsid_volumes +# REQUIRE: iscsid +# BEFORE: securelevel mountcritremote + +$_rc_subr_loaded . /etc/rc.subr + +name="iscsid_volumes" +rcvar=$name +start_cmd="iscsid_volumes_start" +stop_cmd="iscsid_volumes_stop" + +iscsid_volumes_start() +{ + test -f /etc/iscsi/volumes || return + + while read host target digest auth user alias; do + case $host in + \#*) ;; + *) + topts='' + case $digest in + *d*) topts="$topts -d";; + esac + case $digest in + *h*) topts="$topts -h";; + esac + + pass="-" + mpass="-" + + while read entry dummy; do + case $entry in + \#*) ;; + "$user":*) pass=${entry#*:} ;; + "$target":*) mpass=${entry#*:} ;; + esac + done < /etc/iscsi/auths + + case $host in + *:*) + port=${host#*:} + host=${host%%:*} + ;; + *) + port=3260 + ;; + esac + + echo "Add target ${alias:-$target}" + + out=$(/sbin/iscsictl add_target$topts \ + -a "$host" \ + -p "$port" \ + -n "$target" \ + -t "$auth" \ + -u "$user" \ + -s "$pass" \ + -S "$mpass" \ + -N "${alias:--}") + echo "$out" + + case $out in + Added\ Target\ [1-9]*,\ Portal\ [1-9]*\ ) + out=${out% } + portal=${out##* } + echo "Login $target via Portal $portal" + /sbin/iscsictl login -P "$portal" + ;; + esac + esac + done < /etc/iscsi/volumes +} + +iscsid_volumes_stop() +{ + test -f /etc/iscsi/volumes || return + + while read host target digest auth user alias; do + case $host in + \#*) ;; + *) + echo "Remove target ${alias:-$target}" + + /sbin/iscsictl list_sessions \ + | while read key1 num key2 sesstarget; do + if [ x"$key1" = x"Session" -a \ + x"$key2" = x"Target" -a \ + x"$sesstarget" = x"$target" ]; then + /sbin/iscsictl logout -I "$num" | grep -v '^OK$' + fi + done + + /sbin/iscsictl list_targets \ + | while read num talias ttarget; do + if [ x"$ttarget" = x"$target" ]; then + /sbin/iscsictl remove_target -I "$num" + fi + done + ;; + esac + done < /etc/iscsi/volumes +} + +load_rc_config $name +run_rc_command "$1"