From: Quentin Smith Date: Sat, 4 Dec 2010 04:46:33 +0000 (-0500) Subject: Support multiple iSCSI targets and read their addresses from invirt.config X-Git-Tag: 0.0.11^0 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/xvm-iscsi-config.git/commitdiff_plain/f2ecd4a06abd4893abafebe4d7d2913b9cf3f3ff?ds=sidebyside Support multiple iSCSI targets and read their addresses from invirt.config --- diff --git a/debian/changelog b/debian/changelog index 558a00e..c420750 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xvm-iscsi-config (0.0.11) unstable; urgency=low + + * Support multiple iSCSI targets and read their addresses + from invirt.config + + -- Quentin Smith Fri, 03 Dec 2010 21:56:25 -0500 + xvm-iscsi-config (0.0.10) unstable; urgency=low * Added a clean target. diff --git a/debian/xvm-iscsi-config.config b/debian/xvm-iscsi-config.config index e3f15bd..9bcfbae 100755 --- a/debian/xvm-iscsi-config.config +++ b/debian/xvm-iscsi-config.config @@ -5,9 +5,6 @@ set -e # Source debconf library . /usr/share/debconf/confmodule -# Get IP address -db_input high xvm-iscsi-config/address || true -db_go || true # Get username db_input high xvm-iscsi-config/username || true db_go || true diff --git a/debian/xvm-iscsi-config.postinst b/debian/xvm-iscsi-config.postinst index 0b7a06e..6182942 100755 --- a/debian/xvm-iscsi-config.postinst +++ b/debian/xvm-iscsi-config.postinst @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # postinst script for xvm-iscsi-config # # see: dh_installdeb(1) @@ -25,36 +25,68 @@ set -e #DEBHELPER# +get_current_sessions() { + for i in $(cd /sys/class/iscsi_session/ && ls); do + echo $(cat /sys/class/iscsi_connection/connection${i#session}:0/persistent_address) \ +$(cat /sys/class/iscsi_host/$(readlink /sys/class/iscsi_session/$i/device | perl -ne '/host\d+/ && print $&')/netdev) + done | sort +} + +get_new_sessions() { + for i in $(invirt-getconf --ls iscsi.targets); do + echo $(invirt-getconf iscsi.targets.$i.ip) $(invirt-getconf iscsi.targets.$i.iface) + done | sort +} + case "$1" in configure) - db_get xvm-iscsi-config/address - ADDRESS="$RET" db_get xvm-iscsi-config/username USERNAME="$RET" db_get xvm-iscsi-config/password PASSWORD="$RET" db_stop + OLD_USERNAME=$(invirt-getconf iscsi.username 2>/dev/null) + OLD_PASSWORD=$(invirt-getconf iscsi.password 2>/dev/null) + if [ -e /etc/invirt/conf.d/iscsi ]; then # invirt.config.run_parts_list excludes backup filenames. mv -f /etc/invirt/conf.d/iscsi /etc/invirt/conf.d/iscsi~ fi cat >/etc/invirt/conf.d/iscsi </dev/null; then - cat </dev/null; then + if [ -z "$safe" ]; then + for i in $(invirt-getconf --ls iscsi.targets); do + iscsiadm -m discovery -t st -p $(invirt-getconf iscsi.targets.$i.ip):3260 -I $(invirt-getconf iscsi.targets.$i.iface) + iscsiadm -m node -p $(invirt-getconf iscsi.targets.$i.ip):3260 -I $(invirt-getconf iscsi.targets.$i.iface) -l + done + else + for i in $(invirt-getconf --ls iscsi.targets); do + echo " "iscsiadm -m discovery -t st -p $(invirt-getconf iscsi.targets.$i.ip):3260 -I $(invirt-getconf iscsi.targets.$i.iface) + echo " "iscsiadm -m node -p $(invirt-getconf iscsi.targets.$i.ip):3260 -I $(invirt-getconf iscsi.targets.$i.iface) -l + done + fi + cat <