summaryrefslogtreecommitdiff
path: root/ctdb/tools
AgeCommit message (Collapse)AuthorFilesLines
2026-02-25ctdb-tools: Remove some helper variablesMartin Schwenke1-30/+6
Remove CTDB_EVENT_HELPER, CTDB_LVS_HELPER, CTDB_NATGW_HELPER. Use path_helperdir_append() instead. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Anoop C S <anoopcs@samba.org>
2026-02-23ctdb-tools: Fix CID 1681637 - Drop unnecessary if-statementsMartin Schwenke1-9/+0
The first was found by Coverity: >>> CID 1681637: Incorrect expression (IDENTICAL_BRANCHES) >>> The same code is executed when the condition "ret != 0" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? The second and third are also obvious. Sorry, missed these in review. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Signed-off-by: Anoop C S <anoopcs@samba.org> Autobuild-User(master): Anoop C S <anoopcs@samba.org> Autobuild-Date(master): Mon Feb 23 08:43:29 UTC 2026 on atb-devel-224
2026-02-20ctdb-tools: add --json support to 'version' sub-commandShachar Sharon1-1/+33
When building ctdb with json-outpuit support, enable json output when running 'ctdb version --json'. This may be used as indication to json support in other sub-commands. Pair-Programmed-With: John Mulligan <jmulligan@redhat.com> Signed-off-by: Shachar Sharon <ssharon@redhat.com> Signed-off-by: John Mulligan <jmulligan@redhat.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Anoop C S <anoopcs@samba.org>
2026-02-20ctdb-tools: add a --json option for ctdb statusJohn Mulligan1-15/+445
Add a new --json option that prints JSON as a higher-level machine parse-able output. The --json option is only supported if the jansson library is available. The --json option will ONLY print json. If the subcommand does not (yet) support json it will raise an error rather than fall back to emitting human readable text. This way a json parser is never given "invalid" input. Pair-Programmed-With: Shachar Sharon <ssharon@redhat.com> Signed-off-by: Shachar Sharon <ssharon@redhat.com> Signed-off-by: John Mulligan <jmulligan@redhat.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Anoop C S <anoopcs@samba.org>
2026-02-20ctdb-tools: reformat ctdb.c with clang-formatJohn Mulligan1-1229/+2249
This is the result of running: clang-format -i ctdb/tools/ctdb.c This is in preparation for some upcoming changes that add fields to the struct tables and general recommendations to use `clang-format` and/or `git clang-format` to keep samba code formatted consistently. Signed-off-by: John Mulligan <jmulligan@redhat.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Anoop C S <anoopcs@samba.org>
2026-02-18ctdb-scripts: Only send notifies for newly taken IPsPeter Schwenke1-5/+39
We no longer delete shared state (and send notifies) for IPs previously held by the current node. The NFS lock manager won't have released locks for these IPs, so won't generate SM_MON on reclaim attempts. Therefore, there will be no add-client to put them back. We now record newly taken IP addresses in takeip, and only send notifies for those during ipreallocated. The extra notifies were also confusing statd. Update existing tests to always simulate taking all of a node's IPs. This causes no output changes. Test updates confirm the subtleties of the statd_callout_helper behaviour change. These pretend to only take a single IP, so SM_NOTIFY must not be sent for other IPs. Shared state should remain for these other files. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15939 Signed-off-by: Peter Schwenke <pschwenke@ddn.com> Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Anoop C S <anoopcs@samba.org>
2026-02-09ctdb-scripts: Move NFS lock manager grace hack to calloutMartin Schwenke1-10/+0
The "startipreallocate" event was added so the NFS-Ganesha callout could use it to start grace. Use it for Linux kernel lock manager grace too. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Volker Lendecke <vl@samba.org>
2025-03-29ctdb-scripts: Reformat with "shfmt -w -p -i 0 -fn"Martin Schwenke1-153/+176
Best reviewed with "git show -w". Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Ralph Boehme <slow@samba.org>
2025-03-29ctdb-scripts: Add ctdb_diagnostics -l optionyogita721-5/+30
Allows ctdb_diagnostics to be run on the local node without onnode. Signed-off-by: yogita72 <yogita.bijani@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Ralph Boehme <slow@samba.org>
2025-01-02remove usage of bzeroMichael Tokarev1-1/+1
bzero() function has been deprecated for a long time. In samba it is replaced with memset(). But samba also provides common memory-zeroing macros, like ZERO_STRUCT(). In all places where bzero() is used, it actually meant to zero a structure or an array. So replace these bzero() calls with ZERO_STRUCT() or ZERO_ARRAY() as appropriate, and remove bzero() replacement and testing entirely. While at it, also stop checking for presence of memset() - this function is standard for a very long time, and the only conditional where HAVE_MEMSET were used, was to provide replacement for bzero() - in all other places memset() is used unconditionally. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Pavel Filipenský <pfilipensky@samba.org>
2024-12-13ctdb-scripts: Change default persistent DB for statd_callout_helperMartin Schwenke1-1/+1
This database isn't use throughout CTDB, so name the it more specifically. Note that this might cause locks to be lost during upgrade to the first version containing this change. For testing, a different name is chosen to exercise related functionality. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Fri Dec 13 15:01:10 UTC 2024 on atb-devel-224
2024-12-13ctdb-scripts: Support CTDB_STATD_CALLOUT_SHARED_STORAGE=noneMartin Schwenke1-0/+36
Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Support storing statd-callout state in cluster filesystemMartin Schwenke1-3/+99
CTDB_STATD_CALLOUT_SHARED_STORAGE is a new configuration variable indicating where statd-callout should store its NFS client locking data. See the update to ctdb-script.options(5) for details. This adds back functionality that was removed in commit 12cc82623150ca4a83482f1b7165401cbdecd3de. The commit message doesn't say why this was changed but it was most likely due to a cluster filesystem hanging at inopportune times. Hence, this is re-added as a non-default option. There are 2 justifications for re-adding it: * The existing method (persistent_db) relies on dequeuing data during the monitor event, which loses any queued data on node crash. * NFS-Ganesha writes NFSv4 client locking data to a cluster filesystem, by default. Something similar might as well exist for NFSv3. Note that this could create the files for sm-notify in add-client. However, this would require an alternate implementation of send_notifies() (or a change to the implementation for persistent_db too). It seems better to leave add-client lightweight and do the work in notify, since add-client is a more frequent operation. Unconditionally create the state directory on startup. This is currently implicitly created for persistent_db when the queue directory is created. However, it isn't created anywhere else for shared_dir, so do it in a common place. In test mode, the shared storage location has a prefix added so files are created within the test environment. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Fix impending SM_NOTIFY versus record deletion raceMartin Schwenke1-1/+1
SM_NOTIFYs are sent before client records are deleted. Theoretically, this means new records resulting from lock reclaim can be deleted. This doesn't actually happen at the moment because any new "records" resulting from lock reclaim are entered into the queue directory and only dequeued to the database during a later monitor event. Since a monitor event can't collide with an ipreallocated event, no records can be dequeeued into the database during the ipreallocated event, so they can't be deleted by delete_records(). However, a subsequent commit will add direct writing of records into a shared cluster filesystem directory. This means that add-client events will cause records to be added directly to that directory so, without a fix, the race will be able to occur. So, delete records before sending SM_NOTIFYs. In theory, the script could be killed before all SM_NOTIFYs are successfully sent, resulting in loss of locks. However, given the overall lack of error checking, there are other, more likely problems. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Factor out some statd-callout functionsMartin Schwenke1-56/+115
This captures all of the persistent database (currently ctdb.tdb) implementation-specific details in functions. Alternate implementations can now be easily added. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Improve update and listing codeMartin Schwenke1-29/+49
Drop the complexity associated with using awk to escape dots in IPv4 addresses to protect them from sed, and generate a grep -F filter instead. For listing, the pipeline is now longer, but the steps are now clearer: 1. List DB records 2. Extract keys 3. Keep only keys machine hosted public IPs 4. Parse out server IP and client IP 5. Sort Performance here isn't critical, so having clearer code is preferable. Use temporary files to avoid command-line length limits. Also, drop the cd to the queue directory during update. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Drop TCP tuning comments from statd_callout_helperMartin Schwenke1-6/+0
Commits caad5dc38d790d76f6720b312c1557ec3151a084 and f022df1d40c9c1e3e528f178204f404ee395d5c2 commented out these lines back in 2007. 2 things are clear from the commit messages: * These setting should not be required in the real world - they are: mainly useful for avoiding ack-storms when doing very rapid failover/failback during testing * If they are needed, they are not specific to statd_callout/statd_callout_helper Let's remove these comments to avoid confusing people. Reported-by: Ulrich Sibiller <ulrich.sibiller@eviden.com> Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-12-13ctdb-scripts: Fix some bit-rotted comments and whitespaceMartin Schwenke1-24/+3
The top comment in the file is no longer true. The comment about notifications doesn't really apply anymore since upstream sm-notify is used and it does "the right thing". shfmt wants to remove a space before a semicolon, so do that too. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-08-29ctdb-scripts: Remove unused variable NFS_HOSTNAMEMartin Schwenke1-18/+1
This was passed to CTDB's old smnotify. This has been replaced by use of nfs-utils' sm-notify, which doesn't need this. In test, a fake NFS_HOSTNAME is still needed. Real sm-notify will get it from a reverse host lookup of the IP address. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-08-29ctdb-scripts: Use nfs-utils' sm-notify instead of CTDB's smnotifyMartin Schwenke1-34/+54
CTDB's smnotify does not support IPv6 and is difficult to maintain. So, create directories of files and pass them to NFS util's sm-notify. There is an implied change here, because NFS utils sm-notify stopped sending IP addresses as mon_name back in 2010: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commitdiff;h=900df0e7c0b9006d72d8459b30dc2cd69ce495a5 This will change advice given in the wiki to use a hostname for the cluster with round-robin DNS, since this is what is best supported. Another behavioural change is that sm-notify only sends "up" notifications with an odd state. Signed-off-by: Martin Schwenke <martin@meltin.net> Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2024-08-06ctdb-tools: update cli tool to optionally load nodes from commandJohn Mulligan1-15/+20
Similar to the recent changes to the ctdb server code, add the ability to load the nodes from a subprocess stdout. Signed-off-by: John Mulligan <jmulligan@redhat.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
2024-07-23ctdb-tools: Use ctdb_read_nodes() in the ctdb toolMartin Schwenke1-101/+2
Remove unused copy of ctdb_read_nodes_file(). Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Anoop C S <anoopcs@samba.org>
2024-06-25ctdb-failover: Split statd_callout add-client/del-clientMartin Schwenke1-0/+276
rpc.statd is single-threaded and runs its HA callout synchronously. If it is too slow then latency accumulates and rpc.statd's backlog grows. Running a pair of add-client/del-client events with the current code averages ~0.030s in my test environment. This mean that 1000 clients reclaiming locks after failover can easily cause 10s of latency. This could cause rpc.statd to become unresponsive, resulting in a time out for an rpcinfo-based health check of the status service. Split the add-client/del-client events out to a standalone statd_callout executable, written in C, to be used as the HA callout for rpc.statd. All other functions move to statd_callout_helper. Now, running a pair of add-client/del-client events in my test environment averages only ~0.002s. This seems less likely to cause latency problems. The standalone statd_callout executable needs to read a configuration file, which is generated by statd_callout_helper from the "startup" event. It also needs access to a list of currently assigned public IPs. For backward compatibility, during installation a symlink is created from $CTDB_BASE/statd-callout to the new statd_callout, which is installed in the helper directory. Testing this as part of the eventscript unit tests starts to become even more of a hack than it used to be. However, the dependency on stubs and the corresponding setup of fake state makes it hard to move this elsewhere. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Martin Schwenke <martins@samba.org> Autobuild-Date(master): Tue Jun 25 04:24:57 UTC 2024 on atb-devel-224
2024-04-16lib: Give lib/util/util_file.c its own header fileVolker Lendecke1-0/+1
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
2024-03-06ctdb-common: Remove old runstate/string translation functionsMartin Schwenke1-3/+0
The canonical versions are in protocol utils. These were unused apart from some stray forward declarations in tools/ctdb.c and a single call in ctdb_set_runstate(), where ctdb_runstate_to_string() can be used instead. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Volker Lendecke <vl@samba.org>
2024-01-04ctdb: add comments to "addip"/"delip" when ↵Stefan Metzmacher1-0/+26
CTDB_{CONTROL,EVENT,SRVID}_IPREALLOCATED happens "addip"/"delip" are different from "moveip" so they don't need to call ipreallocate() nor send_ipreallocated_control_to_nodes(). Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net>
2024-01-04ctdb: let "moveip" end with CTDB_CONTROL_IPREALLOCATED to all connected nodesStefan Metzmacher1-1/+34
This matches the behavior of takeover_send/recv() from ctdb_takeover_helper.c. It means we consistently call the ipreallocated event scripts and also send CTDB_SRVID_IPREALLOCATED after moving ips. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net>
2024-01-04ctdb: let "moveip" also use disable_takeover_runs()Stefan Metzmacher1-8/+50
That makes the behavior more consistent compared to a takeover run started from the within ctdbd. The behavior is the same but ctdb_message_disable_ip_check() used a legacy code path and the next commits will also touch some of the moveip logic... The logic and comments are copied from control_reloadips(). Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net>
2023-07-19ctdb: Do not use egrepMartin Schwenke1-1/+1
On some platforms, egrep prints a deprecation warning to stderr: egrep: warning: egrep is obsolescent; using grep -E Use grep -E instead. This is nice and simple, so no use splitting this commit into 2 separate commits for each of tools and test. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2023-07-10ctdb-tools: Switch tickle ACK sending message to INFO levelMartin Schwenke1-2/+2
DEBUG level logging in ctdb_killtcp is very noisy. The most important messages when debugging are those for tickle ACKs and TCP RSTs. TCP RSTs are already logged at INFO level, so promote tickle ACKs to INFO level too. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2023-07-10ctdb-tools: Fix a typo in a log messageMartin Schwenke1-1/+1
Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reported-by: Ulrich Sibiller <ulrich.sibiller@atos.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2023-07-05ctdb-tools: Avoid ShellCheck warning SC2317Martin Schwenke1-0/+2
New in ShellCheck 0.9.0: SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly). Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Andreas Schneider <asn@samba.org>
2023-04-12ctdb:tool: Remove unnecessary strlen()Joseph Sutton1-2/+1
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andreas Schneider <asn@samba.org>
2023-03-24ctdb:tool: Fix code spellingAndreas Schneider1-3/+3
Best reviewed with: `git show --word-diff` Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
2022-09-20ctdb-tools: Improve/add debugMartin Schwenke1-6/+7
In particular, knowing the reason fetching the packet fails can help with debugging unsupported protocols in the pcap code. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-07-22ctdb-scripts: Avoid ShellCheck warning SC2295Martin Schwenke1-2/+2
For example: In /home/martins/samba/samba/ctdb/tools/onnode line 304: [ "$nodes" != "${nodes%[ ${nl}]*}" ] && verbose=true ^---^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns. Did you mean: [ "$nodes" != "${nodes%[ "${nl}"]*}" ] && verbose=true For more information: https://www.shellcheck.net/wiki/SC2295 -- Expansions inside ${..} need to b... Who knew? Thanks ShellCheck! Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-06-28ctdb-tool: Add UNKNOWN pseudo stateVinit Agnihotri3-13/+88
When a node is starting, CTDB reports remote nodes as unhealthy by default. This can be misleading. To hide this, report an "UNKNOWN" pseudo state when a remote node is not disconnected and the runstate is less than or equal to "FIRST_RECOVERY". Signed-off-by: Vinit Agnihotri <vagnihotri@ddn.com> Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-03-08ctdb-tools: Remove deprecated networking commands and replace with new commandsArchana1-1/+2
The changes are made to replace the deprecated network commands (ifconfig,netstat) with the new commands (ip addr,ss) respectively Signed-off-by: Archana Chidirala <archana.chidirala.chidirala@ibm.com> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net> Autobuild-User(master): Volker Lendecke <vl@samba.org> Autobuild-Date(master): Tue Mar 8 12:30:53 UTC 2022 on sn-devel-184
2022-01-17ctdb-tools: recovery master -> leaderMartin Schwenke1-45/+69
The following command names are changed: recmaster -> leader setrecmasterrole -> setleaderrole Command output changed for the following commands: status getcapabilities Documentation and tests are updated to reflect these changes. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-01-17ctdb-tools: Use leader broadcast in get_leader()Martin Schwenke1-9/+21
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-01-17ctdb-tools: Factor out get_leader()Martin Schwenke1-6/+24
This seems pointless but it localises a subsequent change and also starts a terminology change in the tool code. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-01-17ctdb-tools: Handle leader broadcasts in ctdb toolMartin Schwenke1-1/+32
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2022-01-17ctdb-tools: Print "UNKNOWN" when leader PNN is unknownMartin Schwenke1-2/+14
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2021-09-09ctdb-tools: Use disable and enable controls in toolMartin Schwenke1-45/+12
Note that there a change from broadcast to a directed control here. This is OK because the recovery master will push flags if any nodes disagree with the canonical flags fetched from a node. Static function ctdb_ctrl_modflags() is no longer used to drop it. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14784 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2021-01-08ctdb: Use hex_byte() in hex_to_data()Volker Lendecke1-12/+5
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2020-08-17ctdb-tools: Drop "ctdb isnotrecmaster" commandMartin Schwenke1-29/+0
This isn't used anywhere and can easily be checked via "ctdb pnn" and "ctdb recmaster" commands. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2020-08-03lib: relicense smb_strtoul(l) under LGPLv3Ralph Boehme1-0/+1
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Swen Schillig <swen@linux.ibm.com> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Mon Aug 3 22:21:04 UTC 2020 on sn-devel-184
2020-07-24ctdb: Change LVS to use leader/followerMartin Schwenke2-9/+9
Instead of master/slave. Nearly all of these are simple textual substitutions, which preserve the case of the original. A couple of minor cleanups were made in the documentation (such as "LVSMASTER" -> "LVS leader"). Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2020-07-24ctdb: Change NAT gateway to use leader/followerMartin Schwenke2-16/+16
Instead of master/slave. Nearly all of these are simple textual substitutions, which preserve the case of the original. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2020-07-16ctdb-tools: Improve onnode's ShellCheck credibilityMartin Schwenke1-2/+2
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Amitay Isaacs <amitay@samba.org> Autobuild-Date(master): Thu Jul 16 06:51:47 UTC 2020 on sn-devel-184