Merge pull request #1070 from mmichal10/prevent-standby-init-and-load

casadm: prevent using `init` and `load` at once
This commit is contained in:
Adam Rutkowski 2022-02-28 14:51:57 +01:00 committed by GitHub
commit 24247aa86c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1990,22 +1990,32 @@ struct {
/* Parser of option for IO class command */
int standby_handle_option(char *opt, const char **arg)
{
if (io_class_opt_subcmd_unknown == io_class_params.subcmd) {
/* First parameters which defines sub-command */
if (!strcmp(opt, "init")) {
if (standby_opt_subcmd_unknown != standby_params.subcmd)
goto err;
standby_params.subcmd = standby_opt_subcmd_init;
return 0;
} else if (!strcmp(opt, "load")) {
if (standby_opt_subcmd_unknown != standby_params.subcmd)
goto err;
standby_params.subcmd = standby_opt_subcmd_load;
return 0;
} else if (!strcmp(opt, "detach")) {
if (standby_opt_subcmd_unknown != standby_params.subcmd)
goto err;
standby_params.subcmd = standby_opt_subcmd_detach;
return 0;
} else if (!strcmp(opt, "activate")) {
if (standby_opt_subcmd_unknown != standby_params.subcmd)
goto err;
standby_params.subcmd = standby_opt_subcmd_activate;
return 0;
}
}
if (!strcmp(opt, "cache-id")) {
if (validate_str_num(arg[0], "cache id", OCF_CACHE_ID_MIN,
@ -2038,6 +2048,12 @@ int standby_handle_option(char *opt, const char **arg)
}
return 0;
err:
cas_printf(LOG_ERR, "Can't use '%s' and '%s' options simultaneously\n",
opt, standby_params_options[standby_params.subcmd].long_name);
return FAILURE;
}
/* Check if all required command were set depending on command type */