summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Duncan <leeman.duncan@gmail.com>2018-01-17 10:03:52 -0800
committerGitHub <noreply@github.com>2018-01-17 10:03:52 -0800
commitdbc761d509d01cc515fdcf92cc62cc295c012935 (patch)
tree9f9a0e7f6018a21a38de236d91eb9331b8beabb9
parent33f4a8d47c4f0eb1189674da9e204b57f6cc5147 (diff)
parent57b0463df9ec490c88bb979f6305344d07f5803a (diff)
downloadopen-iscsi-dbc761d509d01cc515fdcf92cc62cc295c012935.tar.gz
Merge pull request #79 from gonzoleeman/updates/add-iscsi_fw_login
Automate logging into iSCSI FW targets.
-rw-r--r--Makefile14
-rw-r--r--doc/iscsi_fw_login.816
-rw-r--r--utils/50-iscsi-firmware-login.rules15
-rw-r--r--utils/iscsi_fw_login12
4 files changed, 54 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index c8cd00e..e9426c2 100644
--- a/Makefile
+++ b/Makefile
@@ -13,12 +13,16 @@ bindir = $(exec_prefix)/bin
mandir = $(prefix)/share/man
etcdir = /etc
initddir = $(etcdir)/init.d
+rulesdir = $(etcdir)/udev/rules.d
-MANPAGES = doc/iscsid.8 doc/iscsiadm.8 doc/iscsi_discovery.8 iscsiuio/docs/iscsiuio.8
-PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi_discovery utils/iscsi-iname iscsiuio/src/unix/iscsiuio
+MANPAGES = doc/iscsid.8 doc/iscsiadm.8 doc/iscsi_discovery.8 \
+ iscsiuio/docs/iscsiuio.8 doc/iscsi_fw_login.8
+PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi-iname iscsiuio/src/unix/iscsiuio
+SCRIPTS = utils/iscsi_discovery utils/iscsi_fw_login
INSTALL = install
ETCFILES = etc/iscsid.conf
IFACEFILES = etc/iface.example
+RULESFILES = utils/50-iscsi-firmware-login.rules
# Compatibility: parse old OPTFLAGS argument
ifdef OPTFLAGS
@@ -92,7 +96,11 @@ install: install_programs install_doc install_etc \
install_user: install_programs install_doc install_etc \
install_initd install_iname install_iface
-install_programs: $(PROGRAMS)
+install_udev_rules:
+ $(INSTALL) -d $(DESTDIR)$(rulesdir)
+ $(INSTALL) -m 644 $(RULESFILES) $(DESTDIR)/$(rulesdir)
+
+install_programs: $(PROGRAMS) $(SCRIPTS)
$(INSTALL) -d $(DESTDIR)$(sbindir)
$(INSTALL) -m 755 $^ $(DESTDIR)$(sbindir)
diff --git a/doc/iscsi_fw_login.8 b/doc/iscsi_fw_login.8
new file mode 100644
index 0000000..e9fccd2
--- /dev/null
+++ b/doc/iscsi_fw_login.8
@@ -0,0 +1,16 @@
+.TH "iscsi_fw_login" 8
+.SH NAME
+iscsi_fw_login \- Login to all iSCSI Firmware targets
+.SH SYNOPSIS
+.B iscsi_fw_login
+.SH DESCRIPTION
+This helper function logs into all known iSCSI firmware targets.
+.P
+It is meant as a helper function to be called by udev when new
+firmware targets are detected asynchronously.
+.SH AUTHOR
+Written by Lee Duncan
+.SH "REPORTING BUGS"
+Report bugs to <lduncan@suse.com>.
+.SH COPYRIGHT
+Copyright \(co 2015 Lee Duncan <lduncan@suse.com>
diff --git a/utils/50-iscsi-firmware-login.rules b/utils/50-iscsi-firmware-login.rules
new file mode 100644
index 0000000..47b3cf9
--- /dev/null
+++ b/utils/50-iscsi-firmware-login.rules
@@ -0,0 +1,15 @@
+# This file contains the rules to handle iscsi firmware changes
+
+# DO NOT WRAP THIS LINE
+#
+# old udev does not understand some of it,
+# and would end up skipping only some lines, not the full rule.
+# which can cause all sort of trouble with strange-named device nodes
+# for completely unrelated devices,
+# resulting in unusable network lookback, etc.
+#
+# in case this is "accidentally" installed on a system with old udev,
+# having it as one single line avoids those problems.
+#
+# DO NOT WRAP THIS LINE
+SUBSYSTEM=="iscsi_boot*", ACTION=="add", DEVPATH=="*/target*", RUN+="/sbin/iscsi_fw_login"
diff --git a/utils/iscsi_fw_login b/utils/iscsi_fw_login
new file mode 100644
index 0000000..1312ed3
--- /dev/null
+++ b/utils/iscsi_fw_login
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# iscsi_fw_login -- login to iscsi firmware targets, if any
+#
+# This script is called when udev discovers a new iscsi
+# firmware target
+#
+
+ARGS="-m fw -l"
+ISCSIADM="/sbin/iscsiadm"
+
+$ISCSIADM $ARGS