mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
hooks: let virCommand do the error reporting
The code was reporting raw exit status without decoding it into normal vs. signal exit. virCommandRun already does this, but with a different error type, so all we have to do is recast the error to the correct type. Reported by li guang. * src/util/hooks.c (virHookCall): Simplify.
This commit is contained in:
parent
60dea2c6bf
commit
9c74414ded
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* hooks.c: implementation of the synchronous hooks support
|
||||
*
|
||||
* Copyright (C) 2010-2011 Red Hat, Inc.
|
||||
* Copyright (C) 2010-2012 Red Hat, Inc.
|
||||
* Copyright (C) 2010 Daniel Veillard
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@ -206,7 +206,6 @@ virHookCall(int driver,
|
||||
char **output)
|
||||
{
|
||||
int ret;
|
||||
int exitstatus;
|
||||
char *path;
|
||||
virCommandPtr cmd;
|
||||
const char *drvstr;
|
||||
@ -279,12 +278,11 @@ virHookCall(int driver,
|
||||
if (output)
|
||||
virCommandSetOutputBuffer(cmd, output);
|
||||
|
||||
ret = virCommandRun(cmd, &exitstatus);
|
||||
if (ret == 0 && exitstatus != 0) {
|
||||
virReportError(VIR_ERR_HOOK_SCRIPT_FAILED,
|
||||
_("Hook script %s %s failed with error code %d"),
|
||||
path, drvstr, exitstatus);
|
||||
ret = -1;
|
||||
ret = virCommandRun(cmd, NULL);
|
||||
if (ret < 0) {
|
||||
/* Convert INTERNAL_ERROR into known error. */
|
||||
virErrorPtr err = virGetLastError();
|
||||
virReportError(VIR_ERR_HOOK_SCRIPT_FAILED, "%s", err->message);
|
||||
}
|
||||
|
||||
virCommandFree(cmd);
|
||||
|
Loading…
x
Reference in New Issue
Block a user