|
Fabiano Fidêncio |
64b69ec |
From 3d0fd106754c7614f5d9fb3875d0b40092d200f3 Mon Sep 17 00:00:00 2001
|
|
Fabiano Fidêncio |
64b69ec |
From: amitkuma <amitkuma@redhat.com>
|
|
Fabiano Fidêncio |
64b69ec |
Date: Thu, 15 Feb 2018 18:21:10 +0530
|
|
Fabiano Fidêncio |
64b69ec |
Subject: [PATCH] sssctl: Showing help even when sssd not configured
|
|
Fabiano Fidêncio |
64b69ec |
MIME-Version: 1.0
|
|
Fabiano Fidêncio |
64b69ec |
Content-Type: text/plain; charset=UTF-8
|
|
Fabiano Fidêncio |
64b69ec |
Content-Transfer-Encoding: 8bit
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
On a clean and unconfigured system, it's not possible
|
|
Fabiano Fidêncio |
64b69ec |
to use --help.
|
|
Fabiano Fidêncio |
64b69ec |
1) dnf install sssd-tools
|
|
Fabiano Fidêncio |
64b69ec |
2) sssctl cache-remove --help
|
|
Fabiano Fidêncio |
64b69ec |
Shows:
|
|
Fabiano Fidêncio |
64b69ec |
[confdb_get_domains] (0x0010): No domains configured, fatal error!
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
Solution: Donot check for confdb initialization when sssctl 3rd
|
|
Fabiano Fidêncio |
64b69ec |
command line argument passed is '--help'.
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
Please note when we run 'sssctl --help' on unconfigured system
|
|
Fabiano Fidêncio |
64b69ec |
confdb check is not done and proper o/p is seen.
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
Resolves: https://pagure.io/SSSD/sssd/issue/3634
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
|
|
Fabiano Fidêncio |
64b69ec |
(cherry picked from commit b8db8c2d83d1d75c42c1e17145d3907211b3a146)
|
|
Fabiano Fidêncio |
64b69ec |
---
|
|
Fabiano Fidêncio |
64b69ec |
src/tools/common/sss_tools.c | 19 ++++++++++++-------
|
|
Fabiano Fidêncio |
64b69ec |
src/tools/common/sss_tools.h | 1 +
|
|
Fabiano Fidêncio |
64b69ec |
2 files changed, 13 insertions(+), 7 deletions(-)
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
diff --git a/src/tools/common/sss_tools.c b/src/tools/common/sss_tools.c
|
|
Fabiano Fidêncio |
64b69ec |
index 4832db5a0..d45584ce1 100644
|
|
Fabiano Fidêncio |
64b69ec |
--- a/src/tools/common/sss_tools.c
|
|
Fabiano Fidêncio |
64b69ec |
+++ b/src/tools/common/sss_tools.c
|
|
Fabiano Fidêncio |
64b69ec |
@@ -58,11 +58,14 @@ static void sss_tool_common_opts(struct sss_tool_ctx *tool_ctx,
|
|
Fabiano Fidêncio |
64b69ec |
poptContext pc;
|
|
Fabiano Fidêncio |
64b69ec |
int debug = SSSDBG_DEFAULT;
|
|
Fabiano Fidêncio |
64b69ec |
int orig_argc = *argc;
|
|
Fabiano Fidêncio |
64b69ec |
+ int help = 0;
|
|
Fabiano Fidêncio |
64b69ec |
int opt;
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
struct poptOption options[] = {
|
|
Fabiano Fidêncio |
64b69ec |
{"debug", '\0', POPT_ARG_INT | POPT_ARGFLAG_STRIP, &debug,
|
|
Fabiano Fidêncio |
64b69ec |
0, _("The debug level to run with"), NULL },
|
|
Fabiano Fidêncio |
64b69ec |
+ {"help", '?', POPT_ARG_VAL | POPT_ARGFLAG_DOC_HIDDEN, &help,
|
|
Fabiano Fidêncio |
64b69ec |
+ 1, NULL, NULL },
|
|
Fabiano Fidêncio |
64b69ec |
POPT_TABLEEND
|
|
Fabiano Fidêncio |
64b69ec |
};
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
@@ -74,6 +77,7 @@ static void sss_tool_common_opts(struct sss_tool_ctx *tool_ctx,
|
|
Fabiano Fidêncio |
64b69ec |
/* Strip common options from arguments. We will discard_const here,
|
|
Fabiano Fidêncio |
64b69ec |
* since it is not worth the trouble to convert it back and forth. */
|
|
Fabiano Fidêncio |
64b69ec |
*argc = poptStrippedArgv(pc, orig_argc, discard_const_p(char *, argv));
|
|
Fabiano Fidêncio |
64b69ec |
+ tool_ctx->print_help = help;
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
DEBUG_CLI_INIT(debug);
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
@@ -187,7 +191,6 @@ errno_t sss_tool_init(TALLOC_CTX *mem_ctx,
|
|
Fabiano Fidêncio |
64b69ec |
}
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
sss_tool_common_opts(tool_ctx, argc, argv);
|
|
Fabiano Fidêncio |
64b69ec |
-
|
|
Fabiano Fidêncio |
64b69ec |
*_tool_ctx = tool_ctx;
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
return EOK;
|
|
Fabiano Fidêncio |
64b69ec |
@@ -341,12 +344,14 @@ errno_t sss_tool_route(int argc, const char **argv,
|
|
Fabiano Fidêncio |
64b69ec |
return tool_ctx->init_err;
|
|
Fabiano Fidêncio |
64b69ec |
}
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
- ret = tool_cmd_init(tool_ctx, &commands[i]);
|
|
Fabiano Fidêncio |
64b69ec |
- if (ret != EOK) {
|
|
Fabiano Fidêncio |
64b69ec |
- DEBUG(SSSDBG_FATAL_FAILURE,
|
|
Fabiano Fidêncio |
64b69ec |
- "Command initialization failed [%d] %s\n",
|
|
Fabiano Fidêncio |
64b69ec |
- ret, sss_strerror(ret));
|
|
Fabiano Fidêncio |
64b69ec |
- return ret;
|
|
Fabiano Fidêncio |
64b69ec |
+ if (!tool_ctx->print_help) {
|
|
Fabiano Fidêncio |
64b69ec |
+ ret = tool_cmd_init(tool_ctx, &commands[i]);
|
|
Fabiano Fidêncio |
64b69ec |
+ if (ret != EOK) {
|
|
Fabiano Fidêncio |
64b69ec |
+ DEBUG(SSSDBG_FATAL_FAILURE,
|
|
Fabiano Fidêncio |
64b69ec |
+ "Command initialization failed [%d] %s\n",
|
|
Fabiano Fidêncio |
64b69ec |
+ ret, sss_strerror(ret));
|
|
Fabiano Fidêncio |
64b69ec |
+ return ret;
|
|
Fabiano Fidêncio |
64b69ec |
+ }
|
|
Fabiano Fidêncio |
64b69ec |
}
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
return commands[i].fn(&cmdline, tool_ctx, pvt);
|
|
Fabiano Fidêncio |
64b69ec |
diff --git a/src/tools/common/sss_tools.h b/src/tools/common/sss_tools.h
|
|
Fabiano Fidêncio |
64b69ec |
index 848009365..0e4308ee6 100644
|
|
Fabiano Fidêncio |
64b69ec |
--- a/src/tools/common/sss_tools.h
|
|
Fabiano Fidêncio |
64b69ec |
+++ b/src/tools/common/sss_tools.h
|
|
Fabiano Fidêncio |
64b69ec |
@@ -29,6 +29,7 @@
|
|
Fabiano Fidêncio |
64b69ec |
struct sss_tool_ctx {
|
|
Fabiano Fidêncio |
64b69ec |
struct confdb_ctx *confdb;
|
|
Fabiano Fidêncio |
64b69ec |
|
|
Fabiano Fidêncio |
64b69ec |
+ bool print_help;
|
|
Fabiano Fidêncio |
64b69ec |
errno_t init_err;
|
|
Fabiano Fidêncio |
64b69ec |
char *default_domain;
|
|
Fabiano Fidêncio |
64b69ec |
struct sss_domain_info *domains;
|
|
Fabiano Fidêncio |
64b69ec |
--
|
|
Fabiano Fidêncio |
64b69ec |
2.14.3
|
|
Fabiano Fidêncio |
64b69ec |
|