Re: [Xen-devel] [OSSTEST PATCH 11/16] mg-schema-test-database: Sort out daemons; provide `daemons' subcommand

2015-12-08 Thread Ian Campbell
On Mon, 2015-12-07 at 17:27 +, Ian Jackson wrote:
> We arrange for the test configuration to look for the daemons on a
> different host and port, and we provide a convenient way to run such a
> pair of daemons.
> 
> Signed-off-by: Ian Jackson 

Acked-by: Ian Campbell 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [OSSTEST PATCH 11/16] mg-schema-test-database: Sort out daemons; provide `daemons' subcommand

2015-12-07 Thread Ian Jackson
We arrange for the test configuration to look for the daemons on a
different host and port, and we provide a convenient way to run such a
pair of daemons.

Signed-off-by: Ian Jackson 
---
v2: Moved setting of *Daemon{Host,Port} to this patch (was
 previously in `mg-schema-test-database: New script')
---
 mg-schema-test-database |   63 ++-
 1 file changed, 62 insertions(+), 1 deletion(-)

diff --git a/mg-schema-test-database b/mg-schema-test-database
index a1eb49c..73d92f3 100755
--- a/mg-schema-test-database
+++ b/mg-schema-test-database
@@ -4,7 +4,8 @@
 #
 #
 #  ./mg-schema-test-database create [_SUFFIX] [TASK...] \
-#  [-fMINFLIGHT | -f-NUMFLIGHTS]
+#  [-fMINFLIGHT | -f-NUMFLIGHTS] \
+#  [-hCTRL_DAEMONS_HOST] [-fOWNER_D_PORT[,QUEUE_D_PORT]]
 #
 # does `drop' and then creates
 #   - the databaseosstestdb_test_SUFFIX
@@ -16,12 +17,24 @@
 # TASKs become idle in the test copy.  Others become allocated to
 # a specially-created `owned by someone in real db' task.
 #
+# Default for CTRL_DAEMONS_HOST is localhost; if no port is supplied,
+# we use the corresponding production port + 2; if only one port is
+# supplied we use that and the next port number.
+#
 #
 #  ./mg-schema-test-database drop [_SUFFIX]
 #
 # deletes your test database and removes the local-config file
 #
 #
+#  ./mg-schema-test-database daemons [_SUFFIX]
+#
+# synchronously runs owner and queue daemons for your test database
+#
+# NB that you can't drop a test database with these daemons running,
+# because Postgres will refuse to drop a database that anyone is
+# connected to.
+
 
 set -e -o posix ${OSSTEST_DEBUG:+-x}
 
@@ -114,6 +127,9 @@ END
 }
 
 withtest () {
+   if ! [ -e "$tcfg" ]; then
+   fail "test $dbname not set up ($tcfg does not exist)"
+   fi
OSSTEST_CONFIG="$test_cfg_setting" "$@"
 }
 
@@ -194,6 +210,10 @@ create)
;;
-f*)minflight="${arg#-f}"
;;
+   -h*)ctrlhost="${arg#-h}"
+   ;;
+   -p*)ctrlports="${arg#-p}"
+   ;;
*)  fail "bad arg to create"
;;
esac
@@ -224,6 +244,18 @@ END
;;
esac
 
+   if [ "x$ctrlhost" = x ]; then
+   ctrlhost=localhost
+   fi
+   case "$ctrlports" in
+   *,*);;
+   ?*) ctrlports+=,$(( $ctrlports + 1 )) ;;
+   '')
+ ctrlports=$(( $(getconfig OwnerDaemonPort) + 2)),$((
+   $(getconfig QueueDaemonPort) + 2))
+   ;;
+   esac
+
#-- preparation and data-gathering --
 
bad=$(  psql_query <$tcfg.tmp -we '
@@ -258,6 +292,12 @@ END
"port=$dbh_tests->{pg_port}\n"
or die $!;
'
+   cat >>$tcfg.tmp