ctdb-tests: Support replicated db in tool tests
authorAmitay Isaacs <amitay@gmail.com>
Tue, 4 Apr 2017 07:02:38 +0000 (17:02 +1000)
committerMartin Schwenke <martins@samba.org>
Thu, 29 Jun 2017 08:34:28 +0000 (10:34 +0200)
This updates and adds unit tests for database operations.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
16 files changed:
ctdb/tests/src/fake_ctdbd.c
ctdb/tests/tool/ctdb.getdbmap.001.sh
ctdb/tests/tool/ctdb.getdbseqnum.001.sh
ctdb/tests/tool/ctdb.getdbseqnum.002.sh
ctdb/tests/tool/ctdb.getdbstatus.001.sh
ctdb/tests/tool/ctdb.getdbstatus.002.sh
ctdb/tests/tool/ctdb.setdbreadonly.001.sh
ctdb/tests/tool/ctdb.setdbreadonly.002.sh
ctdb/tests/tool/ctdb.setdbreadonly.003.sh
ctdb/tests/tool/ctdb.setdbreadonly.004.sh
ctdb/tests/tool/ctdb.setdbreadonly.005.sh [new file with mode: 0755]
ctdb/tests/tool/ctdb.setdbsticky.001.sh
ctdb/tests/tool/ctdb.setdbsticky.002.sh
ctdb/tests/tool/ctdb.setdbsticky.003.sh
ctdb/tests/tool/ctdb.setdbsticky.004.sh
ctdb/tests/tool/ctdb.setdbsticky.005.sh [new file with mode: 0755]

