diff options
author | Xavier Hernandez <xhernandez@datalab.es> | 2017-01-10 11:21:06 +0100 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2017-01-24 23:50:01 -0500 |
commit | 644ca6d8656e323a142c0a3cd2942ff5ce718785 (patch) | |
tree | 2ba49355a10cf777b3a6e02d87886b2fc08a8bcb /cli | |
parent | dcfdad0036f121b26da1e9ef479f5dbe32765cb7 (diff) |
cli: keep 'gluster volume status detail' consistent
The output of the command 'gluster volume status <volname> detail' is
not consistent between operating systems. On linux hosts it shows the
file system type, the device name, mount options and inode size of each
brick. However the same command executed on a FreeBSD host doesn't show
all this information, even for bricks stored on a linux.
Additionally, for hosts other than linux, this information is shown as
'N/A' many times. This has been fixed to show as much information as it
can be retrieved from the operating system.
The file contrib/mount/mntent.c has been mostly rewriten because it
contained many errors that caused mount information to not be retrieved
on some operating systems.
> Change-Id: Icb6e19e8af6ec82255e7792ad71914ef679fc316
> BUG: 1411334
> Signed-off-by: Xavier Hernandez <xhernandez@datalab.es>
> Reviewed-on: http://review.gluster.org/16371
> Smoke: Gluster Build System <jenkins@build.gluster.org>
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
> Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Change-Id: I01f99562dddff5d5cb6974df44d1b6366faf05dc
BUG: 1415132
Signed-off-by: Xavier Hernandez <xhernandez@datalab.es>
Reviewed-on: https://review.gluster.org/16442
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'cli')
-rw-r--r-- | cli/src/cli-cmd-volume.c | 6 | ||||
-rw-r--r-- | cli/src/cli-xml-output.c | 8 | ||||
-rw-r--r-- | cli/src/cli.h | 2 |
3 files changed, 2 insertions, 14 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index 0d25279f381..9ff71767ce4 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -1977,13 +1977,11 @@ cli_get_detail_status (dict_t *dict, int i, cli_volume_status_t *status) if (!status->total) goto out; -#ifdef GF_LINUX_HOST_OS memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "brick%d.device", i); ret = dict_get_str (dict, key, &(status->device)); if (ret) status->device = NULL; -#endif memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "brick%d.block_size", i); @@ -1993,7 +1991,6 @@ cli_get_detail_status (dict_t *dict, int i, cli_volume_status_t *status) status->block_size = 0; } -#ifdef GF_LINUX_HOST_OS memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "brick%d.mnt_options", i); ret = dict_get_str (dict, key, &(status->mount_options)); @@ -2013,7 +2010,6 @@ cli_get_detail_status (dict_t *dict, int i, cli_volume_status_t *status) ret = dict_get_str (dict, key, &(status->inode_size)); if (ret) status->inode_size = NULL; -#endif /* GF_LINUX_HOST_OS */ memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "brick%d.total_inodes", i); @@ -2051,7 +2047,6 @@ cli_print_detailed_status (cli_volume_status_t *status) cli_out ("%-20s : %-20c", "Online", (status->online) ? 'Y' : 'N'); cli_out ("%-20s : %-20s", "Pid", status->pid_str); -#ifdef GF_LINUX_HOST_OS if (status->fs_name) cli_out ("%-20s : %-20s", "File System", status->fs_name); else @@ -2075,7 +2070,6 @@ cli_print_detailed_status (cli_volume_status_t *status) } else { cli_out ("%-20s : %-20s", "Inode Size", "N/A"); } -#endif if (status->free) cli_out ("%-20s : %-20s", "Disk Space Free", status->free); else diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index dbc8aa7b848..4eafc0b5e68 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -438,12 +438,6 @@ cli_xml_output_vol_status_detail (xmlTextWriterPtr writer, dict_t *dict, (xmlChar *)"fsName", "%s", fs_name); - /* inode details are only available for ext 2/3/4 & xfs */ - if (!fs_name || !IS_EXT_FS(fs_name) || strcmp (fs_name, "xfs")) { - ret = 0; - goto out; - } - memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "brick%d.inode_size", brick_index); ret = dict_get_str (dict, key, &inode_size); @@ -467,6 +461,8 @@ cli_xml_output_vol_status_detail (xmlTextWriterPtr writer, dict_t *dict, ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *)"inodesFree", "%"PRIu64, inodes_free); + else + ret = 0; out: gf_log ("cli", GF_LOG_DEBUG, "Returning %d", ret); diff --git a/cli/src/cli.h b/cli/src/cli.h index 73fb67289f7..8acec640c83 100644 --- a/cli/src/cli.h +++ b/cli/src/cli.h @@ -170,12 +170,10 @@ struct cli_volume_status { char *pid_str; char *free; char *total; -#ifdef GF_LINUX_HOST_OS char *fs_name; char *mount_options; char *device; char *inode_size; -#endif }; struct snap_config_opt_vals_ { |