diff options
author | Niels de Vos <ndevos@redhat.com> | 2017-01-06 12:49:32 +0100 |
---|---|---|
committer | Shyamsundar Ranganathan <srangana@redhat.com> | 2017-02-13 20:53:23 -0500 |
commit | bd9adf99a2ca53dd18332957acb465f904ecd22c (patch) | |
tree | a721bae9fbe54be4c3de44bace9e39377ed2d02c /tests/basic/gfapi/glfs_sysrq.c | |
parent | 99ce0d43fffa9b2094edcd4917df2ff9ca7afe5d (diff) |
gfapi: add API to trigger events for debugging and troubleshooting
Introduce glfs_sysrq() as a generic API for triggering debug and
troubleshoot events. This interface will be used by the feature to get
statedumps for applications using libgfapi.
The current events that can be requested through this API are:
- 'h'elp: log a mesage with all supported events
- 's'tatedump: trigger a statedump for the passed glfs_t
In future, this API can be used by a CLI to trigger statedumps from
storage servers. At the moment it is limited to take statedumps, but it
is extensible to set the log-level, clear caches, force reconnects and
much more.
> BUG: 1169302
> Change-Id: I18858359a3957870cea5139c79efe1365a15a992
> Original-author: Poornima G <pgurusid@redhat.com>
> Signed-off-by: Niels de Vos <ndevos@redhat.com>
> Reviewed-on-master: http://review.gluster.org/16414
> Reviewed-by: Prashanth Pai <ppai@redhat.com>
> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
BUG: 1418981
Change-Id: I18858359a3957870cea5139c79efe1365a15a992
Signed-off-by: Shyam <srangana@redhat.com>
Reviewed-on: https://review.gluster.org/16600
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'tests/basic/gfapi/glfs_sysrq.c')
-rw-r--r-- | tests/basic/gfapi/glfs_sysrq.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/basic/gfapi/glfs_sysrq.c b/tests/basic/gfapi/glfs_sysrq.c new file mode 100644 index 00000000000..c843c2a3559 --- /dev/null +++ b/tests/basic/gfapi/glfs_sysrq.c @@ -0,0 +1,61 @@ +/** glfs_sysrq.c + * + * Simple test application to run all glfs_syqrq() debugging calls. + * + * Usage: ./glfs_sysrq <host> <volume> <logfile> + */ +#include <errno.h> +#include <stdio.h> + +#include <glusterfs/api/glfs.h> + +int +main (int argc, char *argv[]) +{ + /* cmdline arguments */ + char *host = NULL; + char *volume = NULL; + char *logfile = NULL; + + /* other variables */ + glfs_t *fs = NULL; + int ret = 0; + + if (argc != 4) { + fprintf (stderr, "Usage: %s <host> <volume> <logfile>\n", + argv[0]); + return -1; + } + + host = argv[1]; + volume = argv[2]; + logfile = argv[3]; + + fs = glfs_new (volume); + if (!fs) { + return -1; + } + + ret = glfs_set_logging (fs, logfile, 7); + if (ret < 0) { + return -1; + } + + ret = glfs_set_volfile_server (fs, "tcp", host, 24007); + if (ret < 0) { + return -1; + } + + ret = glfs_init (fs); + if (ret < 0) { + return -1; + } + + /* checking of the results is easier in the script running this test */ + glfs_sysrq (fs, GLFS_SYSRQ_HELP); + glfs_sysrq (fs, GLFS_SYSRQ_STATEDUMP); + + glfs_fini (fs); + + return 0; +} |