Merge branch '2.2' into 2.2-mrm

This commit is contained in:
Johan Wikman
2017-09-28 15:19:20 +03:00
70 changed files with 748 additions and 705 deletions

View File

@ -303,13 +303,9 @@ bool listfuncs_cb(const MODULECMD *cmd, void *data)
for (int i = 0; i < cmd->arg_count_max; i++)
{
modulecmd_arg_type_t *type = &cmd->arg_types[i];
if (MODULECMD_GET_TYPE(type) != MODULECMD_ARG_OUTPUT)
{
dcb_printf(dcb, "%s%s",
modulecmd_argtype_to_str(&cmd->arg_types[i]),
i < cmd->arg_count_max - 1 ? " " : "");
}
dcb_printf(dcb, "%s%s",
modulecmd_argtype_to_str(&cmd->arg_types[i]),
i < cmd->arg_count_max - 1 ? " " : "");
}
dcb_printf(dcb, "\n\n");
@ -317,13 +313,9 @@ bool listfuncs_cb(const MODULECMD *cmd, void *data)
for (int i = 0; i < cmd->arg_count_max; i++)
{
modulecmd_arg_type_t *type = &cmd->arg_types[i];
if (MODULECMD_GET_TYPE(type) != MODULECMD_ARG_OUTPUT)
{
dcb_printf(dcb, " %s - %s\n",
modulecmd_argtype_to_str(&cmd->arg_types[i]),
cmd->arg_types[i].description);
}
dcb_printf(dcb, " %s - %s\n",
modulecmd_argtype_to_str(&cmd->arg_types[i]),
cmd->arg_types[i].description);
}
dcb_printf(dcb, "\n");
@ -931,7 +923,7 @@ struct subcommand addoptions[] =
{
{
"user", 2, 2, inet_add_admin_user,
"Add an administrative account for using maxadmin over the network",
"Add an administrative account for using maxadmin over the network",
"Usage: add user USER PASSWORD\n"
"\n"
"Parameters:\n"
@ -1664,12 +1656,6 @@ struct subcommand alteroptions[] =
}
};
static inline bool requires_output_dcb(const MODULECMD *cmd)
{
modulecmd_arg_type_t *type = &cmd->arg_types[0];
return cmd->arg_count_max > 0 && MODULECMD_GET_TYPE(type) == MODULECMD_ARG_OUTPUT;
}
static void callModuleCommand(DCB *dcb, char *domain, char *id, char *v3,
char *v4, char *v5, char *v6, char *v7, char *v8, char *v9,
char *v10, char *v11, char *v12)
@ -1687,18 +1673,6 @@ static void callModuleCommand(DCB *dcb, char *domain, char *id, char *v3,
if (cmd)
{
if (requires_output_dcb(cmd))
{
/** The command requires a DCB for output, add the client DCB
* as the first argument */
for (int i = valuelen - 1; i > 0; i--)
{
values[i] = values[i - 1];
}
values[0] = dcb;
numargs += numargs + 1 < valuelen - 1 ? 1 : 0;
}
MODULECMD_ARG *arg = modulecmd_arg_parse(cmd, numargs, values);
if (arg)
@ -1707,11 +1681,15 @@ static void callModuleCommand(DCB *dcb, char *domain, char *id, char *v3,
if (!modulecmd_call_command(cmd, arg, &output))
{
dcb_printf(dcb, "Error: %s\n", modulecmd_get_error());
const char* err = modulecmd_get_error();
dcb_printf(dcb, "Error: %s\n", *err ? err :
"Call to module command failed, see log file for more details");
}
else if (output)
{
dcb_printf(dcb, "%s\n", json_dumps(output, JSON_INDENT(4)));
char* js = json_dumps(output, JSON_INDENT(4));
dcb_printf(dcb, "%s\n", js);
MXS_FREE(js);
}
json_decref(output);