ctdb-tools: Add cluster config options to config tool
authorMartin Schwenke <martin@meltin.net>
Fri, 11 May 2018 12:26:16 +0000 (22:26 +1000)
committerAmitay Isaacs <amitay@samba.org>
Thu, 17 May 2018 02:04:30 +0000 (04:04 +0200)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/common/conf_tool.c
ctdb/tests/cunit/config_test_001.sh
ctdb/tests/cunit/config_test_004.sh [new file with mode: 0755]
ctdb/wscript

index d37f973637697a56de96127b606d766b09933cc3..44994194d72df1d34083d9bfd8d85e989d4b1594 100644 (file)
@@ -29,6 +29,7 @@
 #include "common/path.h"
 
 #include "common/logging_conf.h"
+#include "cluster/cluster_conf.h"
 #include "event/event_conf.h"
 
 #include "common/conf_tool.h"
@@ -237,6 +238,7 @@ int conf_tool_run(struct conf_tool_context *ctx, int *result)
 
        /* Call functions to initialize config sections/variables */
        logging_conf_init(ctx->conf, NULL);
+       cluster_conf_init(ctx->conf);
        event_conf_init(ctx->conf);
 
        if (! conf_valid(ctx->conf)) {
index 8387f7df5cc92bfd62d664a3000a6d8c6d253bba..f24b2326b0f57ec0b75408f9af0f9a39ccb0c2ab 100755 (executable)
@@ -22,6 +22,10 @@ ok <<EOF
 [logging]
        # location = ${logging_location}
        # log level = ERROR
+[cluster]
+       # transport = tcp
+       # node address = 
+       # recovery lock = 
 [event]
        # debug script = 
 EOF
diff --git a/ctdb/tests/cunit/config_test_004.sh b/ctdb/tests/cunit/config_test_004.sh
new file mode 100755 (executable)
index 0000000..4578bdb
--- /dev/null
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+PATH="$PATH:$CTDB_SCRIPTS_TOOLS_HELPER_DIR"
+
+setup_ctdb_base "${TEST_VAR_DIR}" "cunit"
+
+conffile="$CTDB_BASE/ctdb.conf"
+
+remove_files ()
+{
+       rm -f "$conffile"
+}
+
+test_cleanup remove_files
+
+cat > "$conffile" <<EOF
+EOF
+
+ok <<EOF
+tcp
+EOF
+unit_test ctdb-config get "cluster" "transport"
+
+ok <<EOF
+EOF
+unit_test ctdb-config get "cluster" "node address"
+
+ok <<EOF
+EOF
+unit_test ctdb-config get "cluster" "recovery lock"
+
+cat > "$conffile" <<EOF
+[cluster]
+    transport = invalid
+EOF
+
+required_result 22 <<EOF
+Invalid value for [cluster] -> transport = invalid
+conf: validation for option "transport" failed
+Failed to load config file $conffile
+EOF
+unit_test ctdb-config validate
+
+cat > "$conffile" <<EOF
+[cluster]
+    node address = 10.1.2.3
+EOF
+
+ok <<EOF
+EOF
+unit_test ctdb-config validate
+
+cat > "$conffile" <<EOF
+[cluster]
+    node address = fc00:10:1:2::123
+EOF
+
+ok <<EOF
+EOF
+unit_test ctdb-config validate
+
+cat > "$conffile" <<EOF
+[cluster]
+    node address = 10.1.2.3:123
+EOF
+
+required_result 22 <<EOF
+Invalid value for [cluster] -> node address = 10.1.2.3:123
+conf: validation for option "node address" failed
+Failed to load config file $conffile
+EOF
+unit_test ctdb-config validate
index 184fc549ba1a2426af8d6392ceed362accd77fd2..82d238cd94bf7d9331b2fde86eac83e2cf0a4da2 100644 (file)
@@ -477,6 +477,7 @@ def build(bld):
                      cflags='-DCTDB_CONF_TOOL',
                      deps='''ctdb-logging-conf
                              ctdb-event-conf
+                             ctdb-cluster-conf
                              ctdb-util samba-util talloc replace popt''',
                      install_path='${CTDB_HELPER_BINDIR}')