Tests - eventscripts - allow "ctdb scriptstatus" output to be primed
authorMartin Schwenke <martin@meltin.net>
Wed, 31 Aug 2011 07:27:05 +0000 (17:27 +1000)
committerMartin Schwenke <martin@meltin.net>
Wed, 31 Aug 2011 07:27:05 +0000 (17:27 +1000)
Signed-off-by: Martin Schwenke <martin@meltin.net>
tests/eventscripts/common.sh
tests/eventscripts/stubs/ctdb

index 9a2859f3975734bd153bb0a920e51aa0d0f8294b..9003b396c200b2672be7a420ef51fb229dcfd2e2 100644 (file)
@@ -238,6 +238,10 @@ setup_ctdb ()
     export FAKE_CTDB_NODES_DOWN="$EVENTSCRIPTS_TESTS_VAR_DIR/nodes-down"
     mkdir -p "$FAKE_CTDB_NODES_DOWN"
     rm -f "$FAKE_CTDB_NODES_DOWN"/*
+
+    export FAKE_CTDB_SCRIPTSTATUS="$EVENTSCRIPTS_TESTS_VAR_DIR/scriptstatus"
+    mkdir -p "$FAKE_CTDB_SCRIPTSTATUS"
+    rm -f "$FAKE_CTDB_SCRIPTSTATUS"/*
 }
 
 
@@ -290,13 +294,19 @@ ctdb_not_implemented ()
 {
     export CTDB_NOT_IMPLEMENTED="$1"
     ctdb_not_implemented="\
-DEBUG: ctdb: command \"$1\" not implemented
-DEBUG: Usage: ctdb [-Y] cmd
-DEBUG: 
-DEBUG: A fake CTDB stub that prints items depending on the variables
-DEBUG: FAKE_CTDB_PNN (default 0) depending on command-line options.
-DEBUG: 
-DEBUG: Note that -Y is ignored."
+DEBUG: ctdb: command \"$1\" not implemented in stub"
+}
+
+ctdb_fake_scriptstatus ()
+{
+    _code="$1"
+    _status="$2"
+    _err_out="$3"
+
+    _d1=$(date '+%s.%N')
+    _d2=$(date '+%s.%N')
+
+    echo "$_code $_status $_err_out" >"$FAKE_CTDB_SCRIPTSTATUS/$script"
 }
 
 ######################################################################
index 5b18473ec1ddd1bba61149f7a1fd6eb6f27eee6a..155f518ddc9ace3058204c100bce1448f625aec1 100755 (executable)
@@ -201,18 +201,25 @@ EOF
        $machine_readable || not_implemented "$1, without -Y"
        [ "$2" != "all" ] || not_implemented "scriptstatus all"
        # For now just assume everything is good.
-       _d1=$(date '+%s.%N')
-       _d2=$(date '+%s.%N')
        echo ":Type:Name:Code:Status:Start:End:Error Output...:"
        for _i in "$CTDB_BASE/events.d/"*.* ; do
+           _d1=$(date '+%s.%N')
            _b="${_i##*/}" # basename
-           _status="OK"
-           _code="0"
-           if [ ! -x "$_i" ] ; then
-               _status="DISABLED"
-               _code="-8"
+
+           _f="$FAKE_CTDB_SCRIPTSTATUS/$_b"
+           if [ -r "$_f" ] ; then
+               read _code _status _err_out <"$_f"
+           else
+               _code="0"
+               _status="OK"
+               if [ ! -x "$_i" ] ; then
+                   _status="DISABLED"
+                   _code="-8"
+               fi
+               _err_out=""
            fi
-           echo ":${2:-monitor}:${_b}:${_code}:${_status}:${_d1}:${_d2}::"
+           _d2=$(date '+%s.%N')
+           echo ":${2:-monitor}:${_b}:${_code}:${_status}:${_d1}:${_d2}:${_err_out}:"
        done
        ;;
     *)