index 7aa3ca229a35d28ff18a3bf6903f3b841dbf6331..2bb9b1e37e38c27d0f9f5df2717ad69d04e1a1cf 100644 (file)
@@ -663,8 +663,13 @@ static bool dbmap_parse(struct database_map *db_map)
                                flags |= CTDB_DB_FLAGS_STICKY;
                        } else if (strcmp(tok, "READONLY") == 0) {
                                flags |= CTDB_DB_FLAGS_READONLY;
+                       } else if (strcmp(tok, "REPLICATED") == 0) {
+                               flags |= CTDB_DB_FLAGS_REPLICATED;
                        } else if (tok[0] >= '0'&& tok[0] <= '9') {
-                               if ((flags & CTDB_DB_FLAGS_PERSISTENT) == 0) {
+                               uint8_t nv = CTDB_DB_FLAGS_PERSISTENT |
+                                            CTDB_DB_FLAGS_REPLICATED;
+
+                               if ((flags & nv) == 0) {
                                        fprintf(stderr,
                                                "seq_num for volatile db\n");
                                        goto fail;
index 78ce21493a3cbb053935bf2493bbbbcf4bc595d5..912371552c9eca3ab27f64a345e7ed2987db1dba 100755 (executable)
@@ -16,15 +16,19 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0 READONLY
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0 STICKY
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test
index 24a26bff7cf4f140e228807836f467380e8258f6..95ef244a69b52c2112b98a9e3f16791282bd24cb 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 0x42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 0x23
 EOF
 
 # locking.tdb
@@ -29,3 +31,11 @@ simple_test 0x7132c184
 # registry.tdb
 ok "0x42"
 simple_test 0x6cf2837d
+
+# ctdb-ip.tdb
+ok "0x0"
+simple_test 0xbc57b384
+
+# ctdb-conn.tdb
+ok "0x23"
+simple_test 0xbec75f0b
index b5208a6039467f4eb3aa7c6cde83debc125fb243..e0274f339be0d17321d409ff21dfacf3138475ea 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 0x42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 0x23
 EOF
 
 ok "0x0"
@@ -26,3 +28,9 @@ simple_test secrets.tdb
 
 ok "0x42"
 simple_test registry.tdb
+
+ok "0x0"
+simple_test ctdb-ip.tdb
+
+ok "0x23"
+simple_test ctdb-conn.tdb
index 83ce066b99da9f6c3e14b0e8185e675eb66dc4c1..92269d858752c231293cad84408ef4d151383f0b 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok <<EOF
@@ -78,5 +80,29 @@ HEALTH: OK
 EOF
 simple_test 0x6cf2837d
 
+ok <<EOF
+dbid: 0xbc57b384
+name: ctdb-ip.tdb
+path: /var/run/ctdb/DB_DIR/ctdb-ip.tdb.0
+PERSISTENT: no
+REPLICATED: yes
+STICKY: no
+READONLY: no
+HEALTH: OK
+EOF
+simple_test 0xbc57b384
+
+ok <<EOF
+dbid: 0xbec75f0b
+name: ctdb-conn.tdb
+path: /var/run/ctdb/DB_DIR/ctdb-conn.tdb.0
+PERSISTENT: no
+REPLICATED: yes
+STICKY: no
+READONLY: no
+HEALTH: OK
+EOF
+simple_test 0xbec75f0b
+
 required_result 1 "No database matching '0xdeadc0de' found"
 simple_test 0xdeadc0de
index 77a48ee0746f635d0bf12d37a2f113ad06648897..ab8e4dacb7e28ba7054df7c184426bcfb969d789 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok <<EOF
@@ -78,5 +80,29 @@ HEALTH: OK
 EOF
 simple_test registry.tdb -n 1
 
+ok <<EOF
+dbid: 0xbc57b384
+name: ctdb-ip.tdb
+path: /var/run/ctdb/DB_DIR/ctdb-ip.tdb.1
+PERSISTENT: no
+REPLICATED: yes
+STICKY: no
+READONLY: no
+HEALTH: OK
+EOF
+simple_test ctdb-ip.tdb -n 1
+
+ok <<EOF
+dbid: 0xbec75f0b
+name: ctdb-conn.tdb
+path: /var/run/ctdb/DB_DIR/ctdb-conn.tdb.1
+PERSISTENT: no
+REPLICATED: yes
+STICKY: no
+READONLY: no
+HEALTH: OK
+EOF
+simple_test ctdb-conn.tdb -n 1
+
 required_result 1 "No database matching 'ctdb.tdb' found"
 simple_test ctdb.tdb -n 1
index 03cda4e65caaf5623582eb53785e41494d1f6efd..b8cd6ff46df257e214db9cda8418155f790f604d 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test 0x7a19d84d
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0 READONLY
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
@@ -36,12 +40,14 @@ ok_null
 simple_test 0x7a19d84d
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0 READONLY
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index e1a792bbb87b89c64028cc0ac208046e15647304..1cb0cc7e1889e588becf8c9bd7fba5175f2dfa4e 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test locking.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0 READONLY
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index 6dab7774c16a3c43253e67367390449da99702f8..b6f22fe7e736d3742aa4f20f2b1d3bec0fe06f33 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 required_result 1 <<EOF
@@ -24,12 +26,14 @@ EOF
 simple_test secrets.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index 1c58ee343ad271e89d71490df129af3ba0b5d60b..f9750402b82ed53982713e720407d6103cb1d877 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test locking.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0 STICKY READONLY
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
diff --git a/ctdb/tests/tool/ctdb.setdbreadonly.005.sh b/ctdb/tests/tool/ctdb.setdbreadonly.005.sh
new file mode 100755 (executable)
index 0000000..133f716
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "set replicated read-only by name"
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+
+DBMAP
+0x7a19d84d locking.tdb
+0x4e66c2b2 brlock.tdb
+0x4d2a432b g_lock.tdb
+0x7132c184 secrets.tdb PERSISTENT
+0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
+EOF
+
+required_result 1 <<EOF
+READONLY can be set only on volatile DB
+EOF
+simple_test ctdb-ip.tdb
+
+ok <<EOF
+Number of databases:7
+dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
+dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
+dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
+dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
+dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
+EOF
+
+simple_test_other getdbmap
index 99593031329abfd4db161191d58d5879a69dc828..1b835ad71eb05e15a4288613a3c37e12df0bd85d 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test 0x4e66c2b2
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0 STICKY
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
@@ -36,12 +40,14 @@ ok_null
 simple_test 0x4e66c2b2
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0 STICKY
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index ca48c00cc6f740d58b54eebfe4f73050608459d7..7e25862a273befb293415ee830126e77c86531d2 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test brlock.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0 STICKY
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index ed40128d7ac4ff6c66f479c3c5f502c8b33afcaf..26f5542b678def1fd621e5b7987d987f676fd48c 100755 (executable)
@@ -16,6 +16,8 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 required_result 1 <<EOF
@@ -24,12 +26,14 @@ EOF
 simple_test secrets.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
index 18d3eb1cfd2b7bdad44e88b5395349a79027c593..20ea3e2fc4035f9978fd173a246a0a723b2f757e 100755 (executable)
@@ -16,18 +16,22 @@ DBMAP
 0x4d2a432b g_lock.tdb
 0x7132c184 secrets.tdb PERSISTENT
 0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
 EOF
 
 ok_null
 simple_test brlock.tdb
 
 ok <<EOF
-Number of databases:5
+Number of databases:7
 dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
 dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0 STICKY READONLY
 dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
 dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
 dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
 EOF
 
 simple_test_other getdbmap
diff --git a/ctdb/tests/tool/ctdb.setdbsticky.005.sh b/ctdb/tests/tool/ctdb.setdbsticky.005.sh
new file mode 100755 (executable)
index 0000000..41da110
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "set replicated sticky by name"
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+
+DBMAP
+0x7a19d84d locking.tdb
+0x4e66c2b2 brlock.tdb
+0x4d2a432b g_lock.tdb
+0x7132c184 secrets.tdb PERSISTENT
+0x6cf2837d registry.tdb PERSISTENT 42
+0xbc57b384 ctdb-ip.tdb REPLICATED
+0xbec75f0b ctdb-conn.tdb REPLICATED 23
+EOF
+
+required_result 1 <<EOF
+STICKY can be set only on volatile DB
+EOF
+simple_test ctdb-ip.tdb
+
+ok <<EOF
+Number of databases:7
+dbid:0x7a19d84d name:locking.tdb path:/var/run/ctdb/DB_DIR/locking.tdb.0
+dbid:0x4e66c2b2 name:brlock.tdb path:/var/run/ctdb/DB_DIR/brlock.tdb.0
+dbid:0x4d2a432b name:g_lock.tdb path:/var/run/ctdb/DB_DIR/g_lock.tdb.0
+dbid:0x7132c184 name:secrets.tdb path:/var/lib/ctdb/persistent/secrets.tdb.0 PERSISTENT
+dbid:0x6cf2837d name:registry.tdb path:/var/lib/ctdb/persistent/registry.tdb.0 PERSISTENT
+dbid:0xbc57b384 name:ctdb-ip.tdb path:/var/run/ctdb/DB_DIR/ctdb-ip.tdb.0 REPLICATED
+dbid:0xbec75f0b name:ctdb-conn.tdb path:/var/run/ctdb/DB_DIR/ctdb-conn.tdb.0 REPLICATED
+EOF
+
+simple_test_other getdbmap