The branch, master has been updated via abe7ebe6c531f912efe4ebc1daade4d2af67574c (commit) via 7ff485687891732074c9fc9998502ca197663d02 (commit) via 8544162b7a4efa23c92bc0d2774df95bb7f0f463 (commit) via 5d6e71cf6e1e0665ec96e7e4e2cfd31f40ebabae (commit) via fd08fc6c88cb80190ce87325867de0391cf1af51 (commit) via eb13507713ba6732271b7c3024bfddbda6da5ffc (commit) via dbec696930327ff07b39282e3084eef4ded064c0 (commit) via f94897ef9504c144937409688fa7a646e0b0ceae (commit) via 4c87888b2a559c0d1f285919a42de450a537a02f (commit) via 89571585d87b391ff79647cd1f0f6ac193079e72 (commit) via ca9e75eaea9c9b02bb44ca338e28fdae0c8d582c (commit) via a65ba7211ec7f102b32060b173606a61fb5c20a9 (commit) via 21df43c74bfcff420fdaf9df5440c25529c543d2 (commit) via 89719384a74161ffa0c03602ecdd9e758d521d75 (commit) via 43badc5418b9f533398cd579607d9f1fc0f8f417 (commit) via 00713eb46cce638339845799bba2da041b3d02fb (commit) via afdaa5f032938d56ff315d9553cb285ebc413c4c (commit) via a7ad94fe9f2e773567dbb6500469dd2dd2f2f04b (commit) via 107b465172205cb304549fcffaf36b9416696c15 (commit) via fa54a1095a7504863ed30bff8e0828a8be6dde55 (commit) via 89e322562f25dcb8d84357a19e71b2272b2f29a8 (commit) via 2aa9bbf3a52dde0707eb06acd91e57c8da5c717f (commit) via 67b909a0718d6cfce82ffce0830da3a6ff1f6c4b (commit) via 7f8096f56d8274151705ac822b582d972078f8fe (commit) via d5b2ad651495f32091bd33d30871638de0de633a (commit) via b86b947797c51e3576c6b34f547434c3f0aa36f3 (commit) via b81c2c8a2360001fe73f9fd9aa1ba32665fdb0bb (commit) via a108fc14d90b6d552736d19b0ea104f2508dc331 (commit) via 15f63ebab9686734f41a6adf38d4a7faa919ac66 (commit) via 706e6e3ef6765fbba29e531e590c48fe742b9914 (commit) via 98c633ab4824e0e4d28ab2eb2532e16eb859bd94 (commit) via 420a10be89c62b4d605f3b972d78fd69dd9f5bb1 (commit) via bdd8b8ab20169936fa723fa77cead1b76b6cd0b5 (commit) via 902d8a4709e7a269d2a75522a998f9a60ae13d78 (commit) via 261258c1a4268230b2559bc5d8664b1197b22450 (commit) from 79172330d10ae0d5a7e5bf724959c9e5784716b4 (commit)
http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit abe7ebe6c531f912efe4ebc1daade4d2af67574c Merge: 67b909a0718d6cfce82ffce0830da3a6ff1f6c4b 7ff485687891732074c9fc9998502ca197663d02 Author: Ronnie Sahlberg <ronniesahlb...@gmail.com> Date: Wed Apr 18 13:48:43 2012 +1000 Merge remote branch 'martins/master' commit 7ff485687891732074c9fc9998502ca197663d02 Author: Martin Schwenke <mar...@meltin.net> Date: Wed Apr 18 10:37:45 2012 +1000 tests: More unit test factoring/rationalisation and bug fixes Move some options from eventscripts/run_tests.sh to scripts/run_tests. Remove the former. Move some functions from eventscripts/scripts/local.sh to scripts/unit.sh. Both of these are modified during move so they are no longer eventscript-specific. Tweak */local.sh so that the new functions in unit.sh are used. Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 8544162b7a4efa23c92bc0d2774df95bb7f0f463 Author: Martin Schwenke <mar...@meltin.net> Date: Wed Apr 18 10:35:25 2012 +1000 tests/eventscripts: Share directories must be absolute in eventscript tests This fixes eventscripts/scripts/local.sh:setup_generic() so that directories listed in $FAKE_SHARES are absolute instead of potentially relative (and, therefore, ignored by the NFS share check). Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 5d6e71cf6e1e0665ec96e7e4e2cfd31f40ebabae Author: Martin Schwenke <mar...@meltin.net> Date: Tue Apr 17 12:57:46 2012 +1000 tests/eventscripts: Tweak an error message in a policy routing test It currently has my home directory pasted into it. That can't be right... ;-) Signed-off-by: Martin Schwenke <mar...@meltin.net> commit fd08fc6c88cb80190ce87325867de0391cf1af51 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 16:27:20 2012 +1000 tests - run_tests needs to expand directories like "." and "..". Signed-off-by: Martin Schwenke <mar...@meltin.net> commit eb13507713ba6732271b7c3024bfddbda6da5ffc Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 16:24:12 2012 +1000 tests/eventscripts - Restructure according to new convention Signed-off-by: Martin Schwenke <mar...@meltin.net> commit dbec696930327ff07b39282e3084eef4ded064c0 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 15:58:44 2012 +1000 tests - run_tests ignores trailing '/' on directories Signed-off-by: Martin Schwenke <mar...@meltin.net> commit f94897ef9504c144937409688fa7a646e0b0ceae Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 15:53:24 2012 +1000 tests/takeover - Restructure according to new convention Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 4c87888b2a559c0d1f285919a42de450a537a02f Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 15:29:44 2012 +1000 tests/onnode - Restructure according to new convention Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 89571585d87b391ff79647cd1f0f6ac193079e72 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:25:50 2012 +1000 tests/tool - Restructure according to new convention Signed-off-by: Martin Schwenke <mar...@meltin.net> commit ca9e75eaea9c9b02bb44ca338e28fdae0c8d582c Author: Amitay Isaacs <ami...@gmail.com> Date: Fri Apr 13 12:06:53 2012 +1000 tests/tool: New nodestatus test Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit a65ba7211ec7f102b32060b173606a61fb5c20a9 Author: Amitay Isaacs <ami...@gmail.com> Date: Fri Apr 13 12:05:59 2012 +1000 tests/tool: Fix the nodestatus test Although not obvious, when asking each node for nodestatus, it will report each node is the current node. Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 21df43c74bfcff420fdaf9df5440c25529c543d2 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:54:51 2012 +1000 tests - run_tests includes common.sh, uses die() Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 89719384a74161ffa0c03602ecdd9e758d521d75 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:52:17 2012 +1000 tests - run_tests can take a directory as an argument This makes it run all tests in the specified directory. Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 43badc5418b9f533398cd579607d9f1fc0f8f417 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:51:22 2012 +1000 tests - add -v option to set TEST_VERBOSE=true Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 00713eb46cce638339845799bba2da041b3d02fb Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:48:49 2012 +1000 tests - move functions only used by scripts/run_tests into that script Along with minor logic tweaks and removal of test_exit(). Signed-off-by: Martin Schwenke <mar...@meltin.net> commit afdaa5f032938d56ff315d9553cb285ebc413c4c Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:33:37 2012 +1000 tests - add scripts/unit.sh This will be sourced by all unit tests. Signed-off-by: Martin Schwenke <mar...@meltin.net> commit a7ad94fe9f2e773567dbb6500469dd2dd2f2f04b Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:32:55 2012 +1000 tests - add scripts/common.sh Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 107b465172205cb304549fcffaf36b9416696c15 Author: Martin Schwenke <mar...@meltin.net> Date: Mon Apr 16 14:27:22 2012 +1000 tests - export new variable TEST_SCRIPTS_DIR This replaces previous script-local variable ctdb_test_scripts_dir. Signed-off-by: Martin Schwenke <mar...@meltin.net> commit fa54a1095a7504863ed30bff8e0828a8be6dde55 Author: Martin Schwenke <mar...@meltin.net> Date: Thu Apr 12 15:18:17 2012 +1000 Tests - IP allocation - 2 tests for NODE_FLAGS_NOIPTAKEOVER Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 89e322562f25dcb8d84357a19e71b2272b2f29a8 Author: Martin Schwenke <mar...@meltin.net> Date: Thu Apr 12 14:17:46 2012 +1000 Tests - IP allocation - add another LCP2 test based on a test failure Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 2aa9bbf3a52dde0707eb06acd91e57c8da5c717f Author: Martin Schwenke <mar...@meltin.net> Date: Thu Mar 29 14:54:22 2012 +1100 Tests - turn of time logging by default We haven't seen problems related to time jumps for a long time. Turn this off by default. To switch it back on set $CTDB_TEST_TIME_LOGGING to any non-null value. Signed-off-by: Martin Schwenke <mar...@meltin.net> commit 67b909a0718d6cfce82ffce0830da3a6ff1f6c4b Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Apr 4 14:42:56 2012 +1000 ctdbd: Fix spurious warnings when running with --nopublicipcheck Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 7f8096f56d8274151705ac822b582d972078f8fe Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Apr 4 14:42:23 2012 +1000 recoverd: Fix spurious warnings when running with --nopublicipcheck Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit d5b2ad651495f32091bd33d30871638de0de633a Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Mar 28 14:08:08 2012 +1100 tests: Use CTDB_TEST_REAL_CLUSTER to decide if tests use local daemons Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit b86b947797c51e3576c6b34f547434c3f0aa36f3 Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Mar 28 13:56:03 2012 +1100 tests: Set the debug level = 3 when running local tests Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit b81c2c8a2360001fe73f9fd9aa1ba32665fdb0bb Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Mar 28 13:52:38 2012 +1100 tests: Check assigned IPs from ctdb output This fixes the test ctdb_config_add_ip when running against local daemons. Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit a108fc14d90b6d552736d19b0ea104f2508dc331 Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Mar 28 13:51:25 2012 +1100 tests: Check for assigned IP addresses only if we are on real cluster This fixes the ctdb_ip test when running against local daemons. Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 15f63ebab9686734f41a6adf38d4a7faa919ac66 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Mar 27 17:20:34 2012 +1100 ctdbd: Fix the error message string Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 706e6e3ef6765fbba29e531e590c48fe742b9914 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Mar 27 17:07:52 2012 +1100 tests: Fix the error messages in test event script Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 98c633ab4824e0e4d28ab2eb2532e16eb859bd94 Author: Amitay Isaacs <ami...@gmail.com> Date: Tue Mar 27 11:37:42 2012 +1100 tests: Add regular expression parsing for hop_count_buckets This fixes the test to check ctdb statistics output. Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 420a10be89c62b4d605f3b972d78fd69dd9f5bb1 Author: Amitay Isaacs <ami...@gmail.com> Date: Wed Mar 21 11:51:56 2012 +1100 tests: Add a script to run cluster tests and make target "test_cluster" Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit bdd8b8ab20169936fa723fa77cead1b76b6cd0b5 Author: Amitay Isaacs <ami...@gmail.com> Date: Mon Feb 13 14:03:12 2012 +1100 tests: exportfs always outputs with options in brackets Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 902d8a4709e7a269d2a75522a998f9a60ae13d78 Author: Amitay Isaacs <ami...@gmail.com> Date: Fri Apr 13 12:06:53 2012 +1000 tests/tool: New nodestatus test Signed-off-by: Amitay Isaacs <ami...@gmail.com> commit 261258c1a4268230b2559bc5d8664b1197b22450 Author: Amitay Isaacs <ami...@gmail.com> Date: Fri Apr 13 12:05:59 2012 +1000 tests/tool: Fix the nodestatus test Although not obvious, when asking each node for nodestatus, it will report each node is the current node. Signed-off-by: Amitay Isaacs <ami...@gmail.com> ----------------------------------------------------------------------- Summary of changes: Makefile.in | 3 + server/ctdb_recoverd.c | 4 +- server/ctdb_takeover.c | 51 +- tests/complex/01_ctdb_nfs_skip_share_check.sh | 2 +- tests/events.d/00.test | 7 +- tests/eventscripts/10.interface.init.001.sh | 13 + tests/eventscripts/10.interface.init.002.sh | 11 + tests/eventscripts/10.interface.monitor.001.sh | 13 + tests/eventscripts/10.interface.monitor.002.sh | 11 + tests/eventscripts/10.interface.monitor.003.sh | 15 + tests/eventscripts/10.interface.monitor.004.sh | 15 + tests/eventscripts/10.interface.monitor.005.sh | 15 + tests/eventscripts/10.interface.monitor.006.sh | 15 + tests/eventscripts/10.interface.monitor.007.sh | 13 + tests/eventscripts/10.interface.monitor.008.sh | 15 + tests/eventscripts/10.interface.monitor.009.sh | 17 + tests/eventscripts/10.interface.monitor.010.sh | 19 + tests/eventscripts/10.interface.monitor.011.sh | 19 + tests/eventscripts/10.interface.monitor.012.sh | 23 + tests/eventscripts/10.interface.monitor.013.sh | 15 + tests/eventscripts/10.interface.monitor.014.sh | 16 + tests/eventscripts/10.interface.monitor.015.sh | 22 + tests/eventscripts/10.interface.multi.001.sh | 14 + tests/eventscripts/10.interface.releaseip.001.sh | 13 + tests/eventscripts/10.interface.releaseip.002.sh | 17 + tests/eventscripts/10.interface.startup.001.sh | 13 + tests/eventscripts/10.interface.startup.002.sh | 11 + tests/eventscripts/10.interface.takeip.001.sh | 13 + tests/eventscripts/10.interface.takeip.002.sh | 13 + tests/eventscripts/10.interface.takeip.003.sh | 25 + tests/eventscripts/13.per_ip_routing.001.sh | 16 + tests/eventscripts/13.per_ip_routing.002.sh | 14 + tests/eventscripts/13.per_ip_routing.003.sh | 24 + tests/eventscripts/13.per_ip_routing.004.sh | 25 + tests/eventscripts/13.per_ip_routing.005.sh | 38 + tests/eventscripts/13.per_ip_routing.006.sh | 38 + tests/eventscripts/13.per_ip_routing.007.sh | 40 + tests/eventscripts/13.per_ip_routing.008.sh | 42 + tests/eventscripts/13.per_ip_routing.009.sh | 44 + tests/eventscripts/13.per_ip_routing.010.sh | 52 ++ tests/eventscripts/13.per_ip_routing.011.sh | 41 + tests/eventscripts/13.per_ip_routing.012.sh | 48 + tests/eventscripts/40.vsftpd.monitor.001.sh | 11 + tests/eventscripts/41.httpd.monitor.001.sh | 11 + tests/eventscripts/50.samba.monitor.001.sh | 11 + tests/eventscripts/50.samba.monitor.050.sh | 17 + tests/eventscripts/50.samba.monitor.051.sh | 19 + tests/eventscripts/50.samba.monitor.101.sh | 11 + tests/eventscripts/50.samba.monitor.102.sh | 12 + tests/eventscripts/50.samba.monitor.103.sh | 12 + tests/eventscripts/50.samba.monitor.104.sh | 12 + tests/eventscripts/50.samba.monitor.105.sh | 12 + tests/eventscripts/50.samba.monitor.106.sh | 14 + tests/eventscripts/50.samba.monitor.107.sh | 18 + tests/eventscripts/50.samba.monitor.108.sh | 15 + tests/eventscripts/50.samba.monitor.109.sh | 30 + tests/eventscripts/50.samba.monitor.110.sh | 33 + tests/eventscripts/50.samba.monitor.111.sh | 20 + tests/eventscripts/60.nfs.monitor.001.sh | 11 + tests/eventscripts/60.nfs.monitor.100.sh | 19 + tests/eventscripts/60.nfs.monitor.101.sh | 11 + tests/eventscripts/60.nfs.monitor.111.sh | 12 + tests/eventscripts/60.nfs.monitor.112.sh | 15 + tests/eventscripts/60.nfs.monitor.121.sh | 17 + tests/eventscripts/60.nfs.monitor.122.sh | 19 + tests/eventscripts/60.nfs.monitor.131.sh | 10 + tests/eventscripts/60.nfs.monitor.132.sh | 15 + tests/eventscripts/60.nfs.monitor.141.sh | 15 + tests/eventscripts/60.nfs.monitor.142.sh | 14 + tests/eventscripts/60.nfs.monitor.151.sh | 12 + tests/eventscripts/60.nfs.monitor.152.sh | 18 + tests/eventscripts/60.nfs.monitor.153.sh | 15 + tests/eventscripts/60.nfs.monitor.161.sh | 13 + tests/eventscripts/60.nfs.monitor.162.sh | 14 + tests/eventscripts/60.nfs.multi.001.sh | 21 + tests/eventscripts/60.nfs.multi.002.sh | 25 + tests/eventscripts/60.nfs.multi.003.sh | 27 + tests/eventscripts/60.nfs.multi.004.sh | 27 + tests/eventscripts/60.nfs.multi.005.sh | 27 + tests/eventscripts/60.nfs.multi.006.sh | 21 + tests/eventscripts/common.sh | 938 -------------------- tests/eventscripts/etc-ctdb/interface_modify.sh | 1 - tests/eventscripts/multievent/10.interface.001.sh | 14 - .../multievent/13.per_ip_routing.001.sh | 16 - .../multievent/13.per_ip_routing.002.sh | 14 - .../multievent/13.per_ip_routing.003.sh | 24 - .../multievent/13.per_ip_routing.004.sh | 25 - .../multievent/13.per_ip_routing.005.sh | 38 - .../multievent/13.per_ip_routing.006.sh | 38 - .../multievent/13.per_ip_routing.007.sh | 40 - .../multievent/13.per_ip_routing.008.sh | 42 - .../multievent/13.per_ip_routing.009.sh | 44 - .../multievent/13.per_ip_routing.010.sh | 52 -- .../multievent/13.per_ip_routing.011.sh | 41 - .../multievent/13.per_ip_routing.012.sh | 48 - tests/eventscripts/multievent/60.nfs.001.sh | 21 - tests/eventscripts/multievent/60.nfs.002.sh | 25 - tests/eventscripts/multievent/60.nfs.003.sh | 27 - tests/eventscripts/multievent/60.nfs.004.sh | 27 - tests/eventscripts/multievent/60.nfs.005.sh | 27 - tests/eventscripts/multievent/60.nfs.006.sh | 21 - tests/eventscripts/run_tests.sh | 53 -- tests/eventscripts/scripts/local.sh | 801 +++++++++++++++++ tests/eventscripts/simple/10.interface.init.001.sh | 13 - tests/eventscripts/simple/10.interface.init.002.sh | 11 - .../simple/10.interface.monitor.001.sh | 13 - .../simple/10.interface.monitor.002.sh | 11 - .../simple/10.interface.monitor.003.sh | 15 - .../simple/10.interface.monitor.004.sh | 15 - .../simple/10.interface.monitor.005.sh | 15 - .../simple/10.interface.monitor.006.sh | 15 - .../simple/10.interface.monitor.007.sh | 13 - .../simple/10.interface.monitor.008.sh | 15 - .../simple/10.interface.monitor.009.sh | 17 - .../simple/10.interface.monitor.010.sh | 19 - .../simple/10.interface.monitor.011.sh | 19 - .../simple/10.interface.monitor.012.sh | 23 - .../simple/10.interface.monitor.013.sh | 15 - .../simple/10.interface.monitor.014.sh | 16 - .../simple/10.interface.monitor.015.sh | 22 - .../simple/10.interface.releaseip.001.sh | 13 - .../simple/10.interface.releaseip.002.sh | 17 - .../simple/10.interface.startup.001.sh | 13 - .../simple/10.interface.startup.002.sh | 11 - .../eventscripts/simple/10.interface.takeip.001.sh | 13 - .../eventscripts/simple/10.interface.takeip.002.sh | 13 - .../eventscripts/simple/10.interface.takeip.003.sh | 25 - tests/eventscripts/simple/40.vsftpd.monitor.001.sh | 11 - tests/eventscripts/simple/41.httpd.monitor.001.sh | 11 - tests/eventscripts/simple/50.samba.monitor.001.sh | 11 - tests/eventscripts/simple/50.samba.monitor.050.sh | 17 - tests/eventscripts/simple/50.samba.monitor.051.sh | 19 - tests/eventscripts/simple/50.samba.monitor.101.sh | 11 - tests/eventscripts/simple/50.samba.monitor.102.sh | 12 - tests/eventscripts/simple/50.samba.monitor.103.sh | 12 - tests/eventscripts/simple/50.samba.monitor.104.sh | 12 - tests/eventscripts/simple/50.samba.monitor.105.sh | 12 - tests/eventscripts/simple/50.samba.monitor.106.sh | 14 - tests/eventscripts/simple/50.samba.monitor.107.sh | 18 - tests/eventscripts/simple/50.samba.monitor.108.sh | 15 - tests/eventscripts/simple/50.samba.monitor.109.sh | 30 - tests/eventscripts/simple/50.samba.monitor.110.sh | 33 - tests/eventscripts/simple/50.samba.monitor.111.sh | 20 - tests/eventscripts/simple/60.nfs.monitor.001.sh | 11 - tests/eventscripts/simple/60.nfs.monitor.100.sh | 19 - tests/eventscripts/simple/60.nfs.monitor.101.sh | 11 - tests/eventscripts/simple/60.nfs.monitor.111.sh | 12 - tests/eventscripts/simple/60.nfs.monitor.112.sh | 15 - tests/eventscripts/simple/60.nfs.monitor.121.sh | 17 - tests/eventscripts/simple/60.nfs.monitor.122.sh | 19 - tests/eventscripts/simple/60.nfs.monitor.131.sh | 10 - tests/eventscripts/simple/60.nfs.monitor.132.sh | 15 - tests/eventscripts/simple/60.nfs.monitor.141.sh | 15 - tests/eventscripts/simple/60.nfs.monitor.142.sh | 14 - tests/eventscripts/simple/60.nfs.monitor.151.sh | 12 - tests/eventscripts/simple/60.nfs.monitor.152.sh | 18 - tests/eventscripts/simple/60.nfs.monitor.153.sh | 15 - tests/eventscripts/simple/60.nfs.monitor.161.sh | 13 - tests/eventscripts/simple/60.nfs.monitor.162.sh | 14 - tests/eventscripts/stubs/ctdb | 2 +- tests/onnode/0001.sh | 2 +- tests/onnode/0002.sh | 2 +- tests/onnode/0003.sh | 2 +- tests/onnode/0004.sh | 2 +- tests/onnode/0005.sh | 2 +- tests/onnode/0006.sh | 2 +- tests/onnode/0070.sh | 2 +- tests/onnode/0071.sh | 2 +- tests/onnode/0072.sh | 2 +- tests/onnode/0075.sh | 2 +- tests/onnode/0080.sh | 2 +- tests/onnode/0081.sh | 2 +- tests/onnode/0090.sh | 2 +- tests/onnode/0091.sh | 2 +- tests/onnode/common.sh | 103 --- tests/onnode/run_tests.sh | 31 - tests/onnode/scripts/local.sh | 81 ++ tests/run_cluster_tests.sh | 13 + tests/scripts/common.sh | 9 + tests/scripts/ctdb_test_env | 8 +- tests/scripts/ctdb_test_functions.bash | 68 +-- tests/scripts/run_tests | 117 +++- tests/scripts/unit.sh | 141 +++ tests/simple/00_ctdb_onnode.sh | 2 +- tests/simple/11_ctdb_ip.sh | 20 +- tests/simple/14_ctdb_statistics.sh | 2 +- tests/simple/16_ctdb_config_add_ip.sh | 10 +- tests/takeover/common.sh | 70 -- tests/takeover/ctdb_takeover.py | 888 ------------------ tests/takeover/lcp2.001.sh | 31 + tests/takeover/lcp2.002.sh | 31 + tests/takeover/lcp2.003.sh | 31 + tests/takeover/lcp2.004.sh | 37 + tests/takeover/lcp2.005.sh | 181 ++++ tests/takeover/lcp2.006.sh | 31 + tests/takeover/lcp2.007.sh | 31 + tests/takeover/lcp2.008.sh | 31 + tests/takeover/lcp2.009.sh | 31 + tests/takeover/lcp2.010.sh | 32 + tests/takeover/lcp2.011.sh | 45 + tests/takeover/lcp2.012.sh | 31 + tests/takeover/lcp2.013.sh | 31 + tests/takeover/nondet.001.sh | 29 + tests/takeover/nondet.002.sh | 29 + tests/takeover/nondet.003.sh | 29 + tests/takeover/run_tests.sh | 31 - tests/takeover/scripts/local.sh | 36 + tests/takeover/{ => simulation}/README | 0 tests/takeover/simulation/ctdb_takeover.py | 888 ++++++++++++++++++ tests/takeover/simulation/hey_jude.py | 24 + tests/takeover/{ => simulation}/ip_groups1.py | 0 tests/takeover/{ => simulation}/ip_groups2.py | 0 tests/takeover/{ => simulation}/ip_groups3.py | 0 tests/takeover/{ => simulation}/ip_groups4.py | 0 tests/takeover/{ => simulation}/ip_groups5.py | 0 tests/takeover/{ => simulation}/mgmt_simple.py | 0 tests/takeover/{ => simulation}/node_group.py | 0 .../takeover/{ => simulation}/node_group_extra.py | 0 .../takeover/{ => simulation}/node_group_simple.py | 0 tests/takeover/{ => simulation}/nondet_path_01.py | 0 tests/takeover/testcases/lcp2.001.sh | 31 - tests/takeover/testcases/lcp2.002.sh | 31 - tests/takeover/testcases/lcp2.003.sh | 31 - tests/takeover/testcases/lcp2.004.sh | 37 - tests/takeover/testcases/lcp2.005.sh | 181 ---- tests/takeover/testcases/lcp2.006.sh | 31 - tests/takeover/testcases/lcp2.007.sh | 31 - tests/takeover/testcases/lcp2.008.sh | 31 - tests/takeover/testcases/lcp2.009.sh | 31 - tests/takeover/testcases/lcp2.010.sh | 32 - tests/takeover/testcases/nondet.001.sh | 29 - tests/takeover/testcases/nondet.002.sh | 29 - tests/takeover/testcases/nondet.003.sh | 29 - tests/tool/common.sh | 79 -- tests/tool/func.parse_nodestring.001.sh | 16 + tests/tool/func.parse_nodestring.002.sh | 16 + tests/tool/func.parse_nodestring.003.sh | 15 + tests/tool/run_tests.sh | 35 - tests/tool/scripts/local.sh | 38 + tests/tool/stubby.nodestatus.001.sh | 30 + tests/tool/stubby.nodestatus.002.sh | 30 + tests/tool/stubby.nodestatus.003.sh | 30 + tests/tool/stubby.nodestatus.004.sh | 31 + tests/tool/stubby.nodestatus.005.sh | 34 + tests/tool/stubby.status.001.sh | 37 + tests/tool/stubby.status.002.sh | 37 + tests/tool/testcases/func.parse_nodestring.001.sh | 16 - tests/tool/testcases/func.parse_nodestring.002.sh | 16 - tests/tool/testcases/func.parse_nodestring.003.sh | 15 - tests/tool/testcases/stubby.nodestatus.001.sh | 30 - tests/tool/testcases/stubby.nodestatus.002.sh | 30 - tests/tool/testcases/stubby.nodestatus.003.sh | 30 - tests/tool/testcases/stubby.nodestatus.004.sh | 28 - tests/tool/testcases/stubby.nodestatus.005.sh | 34 + tests/tool/testcases/stubby.status.001.sh | 37 - tests/tool/testcases/stubby.status.002.sh | 37 - 256 files changed, 4642 insertions(+), 4594 deletions(-) create mode 100755 tests/eventscripts/10.interface.init.001.sh create mode 100755 tests/eventscripts/10.interface.init.002.sh create mode 100755 tests/eventscripts/10.interface.monitor.001.sh create mode 100755 tests/eventscripts/10.interface.monitor.002.sh create mode 100755 tests/eventscripts/10.interface.monitor.003.sh create mode 100755 tests/eventscripts/10.interface.monitor.004.sh create mode 100755 tests/eventscripts/10.interface.monitor.005.sh create mode 100755 tests/eventscripts/10.interface.monitor.006.sh create mode 100755 tests/eventscripts/10.interface.monitor.007.sh create mode 100755 tests/eventscripts/10.interface.monitor.008.sh create mode 100755 tests/eventscripts/10.interface.monitor.009.sh create mode 100755 tests/eventscripts/10.interface.monitor.010.sh create mode 100755 tests/eventscripts/10.interface.monitor.011.sh create mode 100755 tests/eventscripts/10.interface.monitor.012.sh create mode 100755 tests/eventscripts/10.interface.monitor.013.sh create mode 100755 tests/eventscripts/10.interface.monitor.014.sh create mode 100755 tests/eventscripts/10.interface.monitor.015.sh create mode 100755 tests/eventscripts/10.interface.multi.001.sh create mode 100755 tests/eventscripts/10.interface.releaseip.001.sh create mode 100755 tests/eventscripts/10.interface.releaseip.002.sh create mode 100755 tests/eventscripts/10.interface.startup.001.sh create mode 100755 tests/eventscripts/10.interface.startup.002.sh create mode 100755 tests/eventscripts/10.interface.takeip.001.sh create mode 100755 tests/eventscripts/10.interface.takeip.002.sh create mode 100755 tests/eventscripts/10.interface.takeip.003.sh create mode 100755 tests/eventscripts/13.per_ip_routing.001.sh create mode 100755 tests/eventscripts/13.per_ip_routing.002.sh create mode 100755 tests/eventscripts/13.per_ip_routing.003.sh create mode 100755 tests/eventscripts/13.per_ip_routing.004.sh create mode 100755 tests/eventscripts/13.per_ip_routing.005.sh create mode 100755 tests/eventscripts/13.per_ip_routing.006.sh create mode 100755 tests/eventscripts/13.per_ip_routing.007.sh create mode 100755 tests/eventscripts/13.per_ip_routing.008.sh create mode 100755 tests/eventscripts/13.per_ip_routing.009.sh create mode 100755 tests/eventscripts/13.per_ip_routing.010.sh create mode 100755 tests/eventscripts/13.per_ip_routing.011.sh create mode 100755 tests/eventscripts/13.per_ip_routing.012.sh create mode 100755 tests/eventscripts/40.vsftpd.monitor.001.sh create mode 100755 tests/eventscripts/41.httpd.monitor.001.sh create mode 100755 tests/eventscripts/50.samba.monitor.001.sh create mode 100755 tests/eventscripts/50.samba.monitor.050.sh create mode 100755 tests/eventscripts/50.samba.monitor.051.sh create mode 100755 tests/eventscripts/50.samba.monitor.101.sh create mode 100755 tests/eventscripts/50.samba.monitor.102.sh create mode 100755 tests/eventscripts/50.samba.monitor.103.sh create mode 100755 tests/eventscripts/50.samba.monitor.104.sh create mode 100755 tests/eventscripts/50.samba.monitor.105.sh create mode 100755 tests/eventscripts/50.samba.monitor.106.sh create mode 100755 tests/eventscripts/50.samba.monitor.107.sh create mode 100755 tests/eventscripts/50.samba.monitor.108.sh create mode 100755 tests/eventscripts/50.samba.monitor.109.sh create mode 100755 tests/eventscripts/50.samba.monitor.110.sh create mode 100755 tests/eventscripts/50.samba.monitor.111.sh create mode 100755 tests/eventscripts/60.nfs.monitor.001.sh create mode 100755 tests/eventscripts/60.nfs.monitor.100.sh create mode 100755 tests/eventscripts/60.nfs.monitor.101.sh create mode 100755 tests/eventscripts/60.nfs.monitor.111.sh create mode 100755 tests/eventscripts/60.nfs.monitor.112.sh create mode 100755 tests/eventscripts/60.nfs.monitor.121.sh create mode 100755 tests/eventscripts/60.nfs.monitor.122.sh create mode 100755 tests/eventscripts/60.nfs.monitor.131.sh create mode 100755 tests/eventscripts/60.nfs.monitor.132.sh create mode 100755 tests/eventscripts/60.nfs.monitor.141.sh create mode 100755 tests/eventscripts/60.nfs.monitor.142.sh create mode 100755 tests/eventscripts/60.nfs.monitor.151.sh create mode 100755 tests/eventscripts/60.nfs.monitor.152.sh create mode 100755 tests/eventscripts/60.nfs.monitor.153.sh create mode 100755 tests/eventscripts/60.nfs.monitor.161.sh create mode 100755 tests/eventscripts/60.nfs.monitor.162.sh create mode 100755 tests/eventscripts/60.nfs.multi.001.sh create mode 100755 tests/eventscripts/60.nfs.multi.002.sh create mode 100755 tests/eventscripts/60.nfs.multi.003.sh create mode 100755 tests/eventscripts/60.nfs.multi.004.sh create mode 100755 tests/eventscripts/60.nfs.multi.005.sh create mode 100755 tests/eventscripts/60.nfs.multi.006.sh delete mode 100644 tests/eventscripts/common.sh delete mode 120000 tests/eventscripts/etc-ctdb/interface_modify.sh delete mode 100755 tests/eventscripts/multievent/10.interface.001.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.001.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.002.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.003.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.004.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.005.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.006.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.007.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.008.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.009.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.010.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.011.sh delete mode 100755 tests/eventscripts/multievent/13.per_ip_routing.012.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.001.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.002.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.003.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.004.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.005.sh delete mode 100755 tests/eventscripts/multievent/60.nfs.006.sh delete mode 100755 tests/eventscripts/run_tests.sh create mode 100644 tests/eventscripts/scripts/local.sh delete mode 100755 tests/eventscripts/simple/10.interface.init.001.sh delete mode 100755 tests/eventscripts/simple/10.interface.init.002.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.001.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.002.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.003.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.004.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.005.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.006.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.007.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.008.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.009.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.010.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.011.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.012.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.013.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.014.sh delete mode 100755 tests/eventscripts/simple/10.interface.monitor.015.sh delete mode 100755 tests/eventscripts/simple/10.interface.releaseip.001.sh delete mode 100755 tests/eventscripts/simple/10.interface.releaseip.002.sh delete mode 100755 tests/eventscripts/simple/10.interface.startup.001.sh delete mode 100755 tests/eventscripts/simple/10.interface.startup.002.sh delete mode 100755 tests/eventscripts/simple/10.interface.takeip.001.sh delete mode 100755 tests/eventscripts/simple/10.interface.takeip.002.sh delete mode 100755 tests/eventscripts/simple/10.interface.takeip.003.sh delete mode 100755 tests/eventscripts/simple/40.vsftpd.monitor.001.sh delete mode 100755 tests/eventscripts/simple/41.httpd.monitor.001.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.001.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.050.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.051.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.101.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.102.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.103.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.104.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.105.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.106.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.107.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.108.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.109.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.110.sh delete mode 100755 tests/eventscripts/simple/50.samba.monitor.111.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.001.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.100.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.101.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.111.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.112.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.121.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.122.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.131.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.132.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.141.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.142.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.151.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.152.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.153.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.161.sh delete mode 100755 tests/eventscripts/simple/60.nfs.monitor.162.sh delete mode 100644 tests/onnode/common.sh delete mode 100755 tests/onnode/run_tests.sh create mode 100644 tests/onnode/scripts/local.sh create mode 100755 tests/run_cluster_tests.sh create mode 100644 tests/scripts/common.sh create mode 100644 tests/scripts/unit.sh delete mode 100644 tests/takeover/common.sh delete mode 100755 tests/takeover/ctdb_takeover.py create mode 100755 tests/takeover/lcp2.001.sh create mode 100755 tests/takeover/lcp2.002.sh create mode 100755 tests/takeover/lcp2.003.sh create mode 100755 tests/takeover/lcp2.004.sh create mode 100755 tests/takeover/lcp2.005.sh create mode 100755 tests/takeover/lcp2.006.sh create mode 100755 tests/takeover/lcp2.007.sh create mode 100755 tests/takeover/lcp2.008.sh create mode 100755 tests/takeover/lcp2.009.sh create mode 100755 tests/takeover/lcp2.010.sh create mode 100755 tests/takeover/lcp2.011.sh create mode 100755 tests/takeover/lcp2.012.sh create mode 100755 tests/takeover/lcp2.013.sh create mode 100755 tests/takeover/nondet.001.sh create mode 100755 tests/takeover/nondet.002.sh create mode 100755 tests/takeover/nondet.003.sh delete mode 100755 tests/takeover/run_tests.sh create mode 100644 tests/takeover/scripts/local.sh rename tests/takeover/{ => simulation}/README (100%) create mode 100755 tests/takeover/simulation/ctdb_takeover.py create mode 100755 tests/takeover/simulation/hey_jude.py rename tests/takeover/{ => simulation}/ip_groups1.py (100%) rename tests/takeover/{ => simulation}/ip_groups2.py (100%) rename tests/takeover/{ => simulation}/ip_groups3.py (100%) rename tests/takeover/{ => simulation}/ip_groups4.py (100%) rename tests/takeover/{ => simulation}/ip_groups5.py (100%) rename tests/takeover/{ => simulation}/mgmt_simple.py (100%) rename tests/takeover/{ => simulation}/node_group.py (100%) rename tests/takeover/{ => simulation}/node_group_extra.py (100%) rename tests/takeover/{ => simulation}/node_group_simple.py (100%) rename tests/takeover/{ => simulation}/nondet_path_01.py (100%) delete mode 100755 tests/takeover/testcases/lcp2.001.sh delete mode 100755 tests/takeover/testcases/lcp2.002.sh delete mode 100755 tests/takeover/testcases/lcp2.003.sh delete mode 100755 tests/takeover/testcases/lcp2.004.sh delete mode 100755 tests/takeover/testcases/lcp2.005.sh delete mode 100755 tests/takeover/testcases/lcp2.006.sh delete mode 100755 tests/takeover/testcases/lcp2.007.sh delete mode 100755 tests/takeover/testcases/lcp2.008.sh delete mode 100755 tests/takeover/testcases/lcp2.009.sh delete mode 100755 tests/takeover/testcases/lcp2.010.sh delete mode 100755 tests/takeover/testcases/nondet.001.sh delete mode 100755 tests/takeover/testcases/nondet.002.sh delete mode 100755 tests/takeover/testcases/nondet.003.sh delete mode 100644 tests/tool/common.sh create mode 100755 tests/tool/func.parse_nodestring.001.sh create mode 100755 tests/tool/func.parse_nodestring.002.sh create mode 100755 tests/tool/func.parse_nodestring.003.sh delete mode 100755 tests/tool/run_tests.sh create mode 100644 tests/tool/scripts/local.sh create mode 100755 tests/tool/stubby.nodestatus.001.sh create mode 100755 tests/tool/stubby.nodestatus.002.sh create mode 100755 tests/tool/stubby.nodestatus.003.sh create mode 100755 tests/tool/stubby.nodestatus.004.sh create mode 100755 tests/tool/stubby.nodestatus.005.sh create mode 100755 tests/tool/stubby.status.001.sh create mode 100755 tests/tool/stubby.status.002.sh delete mode 100755 tests/tool/testcases/func.parse_nodestring.001.sh delete mode 100755 tests/tool/testcases/func.parse_nodestring.002.sh delete mode 100755 tests/tool/testcases/func.parse_nodestring.003.sh delete mode 100755 tests/tool/testcases/stubby.nodestatus.001.sh delete mode 100755 tests/tool/testcases/stubby.nodestatus.002.sh delete mode 100755 tests/tool/testcases/stubby.nodestatus.003.sh delete mode 100755 tests/tool/testcases/stubby.nodestatus.004.sh create mode 100755 tests/tool/testcases/stubby.nodestatus.005.sh delete mode 100755 tests/tool/testcases/stubby.status.001.sh delete mode 100755 tests/tool/testcases/stubby.status.002.sh Changeset truncated at 500 lines: diff --git a/Makefile.in b/Makefile.in index 1794be5..7b7f356 100755 --- a/Makefile.in +++ b/Makefile.in @@ -367,6 +367,9 @@ install_pmda: test: all tests/run_tests.sh +test_cluster: all + tests/run_cluster_tests.sh + valgrindtest: all VALGRIND="valgrind -q --trace-children=yes" tests/run_tests.sh diff --git a/server/ctdb_recoverd.c b/server/ctdb_recoverd.c index 97e4670..c079217 100644 --- a/server/ctdb_recoverd.c +++ b/server/ctdb_recoverd.c @@ -2775,13 +2775,13 @@ static int verify_local_ip_allocation(struct ctdb_context *ctdb, struct ctdb_rec ctdb_addr_to_str(&ips->ips[j].addr))); need_takeover_run = true; } else if (ips->ips[j].pnn == pnn) { - if (!ctdb_sys_have_ip(&ips->ips[j].addr)) { + if (ctdb->do_checkpublicip && !ctdb_sys_have_ip(&ips->ips[j].addr)) { DEBUG(DEBUG_CRIT,("Public address '%s' is missing and we should serve this ip\n", ctdb_addr_to_str(&ips->ips[j].addr))); need_takeover_run = true; } } else { - if (ctdb_sys_have_ip(&ips->ips[j].addr)) { + if (ctdb->do_checkpublicip && ctdb_sys_have_ip(&ips->ips[j].addr)) { DEBUG(DEBUG_CRIT,("We are still serving a public address '%s' that we should not be serving.\n", ctdb_addr_to_str(&ips->ips[j].addr))); need_takeover_run = true; diff --git a/server/ctdb_takeover.c b/server/ctdb_takeover.c index 1037c2f..43201a3 100644 --- a/server/ctdb_takeover.c +++ b/server/ctdb_takeover.c @@ -350,6 +350,8 @@ static void ctdb_do_takeip_callback(struct ctdb_context *ctdb, int status, return; } + if (ctdb->do_checkpublicip) { + ret = ctdb_announce_vnn_iface(ctdb, state->vnn); if (ret != 0) { ctdb_request_control_reply(ctdb, state->c, NULL, -1, NULL); @@ -357,6 +359,8 @@ static void ctdb_do_takeip_callback(struct ctdb_context *ctdb, int status, return; } + } + data.dptr = (uint8_t *)ctdb_addr_to_str(&state->vnn->public_address); data.dsize = strlen((char *)data.dptr) + 1; DEBUG(DEBUG_INFO,(__location__ " sending TAKE_IP for '%s'\n", data.dptr)); @@ -383,7 +387,7 @@ static int32_t ctdb_do_takeip(struct ctdb_context *ctdb, ret = ctdb_vnn_assign_iface(ctdb, vnn); if (ret != 0) { DEBUG(DEBUG_ERR,("Takeover of IP %s/%u failed to " - "assin a usable interface\n", + "assign a usable interface\n", ctdb_addr_to_str(&vnn->public_address), vnn->public_netmask_bits)); return -1; @@ -460,6 +464,8 @@ static void ctdb_do_updateip_callback(struct ctdb_context *ctdb, int status, return; } + if (ctdb->do_checkpublicip) { + ret = ctdb_announce_vnn_iface(ctdb, state->vnn); if (ret != 0) { ctdb_request_control_reply(ctdb, state->c, NULL, -1, NULL); @@ -467,6 +473,8 @@ static void ctdb_do_updateip_callback(struct ctdb_context *ctdb, int status, return; } + } + /* the control succeeded */ ctdb_request_control_reply(ctdb, state->c, NULL, 0, NULL); talloc_free(state); @@ -591,7 +599,9 @@ int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb, return 0; } - have_ip = ctdb_sys_have_ip(&pip->addr); + if (ctdb->do_checkpublicip) { + have_ip = ctdb_sys_have_ip(&pip->addr); + } best_iface = ctdb_vnn_best_iface(ctdb, vnn); if (best_iface == NULL) { DEBUG(DEBUG_ERR,("takeoverip of IP %s/%u failed to find" @@ -608,6 +618,7 @@ int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb, have_ip = false; } + if (vnn->iface == NULL && have_ip) { DEBUG(DEBUG_CRIT,(__location__ " takeoverip of IP %s is known to the kernel, " "but we have no interface assigned, has someone manually configured it? Ignore for now.\n", @@ -798,19 +809,27 @@ int32_t ctdb_control_release_ip(struct ctdb_context *ctdb, talloc_free(vnn->takeover_ctx); vnn->takeover_ctx = NULL; - if (!ctdb_sys_have_ip(&pip->addr)) { - DEBUG(DEBUG_DEBUG,("Redundant release of IP %s/%u on interface %s (ip not held)\n", - ctdb_addr_to_str(&pip->addr), - vnn->public_netmask_bits, - ctdb_vnn_iface_string(vnn))); - ctdb_vnn_unassign_iface(ctdb, vnn); - return 0; - } + if (ctdb->do_checkpublicip) { - if (vnn->iface == NULL) { - DEBUG(DEBUG_ERR,(__location__ " release_ip of IP %s is known to the kernel, " - "but we have no interface assigned, has someone manually configured it? Ignore for now.\n", - ctdb_addr_to_str(&vnn->public_address))); + if (!ctdb_sys_have_ip(&pip->addr)) { + DEBUG(DEBUG_DEBUG,("Redundant release of IP %s/%u on interface %s (ip not held)\n", + ctdb_addr_to_str(&pip->addr), + vnn->public_netmask_bits, + ctdb_vnn_iface_string(vnn))); + ctdb_vnn_unassign_iface(ctdb, vnn); + return 0; + } + + if (vnn->iface == NULL) { + DEBUG(DEBUG_ERR,(__location__ " release_ip of IP %s is known to the kernel, " + "but we have no interface assigned, has someone manually configured it? Ignore for now.\n", + ctdb_addr_to_str(&vnn->public_address))); + return 0; + } + + } else if (vnn->iface == NULL) { + DEBUG(DEBUG_ERR, ("No interface found for IP %s.\n", + ctdb_addr_to_str(&vnn->public_address))); return 0; } @@ -1059,7 +1078,9 @@ int ctdb_set_public_addresses(struct ctdb_context *ctdb, const char *alist) } - ctdb_start_monitoring_interfaces(ctdb); + if (ctdb->do_checkpublicip) { + ctdb_start_monitoring_interfaces(ctdb); + } talloc_free(lines); return 0; diff --git a/tests/complex/01_ctdb_nfs_skip_share_check.sh b/tests/complex/01_ctdb_nfs_skip_share_check.sh index 85bc64d..969b445 100755 --- a/tests/complex/01_ctdb_nfs_skip_share_check.sh +++ b/tests/complex/01_ctdb_nfs_skip_share_check.sh @@ -99,7 +99,7 @@ try_command_on_node -v $test_node "mkdir -p \"$rc_local_d\"" f="$rc_local_d/fake-exportfs" echo "Installing \"$f\"..." -try_command_on_node $test_node "echo \"function exportfs () { echo $foo_dir 127.0.0.1/32 ; }\" >\"$f\" ; chmod +x \"$f\"" +try_command_on_node $test_node "echo \"function exportfs () { echo \\\"$foo_dir 127.0.0.1/32(rw)\\\" ; }\" >\"$f\" ; chmod +x \"$f\"" n="$rc_local_d/nfs-skip-share-check" n_contents='loadconfig() { diff --git a/tests/events.d/00.test b/tests/events.d/00.test index 49b741b..51c0e11 100755 --- a/tests/events.d/00.test +++ b/tests/events.d/00.test @@ -43,12 +43,13 @@ case $cmd in ip=$2 maskbits=$3 - [ `id -u` = 0 ] && { + [ -n "$CTDB_TEST_REAL_CLUSTER" ] && { /sbin/ip addr add $ip/$maskbits dev $iface || { echo "Failed to add $ip/$maskbits on dev $iface" exit 1 } } + echo "ctdb takeip event for $1 $2 $3" exit 0; ;; @@ -63,13 +64,13 @@ case $cmd in iface=$1 ip=$2 maskbits=$3 - [ `id -u` = 0 ] && { + [ -n "$CTDB_TEST_REAL_CLUSTER" ] && { /sbin/ip addr del $ip/$maskbits dev $iface || { echo "Failed to del $ip on dev $iface" exit 1 } } - echo "ctdb takeip event for $1 $2 $3" + echo "ctdb releaseip event for $1 $2 $3" exit 0 ;; diff --git a/tests/eventscripts/10.interface.init.001.sh b/tests/eventscripts/10.interface.init.001.sh new file mode 100755 index 0000000..fae1a78 --- /dev/null +++ b/tests/eventscripts/10.interface.init.001.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "no public addresses" + +setup_ctdb + +export CTDB_PUBLIC_ADDRESSES="$CTDB_ETC/does/not/exist" + +ok "No public addresses file found. Nothing to do for 10.interfaces" + +simple_test diff --git a/tests/eventscripts/10.interface.init.002.sh b/tests/eventscripts/10.interface.init.002.sh new file mode 100755 index 0000000..ba33f92 --- /dev/null +++ b/tests/eventscripts/10.interface.init.002.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "all interfaces up" + +setup_ctdb + +ok_null + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.001.sh b/tests/eventscripts/10.interface.monitor.001.sh new file mode 100755 index 0000000..42ef42d --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.001.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "no public addresses" + +setup_ctdb + +export CTDB_PUBLIC_ADDRESSES="$CTDB_ETC/does/not/exist" + +ok_null + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.002.sh b/tests/eventscripts/10.interface.monitor.002.sh new file mode 100755 index 0000000..ba33f92 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.002.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "all interfaces up" + +setup_ctdb + +ok_null + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.003.sh b/tests/eventscripts/10.interface.monitor.003.sh new file mode 100755 index 0000000..1eb7916 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.003.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "1 interface down" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +ethtool_interfaces_down $iface + +required_result 1 "ERROR: No link on the public network interface $iface" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.004.sh b/tests/eventscripts/10.interface.monitor.004.sh new file mode 100755 index 0000000..69ffbd0 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.004.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "all interfaces up, 1 is a bond" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +setup_bond $iface + +ok_null + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.005.sh b/tests/eventscripts/10.interface.monitor.005.sh new file mode 100755 index 0000000..8cf7bbc --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.005.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "1 bond, no active slaves" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +setup_bond $iface "None" + +required_result 1 "ERROR: No active slaves for bond device $iface" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.006.sh b/tests/eventscripts/10.interface.monitor.006.sh new file mode 100755 index 0000000..3c483a3 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.006.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "1 bond, active slaves, link down" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +setup_bond $iface "" "down" + +required_result 1 "ERROR: public network interface $iface is down" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.007.sh b/tests/eventscripts/10.interface.monitor.007.sh new file mode 100755 index 0000000..c45900e --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.007.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "unknown interface, up" + +setup_ctdb + +export CTDB_PUBLIC_INTERFACE="dev999" + +ok_null + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.008.sh b/tests/eventscripts/10.interface.monitor.008.sh new file mode 100755 index 0000000..f73302b --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.008.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "unknown interface, down, up" + +setup_ctdb + +iface="dev999" +export CTDB_PUBLIC_INTERFACE="$iface" + +#EVENTSCRIPTS_TESTS_TRACE="sh -x" +iterate_test 3 "ok_null" \ + 1 'ethtool_interfaces_down "$iface" ; required_result 1 "ERROR: No link on the public network interface $iface"' \ + 2 'ethtool_interfaces_up "$iface"' diff --git a/tests/eventscripts/10.interface.monitor.009.sh b/tests/eventscripts/10.interface.monitor.009.sh new file mode 100755 index 0000000..1b785ff --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.009.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "CTDB_PARTIALLY_ONLINE_INTERFACES, 1 down" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +export CTDB_PARTIALLY_ONLINE_INTERFACES="yes" + +ethtool_interfaces_down "$iface" + +ok "ERROR: No link on the public network interface $iface" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.010.sh b/tests/eventscripts/10.interface.monitor.010.sh new file mode 100755 index 0000000..4d23319 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.010.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "CTDB_PARTIALLY_ONLINE_INTERFACES, all down" + +setup_ctdb + +ifaces=$(ctdb_get_interfaces) + +export CTDB_PARTIALLY_ONLINE_INTERFACES="yes" + +ethtool_interfaces_down $ifaces + +msg=$(for i in $ifaces ; do echo "ERROR: No link on the public network interface $i" ; done) + +required_result 1 "$msg" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.011.sh b/tests/eventscripts/10.interface.monitor.011.sh new file mode 100755 index 0000000..21775d4 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.011.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "CTDB_PARTIALLY_ONLINE_INTERFACES, 1 bond down" + +setup_ctdb + +iface=$(ctdb_get_1_interface) + +setup_bond $iface "None" + +export CTDB_PARTIALLY_ONLINE_INTERFACES="yes" + +ethtool_interfaces_down "$iface" + +ok "ERROR: No active slaves for bond device $iface" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.012.sh b/tests/eventscripts/10.interface.monitor.012.sh new file mode 100755 index 0000000..dbe84b7 --- /dev/null +++ b/tests/eventscripts/10.interface.monitor.012.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "CTDB_PARTIALLY_ONLINE_INTERFACES, 1 bond down" + +setup_ctdb + +ifaces=$(ctdb_get_interfaces) + +for i in $ifaces ; do + setup_bond $i "None" +done + +export CTDB_PARTIALLY_ONLINE_INTERFACES="yes" + +ethtool_interfaces_down $ifaces + +msg=$(for i in $ifaces ; do echo "ERROR: No active slaves for bond device $i" ; done) + +required_result 1 "$msg" + +simple_test diff --git a/tests/eventscripts/10.interface.monitor.013.sh b/tests/eventscripts/10.interface.monitor.013.sh -- CTDB repository