qga: Replace 'blacklist' command line and config file options by 'block-rpcs'

Let's use a more appropriate wording for this command line and config
file option. The old ones are still accepted for compatibility reasons,
but marked as deprecated now so that it could be removed in a future
version of QEMU.

This change is based on earlier patches from Philippe Mathieu-Daudé,
with the idea for the new option name suggested by BALATON Zoltan.

And while we're at it, replace the "?" in the help text with "help"
since that does not have the problem of conflicting with the wildcard
character of the shells.

Message-Id: <20220727092135.302915-2-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2022-07-27 11:21:33 +02:00
parent 7eab180f90
commit 582a098e6c
5 changed files with 38 additions and 11 deletions

View File

@ -370,3 +370,22 @@ be deleted from this tree.
New deployments should use the Rust version, and existing systems
should consider moving to it. The command line and feature set
is very close and moving should be simple.
QEMU guest agent
----------------
``--blacklist`` command line option (since 7.2)
'''''''''''''''''''''''''''''''''''''''''''''''
``--blacklist`` has been replaced by ``--block-rpcs`` (which is a better
wording for what this option does). The short form ``-b`` still stays
the same and thus is the preferred way for scripts that should run with
both, older and future versions of QEMU.
``blacklist`` config file option (since 7.2)
''''''''''''''''''''''''''''''''''''''''''''
The ``blacklist`` config file option has been renamed to ``block-rpcs``
(to be in sync with the renaming of the corresponding command line
option).

View File

@ -79,10 +79,10 @@ Options
Daemonize after startup (detach from terminal).
.. option:: -b, --blacklist=LIST
.. option:: -b, --block-rpcs=LIST
Comma-separated list of RPCs to disable (no spaces, ``?`` to list
available RPCs).
Comma-separated list of RPCs to disable (no spaces, use ``help`` to
list available RPCs).
.. option:: -D, --dump-conf
@ -125,7 +125,7 @@ pidfile string
fsfreeze-hook string
statedir string
verbose boolean
blacklist string list
block-rpcs string list
============= ===========
See also

View File

@ -260,8 +260,8 @@ QEMU_COPYRIGHT "\n"
#ifdef _WIN32
" -s, --service service commands: install, uninstall, vss-install, vss-uninstall\n"
#endif
" -b, --blacklist comma-separated list of RPCs to disable (no spaces, \"?\"\n"
" to list available RPCs)\n"
" -b, --block-rpcs comma-separated list of RPCs to disable (no spaces,\n"
" use \"help\" to list available RPCs)\n"
" -D, --dump-conf dump a qemu-ga config file based on current config\n"
" options / command-line parameters to stdout\n"
" -r, --retry-path attempt re-opening path if it's unavailable or closed\n"
@ -963,6 +963,7 @@ static void config_load(GAConfig *config)
GError *gerr = NULL;
GKeyFile *keyfile;
g_autofree char *conf = g_strdup(g_getenv("QGA_CONF")) ?: get_relocated_path(QGA_CONF_DEFAULT);
const gchar *blockrpcs_key = "block-rpcs";
/* read system config */
keyfile = g_key_file_new();
@ -1009,9 +1010,15 @@ static void config_load(GAConfig *config)
config->retry_path =
g_key_file_get_boolean(keyfile, "general", "retry-path", &gerr);
}
if (g_key_file_has_key(keyfile, "general", "blacklist", NULL)) {
g_warning("config using deprecated 'blacklist' key, should be replaced"
" with the 'block-rpcs' key.");
blockrpcs_key = "blacklist";
}
if (g_key_file_has_key(keyfile, "general", blockrpcs_key, NULL)) {
config->bliststr =
g_key_file_get_string(keyfile, "general", "blacklist", &gerr);
g_key_file_get_string(keyfile, "general", blockrpcs_key, &gerr);
config->blacklist = g_list_concat(config->blacklist,
split_list(config->bliststr, ","));
}
@ -1073,7 +1080,7 @@ static void config_dump(GAConfig *config)
g_key_file_set_boolean(keyfile, "general", "retry-path",
config->retry_path);
tmp = list_join(config->blacklist, ',');
g_key_file_set_string(keyfile, "general", "blacklist", tmp);
g_key_file_set_string(keyfile, "general", "block-rpcs", tmp);
g_free(tmp);
tmp = g_key_file_to_data(keyfile, NULL, &error);
@ -1105,7 +1112,8 @@ static void config_parse(GAConfig *config, int argc, char **argv)
{ "method", 1, NULL, 'm' },
{ "path", 1, NULL, 'p' },
{ "daemonize", 0, NULL, 'd' },
{ "blacklist", 1, NULL, 'b' },
{ "block-rpcs", 1, NULL, 'b' },
{ "blacklist", 1, NULL, 'b' }, /* deprecated alias for 'block-rpcs' */
#ifdef _WIN32
{ "service", 1, NULL, 's' },
#endif

View File

@ -5,4 +5,4 @@ path=/path/to/org.qemu.guest_agent.0
pidfile=/var/foo/qemu-ga.pid
statedir=/var/state
verbose=true
blacklist=guest-ping;guest-get-time
block-rpcs=guest-ping;guest-get-time

View File

@ -729,7 +729,7 @@ static void test_qga_config(gconstpointer data)
g_assert_true(g_key_file_get_boolean(kf, "general", "verbose", &error));
g_assert_no_error(error);
strv = g_key_file_get_string_list(kf, "general", "blacklist", &n, &error);
strv = g_key_file_get_string_list(kf, "general", "block-rpcs", &n, &error);
g_assert_cmpint(n, ==, 2);
g_assert_true(g_strv_contains((const char * const *)strv,
"guest-ping"));