+Wed May 20 15:35:35 CEST 2009 Daniel Veillard <veillard@redhat.com>
+
+ * qemud/qemud.c src/console.c src/network_driver.c
+ src/node_device_conf.c src/node_device_hal.c src/storage_conf.c
+ src/util.c: cleanup of some direct stderr logging
+
Wed May 20 15:33:27 CEST 2009 Daniel Veillard <veillard@redhat.com>
* src/pci.c: small portability patch
if (__init_daemon_priv (PU_RESETGROUPS | PU_CLEARLIMITSET,
SYSTEM_UID, SYSTEM_UID, PRIV_XVM_CONTROL, NULL)) {
- fprintf (stderr, "additional privileges are required\n");
+ VIR_ERROR0(_("additional privileges are required\n"));
return -1;
}
if (priv_set (PRIV_OFF, PRIV_ALLSETS, PRIV_FILE_LINK_ANY, PRIV_PROC_INFO,
PRIV_PROC_SESSION, PRIV_PROC_EXEC, PRIV_PROC_FORK, NULL)) {
- fprintf (stderr, "failed to set reduced privileges\n");
+ VIR_ERROR0(_("failed to set reduced privileges\n"));
return -1;
}
#include "console.h"
#include "internal.h"
+#include "logging.h"
#include "util.h"
/* ie Ctrl-] as per telnet */
/* We do not want this to become the controlling TTY */
if ((ttyfd = open(tty, O_NOCTTY | O_RDWR)) < 0) {
- fprintf(stderr, _("unable to open tty %s: %s\n"),
- tty, strerror(errno));
+ VIR_ERROR(_("unable to open tty %s: %s\n"),
+ tty, strerror(errno));
return -1;
}
also ensure Ctrl-C, etc is blocked, and misc
other bits */
if (tcgetattr(STDIN_FILENO, &ttyattr) < 0) {
- fprintf(stderr, _("unable to get tty attributes: %s\n"),
- strerror(errno));
+ VIR_ERROR(_("unable to get tty attributes: %s\n"),
+ strerror(errno));
goto closetty;
}
cfmakeraw(&rawattr);
if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawattr) < 0) {
- fprintf(stderr, _("unable to set tty attributes: %s\n"),
- strerror(errno));
+ VIR_ERROR(_("unable to set tty attributes: %s\n"),
+ strerror(errno));
goto closetty;
}
if (errno == EINTR || errno == EAGAIN)
continue;
- fprintf(stderr, _("failure waiting for I/O: %s\n"),
- strerror(errno));
+ VIR_ERROR(_("failure waiting for I/O: %s\n"), strerror(errno));
goto cleanup;
}
int got, sent = 0, destfd;
if ((got = read(fds[i].fd, buf, sizeof(buf))) < 0) {
- fprintf(stderr, _("failure reading input: %s\n"),
- strerror(errno));
+ VIR_ERROR(_("failure reading input: %s\n"),
+ strerror(errno));
goto cleanup;
}
int done;
if ((done = safewrite(destfd, buf + sent, got - sent))
<= 0) {
- fprintf(stderr, _("failure writing output: %s\n"),
- strerror(errno));
+ VIR_ERROR(_("failure writing output: %s\n"),
+ strerror(errno));
goto cleanup;
}
sent += done;
#include "uuid.h"
#include "iptables.h"
#include "bridge.h"
+#include "logging.h"
#define NETWORK_PID_DIR LOCAL_STATE_DIR "/run/libvirt/network"
#define NETWORK_STATE_DIR LOCAL_STATE_DIR "/lib/libvirt/network"
static int networkShutdown(void);
-/* networkDebug statements should be changed to use this macro instead. */
-
-#define networkLog(level, msg...) fprintf(stderr, msg)
-
static int networkStartNetworkDaemon(virConnectPtr conn,
struct network_driver *driver,
virNetworkObjPtr network);
if (driver->networks.objs[i]->autostart &&
!virNetworkIsActive(driver->networks.objs[i]) &&
networkStartNetworkDaemon(NULL, driver, driver->networks.objs[i]) < 0) {
- virErrorPtr err = virGetLastError();
- networkLog(NETWORK_ERR, _("Failed to autostart network '%s': %s\n"),
- driver->networks.objs[i]->def->name,
- err ? err->message : NULL);
+ /* failed to start but already logged */
}
virNetworkObjUnlock(driver->networks.objs[i]);
}
}
if (!(driverState->iptables = iptablesContextNew())) {
- virReportOOMError(NULL);
- goto error;
+ goto out_of_memory;
}
return 0;
out_of_memory:
- networkLog (NETWORK_ERR,
- "%s", _("networkStartup: out of memory\n"));
+ virReportOOMError(NULL);
error:
if (driverState)
driverState->networkAutostartDir);
if (driverState->iptables) {
- networkLog(NETWORK_INFO,
- "%s", _("Reloading iptables rules\n"));
+ VIR_INFO0(_("Reloading iptables rules\n"));
iptablesReloadRules(driverState->iptables);
}
err_delbr1:
if ((err = brSetInterfaceUp(driver->brctl, network->def->bridge, 0))) {
char ebuf[1024];
- networkLog(NETWORK_WARN, _("Failed to bring down bridge '%s' : %s\n"),
+ VIR_WARN(_("Failed to bring down bridge '%s' : %s\n"),
network->def->bridge, virStrerror(err, ebuf, sizeof ebuf));
}
err_delbr:
if ((err = brDeleteBridge(driver->brctl, network->def->bridge))) {
char ebuf[1024];
- networkLog(NETWORK_WARN, _("Failed to delete bridge '%s' : %s\n"),
+ VIR_WARN(_("Failed to delete bridge '%s' : %s\n"),
network->def->bridge, virStrerror(err, ebuf, sizeof ebuf));
}
int err;
char *stateFile;
- networkLog(NETWORK_INFO, _("Shutting down network '%s'\n"), network->def->name);
+ VIR_INFO(_("Shutting down network '%s'\n"), network->def->name);
if (!virNetworkIsActive(network))
return 0;
char ebuf[1024];
if ((err = brSetInterfaceUp(driver->brctl, network->def->bridge, 0))) {
- networkLog(NETWORK_WARN, _("Failed to bring down bridge '%s' : %s\n"),
+ VIR_WARN(_("Failed to bring down bridge '%s' : %s\n"),
network->def->bridge, virStrerror(err, ebuf, sizeof ebuf));
}
if ((err = brDeleteBridge(driver->brctl, network->def->bridge))) {
- networkLog(NETWORK_WARN, _("Failed to delete bridge '%s' : %s\n"),
+ VIR_WARN(_("Failed to delete bridge '%s' : %s\n"),
network->def->bridge, virStrerror(err, ebuf, sizeof ebuf));
}
"80203",
"80211")
-
-#define virNodeDeviceLog(msg...) fprintf(stderr, msg)
-
virNodeDeviceObjPtr virNodeDeviceFindByName(const virNodeDeviceObjListPtr devs,
const char *name)
{
dbus_error_init(&err);
hal_ctx = libhal_ctx_new();
if (hal_ctx == NULL) {
- fprintf(stderr, "%s: libhal_ctx_new returned NULL\n", __FUNCTION__);
+ VIR_ERROR0("libhal_ctx_new returned NULL\n");
goto failure;
}
dbus_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err);
if (dbus_conn == NULL) {
- fprintf(stderr, "%s: dbus_bus_get failed\n", __FUNCTION__);
+ VIR_ERROR0("dbus_bus_get failed\n");
goto failure;
}
dbus_connection_set_exit_on_disconnect(dbus_conn, FALSE);
if (!libhal_ctx_set_dbus_connection(hal_ctx, dbus_conn)) {
- fprintf(stderr, "%s: libhal_ctx_set_dbus_connection failed\n",
- __FUNCTION__);
+ VIR_ERROR0("libhal_ctx_set_dbus_connection failed\n");
goto failure;
}
if (!libhal_ctx_init(hal_ctx, &err)) {
- fprintf(stderr, "%s: libhal_ctx_init failed\n", __FUNCTION__);
+ VIR_ERROR0("libhal_ctx_init failed\n");
goto failure;
}
remove_dbus_watch,
toggle_dbus_watch,
NULL, NULL)) {
- fprintf(stderr, "%s: dbus_connection_set_watch_functions failed\n",
- __FUNCTION__);
+ VIR_ERROR0("dbus_connection_set_watch_functions failed\n");
goto failure;
}
!libhal_ctx_set_device_new_capability(hal_ctx, device_cap_added) ||
!libhal_ctx_set_device_lost_capability(hal_ctx, device_cap_lost) ||
!libhal_ctx_set_device_property_modified(hal_ctx, device_prop_modified) ||
- !libhal_device_property_watch_all(hal_ctx, &err)) {
- fprintf(stderr, "%s: setting up HAL callbacks failed\n", __FUNCTION__);
+ !libhal_device_property_watch_all(hal_ctx, &err)) {
+ VIR_ERROR0("setting up HAL callbacks failed\n");
goto failure;
}
nodeDeviceUnlock(driverState);
udi = libhal_get_all_devices(hal_ctx, &num_devs, &err);
if (udi == NULL) {
- fprintf(stderr, "%s: libhal_get_all_devices failed\n", __FUNCTION__);
+ VIR_ERROR0("libhal_get_all_devices failed\n");
goto failure;
}
for (i = 0; i < num_devs; i++) {
failure:
if (dbus_error_is_set(&err)) {
- fprintf(stderr, "\t%s: %s\n", err.name, err.message);
+ VIR_ERROR("%s: %s\n", err.name, err.message);
dbus_error_free(&err);
}
virNodeDeviceObjListFree(&driverState->devs);
# define ULLONG_MAX ULONG_LONG_MAX
#endif
-#define virStorageLog(msg...) fprintf(stderr, msg)
+#define virStorageError(conn, code, fmt...) \
+ virReportErrorHelper(conn, VIR_FROM_STORAGE, code, __FILE__,\
+ __FUNCTION__, __LINE__, fmt)
VIR_ENUM_IMPL(virStoragePool,
VIR_STORAGE_POOL_LAST,
virStoragePoolObjPtr pool;
if (!(def = virStoragePoolDefParse(NULL, xml, file))) {
- virErrorPtr err = virGetLastError();
- virStorageLog("Error parsing storage pool config '%s' : %s",
- path, err ? err->message : NULL);
return NULL;
}
if (!virFileMatchesNameSuffix(file, def->name, ".xml")) {
- virStorageLog("Storage pool config filename '%s' does not match pool name '%s'",
+ virStorageError(conn, VIR_ERR_INVALID_STORAGE_POOL,
+ "Storage pool config filename '%s' does not match pool name '%s'",
path, def->name);
virStoragePoolDefFree(def);
return NULL;
}
if (!(pool = virStoragePoolObjAssignDef(conn, pools, def))) {
- virStorageLog("Failed to load storage pool config '%s': out of memory", path);
virStoragePoolDefFree(def);
return NULL;
}
pool->configFile = strdup(path);
if (pool->configFile == NULL) {
- virStorageLog("Failed to load storage pool config '%s': out of memory", path);
+ virReportOOMError(conn);
virStoragePoolDefFree(def);
return NULL;
}
pool->autostartLink = strdup(autostartLink);
if (pool->autostartLink == NULL) {
- virStorageLog("Failed to load storage pool config '%s': out of memory", path);
+ virReportOOMError(conn);
virStoragePoolDefFree(def);
return NULL;
}
struct dirent *entry;
if (!(dir = opendir(configDir))) {
- char ebuf[1024];
if (errno == ENOENT)
return 0;
- virStorageLog("Failed to open dir '%s': %s",
- configDir, virStrerror(errno, ebuf, sizeof ebuf));
+ virReportSystemError(conn, errno, _("Failed to open dir '%s'"),
+ configDir);
return -1;
}
if (virFileBuildPath(configDir, entry->d_name,
NULL, path, PATH_MAX) < 0) {
- virStorageLog("Config filename '%s/%s' is too long",
- configDir, entry->d_name);
+ virStorageError(conn, VIR_ERR_INTERNAL_ERROR,
+ "Config filename '%s/%s' is too long",
+ configDir, entry->d_name);
continue;
}
if (virFileBuildPath(autostartDir, entry->d_name,
NULL, autostartLink, PATH_MAX) < 0) {
- virStorageLog("Autostart link path '%s/%s' is too long",
- autostartDir, entry->d_name);
+ virStorageError(conn, VIR_ERR_INTERNAL_ERROR,
+ "Autostart link path '%s/%s' is too long",
+ autostartDir, entry->d_name);
continue;
}
# define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
-#define virLog(msg...) fprintf(stderr, msg)
-
#define VIR_FROM_THIS VIR_FROM_NONE
#define ReportError(conn, code, fmt...) \
int virFileReadAll(const char *path, int maxlen, char **buf)
{
- char ebuf[1024];
FILE *fh = fopen(path, "r");
if (fh == NULL) {
- virLog("Failed to open file '%s': %s\n",
- path, virStrerror(errno, ebuf, sizeof ebuf));
+ virReportSystemError(NULL, errno, _("Failed to open file '%s'"), path);
return -1;
}
int len = virFileReadLimFP (fh, maxlen, buf);
fclose(fh);
if (len < 0) {
- virLog("Failed to read '%s': %s\n", path,
- virStrerror(errno, ebuf, sizeof ebuf));
+ virReportSystemError(NULL, errno, _("Failed to read file '%s'"), path);
return -1;
}