summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorMichael Tokarev <mjt@tls.msk.ru>2014-09-20 12:58:27 +0400
committerMichael Tokarev <mjt@tls.msk.ru>2014-09-27 18:17:24 +0400
commit2f6971fe70647bf84fe55ca148561af0bc17ee2f (patch)
treec3609a8f8f861ace7891c7109a158d5bdc2f11b4 /debian
parent84b75aa56b33a5a299b236d8dfa4f44d12c67a29 (diff)
reformat mdadm-raid initscript a bit
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog1
-rw-r--r--debian/mdadm-raid285
2 files changed, 144 insertions, 142 deletions
diff --git a/debian/changelog b/debian/changelog
index f37582e6..c5fe263e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,7 @@ mdadm (3.3.2-1) UNRELEASED; urgency=low
* remove references to old (2.x and 1.x) mdadm versions (Closes: #728804)
* remove references to very old (pre-wheeze) breaks/replaces/depends
* remove support of makedev
+ * reformat mdadm-raid initscript a bit
-- Michael Tokarev <mjt@tls.msk.ru> Sat, 20 Sep 2014 08:49:59 +0400
diff --git a/debian/mdadm-raid b/debian/mdadm-raid
index 0c0cad52..a50c8241 100644
--- a/debian/mdadm-raid
+++ b/debian/mdadm-raid
@@ -78,164 +78,165 @@ is_true()
{
case "${1:-}" in
[Yy]es|[Yy]|1|[Tt]rue|[Tt]) return 0;;
- *) return 1;
+ *) return 1;;
esac
}
case "${1:-}" in
+
start)
PREFIX="Assembling MD array"
- if is_true $AUTOSTART || is_true ${MDADM_FORCE_AUTOSTART__:-0}; then
- if [ ! -f /proc/mdstat ] && [ -x "$(command -v modprobe)" ] ; then
- modprobe -q md 2>/dev/null || :
- fi
- if [ ! -f /proc/mdstat ]; then
- log_problem "failed to load MD subsystem"
- exit 0
- fi
-
- if [ -f $CONFIG ] || [ -f $ALTCONFIG ]; then
- # handle devfs-style names and version-1 devices
- # fail gracefully in case we're on a read-only filesystem, in which
- # case it's safe to assume that the admin knows what s/he's doing.
- # See (#382876).
- mkdir --parent /dev/md || :
-
- # ugly hack because shell sucks
- IFSOLD=${IFS:-}
- IFS='
-'
- for line in $($MDADM --assemble --scan --auto=yes --symlink=no 2>&1); do
- IFS=$IFSOLD
- set -- $line
- shift
-
- case "$@" in
-
- 'No arrays found in config file'*)
- # no point in carrying on.
- shift
- log_notice "no $*"
- exit 0
- ;;
-
- 'Unknown keyword'*)
- # warn only
- if [ -x $(command -v logger >/dev/null) ]; then
- logger -t mdadm -p syslog.warning -- "$*"
- elif [ -w /dev/console ]; then
- echo "mdadm: $*" > /dev/console
- else
- echo "mdadm: $*" >&2
- fi
- ;;
-
- *' is already active.')
- log_dev 0 $1 "already running"
- ;;
-
- *'has been started with '[[:digit:]]*' drive'*' (out of '[[:digit:]]*') and '[[:digit:]]*' spare'*'.')
- log_dev 0 $1 "initialising [$6/${10%).}]"
- ;;
-
- *'has been started with '[[:digit:]]*' drive'*' (out of '[[:digit:]]*').')
- log_dev 0 $1 "degraded [$6/${10%).}]"
- ;;
-
- *'has been started with '[[:digit:]]*' drive'*'.')
- log_dev 0 $1 "started [$6/$6]"
- ;;
-
- *'assembled from '[[:digit:]]*' drive'*' - not enough to start the array.')
- log_dev 1 $1 "not enough devices"
- ;;
-
- 'no devices found for '*)
- log_dev 1 $5 "no devices found"
- ;;
-
- 'failed to RUN_ARRAY '*': Input/output error')
- log_dev 1 ${4%:} "RUN_ARRAY input/output error"
- ;;
-
- *) :;;
- esac
- done
- ret=$?
-
- log_action_begin_msg "Generating udev events for MD arrays"
- [ -d $STATEDIR ] || mkdir -p $STATEDIR
- for uevent in /sys/block/md*/uevent; do
- test -e $uevent || break
- sentinel=${uevent#/sys/block/}; sentinel=${sentinel%/uevent}-uevent
- test -e $STATEDIR/$sentinel && continue
- test -w $uevent || continue
- echo add > $uevent
- test -d $STATEDIR && : > $STATEDIR/$sentinel
- done
- log_action_end_msg 0
-
- [ $ret -ne 0 ] && exit $ret
-
- else
- log_problem "no $CONFIG file"
- fi
- else
+ if ! is_true $AUTOSTART && ! is_true ${MDADM_FORCE_AUTOSTART__:-0}; then
log_notice "disabled in $DEBIANCONFIG"
+ exit 0
fi
- ;;
- stop)
- PREFIX="Stopping MD array"
+ if [ ! -f /proc/mdstat ] && [ -x "$(command -v modprobe)" ] ; then
+ modprobe -q md 2>/dev/null || :
+ fi
+ if [ ! -f /proc/mdstat ]; then
+ log_problem "failed to load MD subsystem"
+ exit 0
+ fi
- if is_true $AUTOSTART; then
- if [ ! -f /proc/mdstat ]; then
- log_problem "no MD subsystem loaded"
- exit 0
- fi
+ if [ ! -f $CONFIG -a ! -f $ALTCONFIG ]; then
+ log_problem "no $CONFIG file"
+ exit 0
+ fi
+
+ # handle devfs-style names and version-1 devices
+ # fail gracefully in case we're on a read-only filesystem, in which
+ # case it's safe to assume that the admin knows what s/he's doing.
+ # See (#382876).
+ mkdir --parent /dev/md || :
- # ugly hack because shell sucks
- IFSOLD=${IFS:-}
- IFS='
+ # ugly hack because shell sucks
+ IFSOLD=${IFS:-}
+ IFS='
'
- set +e
- for line in $($MDADM --stop --scan 2>&1); do
- set -e
- IFS=$IFSOLD
- set -- $line
- shift
-
- case "$@" in
-
- 'Unknown keyword'*)
- # warn only
- if [ -x $(command -v logger >/dev/null) ]; then
- logger -t mdadm -p syslog.warning -- "$*"
- elif [ -w /dev/console ]; then
- echo "mdadm: $*" > /dev/console
- else
- echo "mdadm: $*" >&2
- fi
- ;;
-
- 'stopped '*)
- log_dev 0 $2 stopped
- ;;
-
- 'fail to stop array '*': Device or resource busy')
- log_dev 1 ${5%:} busy
- ;;
-
- *) :;;
- esac
- done || exit $?
-
- rm -f $STATEDIR/md*-uevent
+ for line in $($MDADM --assemble --scan --auto=yes --symlink=no 2>&1); do
+ IFS=$IFSOLD
+ set -- $line
+ shift
- else
+ case "$@" in
+
+ 'No arrays found in config file'*)
+ # no point in carrying on.
+ shift
+ log_notice "no $*"
+ exit 0
+ ;;
+
+ 'Unknown keyword'*)
+ # warn only
+ if [ -x $(command -v logger >/dev/null) ]; then
+ logger -t mdadm -p syslog.warning -- "$*"
+ elif [ -w /dev/console ]; then
+ echo "mdadm: $*" > /dev/console
+ else
+ echo "mdadm: $*" >&2
+ fi
+ ;;
+
+ *' is already active.')
+ log_dev 0 $1 "already running"
+ ;;
+
+ *'has been started with '[[:digit:]]*' drive'*' (out of '[[:digit:]]*') and '[[:digit:]]*' spare'*'.')
+ log_dev 0 $1 "initialising [$6/${10%).}]"
+ ;;
+
+ *'has been started with '[[:digit:]]*' drive'*' (out of '[[:digit:]]*').')
+ log_dev 0 $1 "degraded [$6/${10%).}]"
+ ;;
+
+ *'has been started with '[[:digit:]]*' drive'*'.')
+ log_dev 0 $1 "started [$6/$6]"
+ ;;
+
+ *'assembled from '[[:digit:]]*' drive'*' - not enough to start the array.')
+ log_dev 1 $1 "not enough devices"
+ ;;
+
+ 'no devices found for '*)
+ log_dev 1 $5 "no devices found"
+ ;;
+
+ 'failed to RUN_ARRAY '*': Input/output error')
+ log_dev 1 ${4%:} "RUN_ARRAY input/output error"
+ ;;
+
+ *) :;;
+ esac
+ done
+ ret=$?
+
+ log_action_begin_msg "Generating udev events for MD arrays"
+ [ -d $STATEDIR ] || mkdir -p $STATEDIR
+ for uevent in /sys/block/md*/uevent; do
+ test -e $uevent || break
+ sentinel=${uevent#/sys/block/}; sentinel=${sentinel%/uevent}-uevent
+ test -e $STATEDIR/$sentinel && continue
+ test -w $uevent || continue
+ echo add > $uevent
+ test -d $STATEDIR && : > $STATEDIR/$sentinel
+ done
+ log_action_end_msg 0
+
+ exit $ret
+ ;;
+
+ stop)
+ PREFIX="Stopping MD array"
+
+ if ! is_true $AUTOSTART; then
log_notice "disabled in $DEBIANCONFIG"
+ exit 0
fi
+
+ if [ ! -f /proc/mdstat ]; then
+ log_problem "no MD subsystem loaded"
+ exit 0
+ fi
+
+ # ugly hack because shell sucks
+ IFSOLD=${IFS:-}
+ IFS='
+'
+ set +e
+ for line in $($MDADM --stop --scan 2>&1); do
+ set -e
+ IFS=$IFSOLD
+ set -- $line
+ shift
+ case "$@" in
+
+ 'Unknown keyword'*)
+ # warn only
+ if [ -x $(command -v logger >/dev/null) ]; then
+ logger -t mdadm -p syslog.warning -- "$*"
+ elif [ -w /dev/console ]; then
+ echo "mdadm: $*" > /dev/console
+ else
+ echo "mdadm: $*" >&2
+ fi
+ ;;
+
+ 'stopped '*)
+ log_dev 0 $2 stopped
+ ;;
+
+ 'fail to stop array '*': Device or resource busy')
+ log_dev 1 ${5%:} busy
+ ;;
+
+ *) :;;
+ esac
+ done || exit $?
+
+ rm -f $STATEDIR/md*-uevent
;;
restart|force-reload)