diff options
author | Michael Janczyk | 2010-08-18 22:00:51 +0200 |
---|---|---|
committer | Michael Janczyk | 2010-08-18 22:00:51 +0200 |
commit | 304f7d60e1bbe0098a6c0aaf64c8e352025cffe4 (patch) | |
tree | 85cfe26dbddadef9c469dff24635b5d1989c82b9 /os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh | |
parent | update makefile to install squashfs binaries (diff) | |
parent | Merge branch 'master' into vmgrid (diff) | |
download | core-304f7d60e1bbe0098a6c0aaf64c8e352025cffe4.tar.gz core-304f7d60e1bbe0098a6c0aaf64c8e352025cffe4.tar.xz core-304f7d60e1bbe0098a6c0aaf64c8e352025cffe4.zip |
Merge branch 'vmgrid'
Diffstat (limited to 'os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh')
-rw-r--r-- | os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh b/os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh new file mode 100644 index 00000000..980a6270 --- /dev/null +++ b/os-plugins/plugins/xen/files/xen.examples/scripts/xen-hotplug-common.sh @@ -0,0 +1,93 @@ +# +# Copyright (c) 2005 XenSource Ltd. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of version 2.1 of the GNU Lesser General Public +# License as published by the Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + + +dir=$(dirname "$0") +. "$dir/logging.sh" +. "$dir/xen-script-common.sh" +. "$dir/locking.sh" + +exec 2>>/var/log/xen/xen-hotplug.log + +export PATH="/sbin:/bin:/usr/bin:/usr/sbin:$PATH" +export LANG="POSIX" +unset $(set | grep ^LC_ | cut -d= -f1) + +fatal() { + xenstore_write "$XENBUS_PATH/hotplug-error" "$*" \ + "$XENBUS_PATH/hotplug-status" error + log err "$@" + exit 1 +} + +success() { + # Tell DevController that backend is "connected" + xenstore_write "$XENBUS_PATH/hotplug-status" connected +} + +do_or_die() { + "$@" || fatal "$@ failed" +} + +do_without_error() { + "$@" 2>/dev/null || log debug "$@ failed" +} + +sigerr() { + fatal "$0 failed; error detected." +} + +trap sigerr ERR + + +## +# xenstore_read <path>+ +# +# Read each of the given paths, returning each result on a separate line, or +# exit this script if any of the paths is missing. +# +xenstore_read() { + local v=$(xenstore-read "$@" || true) + [ "$v" != "" ] || fatal "xenstore-read $@ failed." + echo "$v" +} + + +## +# xenstore_read_default <path> <default> +# +# Read the given path, returning the value there or the given default if the +# path is not present. +# +xenstore_read_default() { + xenstore-read "$1" 2>/dev/null || echo "$2" +} + + +## +# xenstore_write (<path> <value>)+ +# +# Write each of the key/value pairs to the store, and exit this script if any +# such writing fails. +# +xenstore_write() { + log debug "Writing $@ to xenstore." + xenstore-write "$@" || fatal "Writing $@ to xenstore failed." +} + + +log debug "$@" "XENBUS_PATH=$XENBUS_PATH" |