qga: don't disable fsfreeze commands if vss_init fails
The fsfreeze commands are already written to report an error if vss_init() fails. Reporting a more specific error message is more helpful than a generic "command is disabled" message, which cannot between an admin config decision and lack of platform support. Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240712132459.3974109-19-berrange@redhat.com> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
parent
4be55a4fce
commit
b81837f0d3
@ -1203,7 +1203,7 @@ GuestFilesystemInfoList *qmp_guest_get_fsinfo(Error **errp)
|
|||||||
GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **errp)
|
GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **errp)
|
||||||
{
|
{
|
||||||
if (!vss_initialized()) {
|
if (!vss_initialized()) {
|
||||||
error_setg(errp, QERR_UNSUPPORTED);
|
error_setg(errp, "fsfreeze not possible as VSS failed to initialize");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1231,7 +1231,7 @@ int64_t qmp_guest_fsfreeze_freeze_list(bool has_mountpoints,
|
|||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
if (!vss_initialized()) {
|
if (!vss_initialized()) {
|
||||||
error_setg(errp, QERR_UNSUPPORTED);
|
error_setg(errp, "fsfreeze not possible as VSS failed to initialize");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1266,7 +1266,7 @@ int64_t qmp_guest_fsfreeze_thaw(Error **errp)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!vss_initialized()) {
|
if (!vss_initialized()) {
|
||||||
error_setg(errp, QERR_UNSUPPORTED);
|
error_setg(errp, "fsfreeze not possible as VSS failed to initialize");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1961,18 +1961,6 @@ done:
|
|||||||
/* add unsupported commands to the list of blocked RPCs */
|
/* add unsupported commands to the list of blocked RPCs */
|
||||||
GList *ga_command_init_blockedrpcs(GList *blockedrpcs)
|
GList *ga_command_init_blockedrpcs(GList *blockedrpcs)
|
||||||
{
|
{
|
||||||
if (!vss_init(true)) {
|
|
||||||
g_debug("vss_init failed, vss commands are going to be disabled");
|
|
||||||
const char *list[] = {
|
|
||||||
"guest-get-fsinfo", "guest-fsfreeze-status",
|
|
||||||
"guest-fsfreeze-freeze", "guest-fsfreeze-thaw", NULL};
|
|
||||||
char **p = (char **)list;
|
|
||||||
|
|
||||||
while (*p) {
|
|
||||||
blockedrpcs = g_list_append(blockedrpcs, g_strdup(*p++));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return blockedrpcs;
|
return blockedrpcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1395,6 +1395,10 @@ static GAState *initialize_agent(GAConfig *config, int socket_activation)
|
|||||||
" '%s': %s", config->state_dir, strerror(errno));
|
" '%s': %s", config->state_dir, strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!vss_init(true)) {
|
||||||
|
g_debug("vss_init failed, vss commands will not function");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ga_is_frozen(s)) {
|
if (ga_is_frozen(s)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user