Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
xen
block-iscsi
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File block-iscsi of Package xen
#!/bin/bash # Usage: block-iscsi [add tgtname | remove dev] # # This assumes you're running a correctly configured # iscsi target (server) at the other end! # Note that we assume that the passwords for discovery (if needed) # are in /etc/iscsid.conf # and the node session passwords (if required) in the # open-iscsi database below /var/lib/open-iscsi/node.db # # (c) Kurt Garloff <kurt@garloff.de>, 2006-09-04, GNU GPL # Contributors: Jim Fehlig <jfehlig@novell.com> # Stefan de Konink <skinkie@xs4all.nl> dir=$(dirname "$0") . "$dir/block-common.sh" # echo "DBG:xen/scripts/block-iscsi $1 $2 XENBUS_PATH=$XENBUS_PATH $par $node" find_sdev() { unset dev for session in /sys/class/iscsi_session/session*; do if [ "$1" = "`cat $session/targetname 2>/dev/null`" ]; then dev=`basename $session/device/target*/*:0:*/block*/*` return fi done } find_sdev_rev() { unset tgt for session in /sys/class/iscsi_session/session*; do dev=`basename $session/device/target*/*:0:*/block*/*` if [ "$dev" = "$1" ]; then tgt=`cat $session/targetname 2>/dev/null` return fi done } case "$command" in add) # load modules and start iscsid /etc/init.d/open-iscsi status >/dev/null 2>&1 || { /etc/init.d/open-iscsi start >/dev/null 2>&1; sleep 1; } par=`xenstore-read $XENBUS_PATH/params` || true TGTID=`echo $par | sed "s/\/\///g"` while read rec uuid; do if [ "$uuid" = "$TGTID" ]; then find_sdev $TGTID if [ -z "$dev" ]; then /sbin/iscsiadm -m node -T $uuid -p $rec --login || exit 2 sleep 4 find_sdev $TGTID fi xenstore-write $XENBUS_PATH/node /dev/$dev write_dev /dev/$dev exit 0 fi done < <(/sbin/iscsiadm -m node) exit 1 ;; remove) node=`xenstore-read $XENBUS_PATH/node` || true dev=$node; dev=${dev#/dev/} find_sdev_rev $dev if [ -x /sbin/blockdev -a -n "$node" ]; then blockdev --flushbufs "$node"; fi test -z "$tgt" && exit 2 /sbin/iscsiadm -m node -T $tgt --logout exit 1 ;; esac
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor