diff --git a/include/crm/crm.h b/include/crm/crm.h index 3f22c4b..09643c2 100644 --- a/include/crm/crm.h +++ b/include/crm/crm.h @@ -51,7 +51,7 @@ extern "C" { * >=3.0.13: Fail counts include operation name and interval * >=3.2.0: DC supports PCMK_LRM_OP_INVALID and PCMK_LRM_OP_NOT_CONNECTED */ -# define CRM_FEATURE_SET "3.7.0" +# define CRM_FEATURE_SET "3.7.1" # define EOS '\0' # define DIMOF(a) ((int) (sizeof(a)/sizeof(a[0])) ) diff --git a/tools/crmadmin.c b/tools/crmadmin.c index d699786..9c280aa 100644 --- a/tools/crmadmin.c +++ b/tools/crmadmin.c @@ -36,14 +36,12 @@ static enum { struct { gboolean health; gint timeout; - char *dest_node; + char *optarg; char *ipc_name; - char *node_types; gboolean BASH_EXPORT; } options = { - .dest_node = NULL, + .optarg = NULL, .ipc_name = NULL, - .node_types = NULL, .BASH_EXPORT = FALSE }; @@ -69,9 +67,10 @@ static GOptionEntry command_options[] = { "\n node to examine the logs.", NULL }, - { "nodes", 'N', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, command_cb, - "Display the uname of all member nodes", - NULL + { "nodes", 'N', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, command_cb, + "Display the uname of all member nodes [optionally filtered by type (comma-separated)]" + "\n Types: all (default), cluster, guest, remote", + "TYPE" }, { "election", 'E', G_OPTION_FLAG_HIDDEN|G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, command_cb, "(Advanced) Start an election for the cluster co-ordinator", @@ -95,11 +94,6 @@ static GOptionEntry additional_options[] = { "\n operation failed", NULL }, - { "node-types", 'T', 0, G_OPTION_ARG_STRING, &options.node_types, - "Node types to list (available options: all, cluster, guest, remote)" - "\n (valid with -N/--nodes)", - NULL - }, { "bash-export", 'B', 0, G_OPTION_ARG_NONE, &options.BASH_EXPORT, "Display nodes as shell commands of the form 'export uname=uuid'" "\n (valid with -N/--nodes)", @@ -142,10 +136,10 @@ command_cb(const gchar *option_name, const gchar *optarg, gpointer data, GError } if (optarg) { - if (options.dest_node != NULL) { - free(options.dest_node); + if (options.optarg != NULL) { + free(options.optarg); } - options.dest_node = strdup(optarg); + options.optarg = strdup(optarg); } return TRUE; @@ -265,19 +259,19 @@ main(int argc, char **argv) switch (command) { case cmd_health: - rc = pcmk__controller_status(out, options.dest_node, options.timeout); + rc = pcmk__controller_status(out, options.optarg, options.timeout); break; case cmd_pacemakerd_health: rc = pcmk__pacemakerd_status(out, options.ipc_name, options.timeout); break; case cmd_list_nodes: - rc = pcmk__list_nodes(out, options.node_types, options.BASH_EXPORT); + rc = pcmk__list_nodes(out, options.optarg, options.BASH_EXPORT); break; case cmd_whois_dc: rc = pcmk__designated_controller(out, options.timeout); break; case cmd_shutdown: - rc = pcmk__shutdown_controller(out, options.dest_node); + rc = pcmk__shutdown_controller(out, options.optarg); break; case cmd_elect_dc: rc = pcmk__start_election(out);