diff options
author | Martin Schwenke <martin@meltin.net> | 2015-02-27 15:13:23 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2015-03-04 10:42:26 +0100 |
commit | d057ca04a9eec0f2aa3d792da0a4648e3716685a (patch) | |
tree | c7ffb24a89cd9ed6bdc333eabe599ee06b3ccd8a /ctdb/tests/eventscripts/stubs | |
parent | 89788dd3193633f5e88ff194219ad838dcdfab96 (diff) | |
download | samba-d057ca04a9eec0f2aa3d792da0a4648e3716685a.tar.gz samba-d057ca04a9eec0f2aa3d792da0a4648e3716685a.tar.xz samba-d057ca04a9eec0f2aa3d792da0a4648e3716685a.zip |
ctdb-tests: Extend ctdb stub to support "ptrans", "pdelete", "catdb"
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb/tests/eventscripts/stubs')
-rwxr-xr-x | ctdb/tests/eventscripts/stubs/ctdb | 101 |
1 files changed, 87 insertions, 14 deletions
diff --git a/ctdb/tests/eventscripts/stubs/ctdb b/ctdb/tests/eventscripts/stubs/ctdb index cdb60134d6..5baef4a9ce 100755 --- a/ctdb/tests/eventscripts/stubs/ctdb +++ b/ctdb/tests/eventscripts/stubs/ctdb @@ -66,12 +66,6 @@ ctdb_killtcp () done } -setup_pstore () -{ - pstore_dir="$CTDB_VARDIR/fake-ctdb/pstore/$1" - mkdir -p "$pstore_dir" -} - parse_nodespec () { if [ "$nodespec" = "all" ] ; then @@ -326,6 +320,88 @@ ctdb_setvar () return 1 } +###################################################################### + +_t_setup () +{ + _t_dir="$CTDB_VARDIR/fake-ctdb/fake-tdb/$1" + mkdir -p "$_t_dir" +} + +_t_put () +{ + echo "$2" >"${_t_dir}/$1" +} + +_t_get () +{ + cat "${_t_dir}/$1" +} + +_t_del () +{ + rm -f "${_t_dir}/$1" +} + +ctdb_pstore () +{ + _t_setup "$2" + _t_put "$3" "$4" +} + +ctdb_pdelete () +{ + _t_setup "$2" + _t_del "$3" +} + +ctdb_pfetch () +{ + _t_setup "$2" + _t_get "$3" >"$4" 2>/dev/null +} + +ctdb_ptrans () +{ + _t_setup "$2" + + while IFS="" read _line ; do + _k=$(echo "$_line" | sed -n -e 's@^"\([^"]*\)" "[^"]*"$@\1@p') + _v=$(echo "$_line" | sed -e 's@^"[^"]*" "\([^"]*\)"$@\1@') + [ -n "$_k" ] || die "ctdb ptrans: bad line \"${line}\"" + if [ -n "$_v" ] ; then + _t_put "$_k" "$_v" + else + _t_del "$_k" + fi + done +} + +ctdb_catdb () +{ + _t_setup "$2" + + # This will break on keys with spaces but we don't have any of + # those yet. + _count=0 + for _i in "${_t_dir}/"* ; do + [ -r "$_i" ] || continue + _k="${_i##*/}" # basename + _v=$(_t_get "$_k") + _kn=$(echo -n "$_k" | wc -c) + _vn=$(echo -n "$_v" | wc -c) + cat <<EOF +key(${_kn}) = "${_k}" +dmaster: 0 +rsn: 1 +data(${_vn}) = "${_v}" + +EOF + _count=$(($_count + 1)) + done + + echo "Dumped ${_count} records" +} ###################################################################### @@ -346,14 +422,11 @@ case "$1" in _t=$(grep -F -v "$2 $3" "$tickles_file") echo "$_t" >"$tickles_file" ;; - pstore) - setup_pstore "$2" - cat "$4" >"${pstore_dir}/$3" - ;; - pfetch) - setup_pstore "$2" - cat "${pstore_dir}/$3" >"$4" 2>/dev/null - ;; + pstore) ctdb_pstore "$@" ;; + pdelete) ctdb_pdelete "$@" ;; + pfetch) ctdb_pfetch "$@" ;; + ptrans) ctdb_ptrans "$@" ;; + catdb) ctdb_catdb "$@" ;; ifaces) # Assume -Y. echo "|Name|LinkStatus|References|" |