mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
Add sentinel for virErrorDomain enum
Add a VIR_ERR_DOMAIN_LAST sentinel for virErrorDomain and replace the virErrorDomainName function by a VIR_ENUM_IMPL In the process the naming of error domains is sanitized * src/util/virterror.c: Use VIR_ENUM_IMPL for converting error domains to strings * include/libvirt/virterror.h: Add VIR_ERR_DOMAIN_LAST
This commit is contained in:
parent
45b43a8cab
commit
1cc2034a72
@ -43,51 +43,64 @@ typedef enum {
|
||||
VIR_FROM_XEND = 2, /* Error at connection with xend daemon */
|
||||
VIR_FROM_XENSTORE = 3, /* Error at connection with xen store */
|
||||
VIR_FROM_SEXPR = 4, /* Error in the S-Expression code */
|
||||
|
||||
VIR_FROM_XML = 5, /* Error in the XML code */
|
||||
VIR_FROM_DOM = 6, /* Error when operating on a domain */
|
||||
VIR_FROM_RPC = 7, /* Error in the XML-RPC code */
|
||||
VIR_FROM_PROXY = 8, /* Error in the proxy code; unused since
|
||||
0.8.6 */
|
||||
VIR_FROM_CONF = 9, /* Error in the configuration file handling */
|
||||
|
||||
VIR_FROM_QEMU = 10, /* Error at the QEMU daemon */
|
||||
VIR_FROM_NET = 11, /* Error when operating on a network */
|
||||
VIR_FROM_TEST = 12, /* Error from test driver */
|
||||
VIR_FROM_REMOTE = 13, /* Error from remote driver */
|
||||
VIR_FROM_OPENVZ = 14, /* Error from OpenVZ driver */
|
||||
|
||||
VIR_FROM_XENXM = 15, /* Error at Xen XM layer */
|
||||
VIR_FROM_STATS_LINUX = 16, /* Error in the Linux Stats code */
|
||||
VIR_FROM_LXC = 17, /* Error from Linux Container driver */
|
||||
VIR_FROM_STORAGE = 18, /* Error from storage driver */
|
||||
VIR_FROM_NETWORK = 19, /* Error from network config */
|
||||
|
||||
VIR_FROM_DOMAIN = 20, /* Error from domain config */
|
||||
VIR_FROM_UML = 21, /* Error at the UML driver */
|
||||
VIR_FROM_NODEDEV = 22, /* Error from node device monitor */
|
||||
VIR_FROM_XEN_INOTIFY = 23, /* Error from xen inotify layer */
|
||||
VIR_FROM_SECURITY = 24, /* Error from security framework */
|
||||
|
||||
VIR_FROM_VBOX = 25, /* Error from VirtualBox driver */
|
||||
VIR_FROM_INTERFACE = 26, /* Error when operating on an interface */
|
||||
VIR_FROM_ONE = 27, /* The OpenNebula driver no longer exists.
|
||||
Retained for ABI/API compat only */
|
||||
VIR_FROM_ESX = 28, /* Error from ESX driver */
|
||||
VIR_FROM_PHYP = 29, /* Error from IBM power hypervisor */
|
||||
|
||||
VIR_FROM_SECRET = 30, /* Error from secret storage */
|
||||
VIR_FROM_CPU = 31, /* Error from CPU driver */
|
||||
VIR_FROM_XENAPI = 32, /* Error from XenAPI */
|
||||
VIR_FROM_NWFILTER = 33, /* Error from network filter driver */
|
||||
VIR_FROM_HOOK = 34, /* Error from Synchronous hooks */
|
||||
|
||||
VIR_FROM_DOMAIN_SNAPSHOT = 35,/* Error from domain snapshot */
|
||||
VIR_FROM_AUDIT = 36, /* Error from auditing subsystem */
|
||||
VIR_FROM_SYSINFO = 37, /* Error from sysinfo/SMBIOS */
|
||||
VIR_FROM_STREAMS = 38, /* Error from I/O streams */
|
||||
VIR_FROM_VMWARE = 39, /* Error from VMware driver */
|
||||
|
||||
VIR_FROM_EVENT = 40, /* Error from event loop impl */
|
||||
VIR_FROM_LIBXL = 41, /* Error from libxenlight driver */
|
||||
VIR_FROM_LOCKING = 42, /* Error from lock manager */
|
||||
VIR_FROM_HYPERV = 43, /* Error from Hyper-V driver */
|
||||
VIR_FROM_CAPABILITIES = 44, /* Error from capabilities */
|
||||
|
||||
VIR_FROM_URI = 45, /* Error from URI handling */
|
||||
VIR_FROM_AUTH = 46, /* Error from auth handling */
|
||||
VIR_FROM_DBUS = 47, /* Error from DBus */
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_ERR_DOMAIN_LAST
|
||||
# endif
|
||||
} virErrorDomain;
|
||||
|
||||
|
||||
|
@ -40,156 +40,67 @@ static virLogPriority virErrorLevelPriority(virErrorLevel level) {
|
||||
return VIR_LOG_ERROR;
|
||||
}
|
||||
|
||||
static const char *virErrorDomainName(virErrorDomain domain) {
|
||||
const char *dom = "unknown";
|
||||
switch (domain) {
|
||||
case VIR_FROM_NONE:
|
||||
dom = "";
|
||||
break;
|
||||
case VIR_FROM_XEN:
|
||||
dom = "Xen ";
|
||||
break;
|
||||
case VIR_FROM_XENAPI:
|
||||
dom = "XenAPI ";
|
||||
break;
|
||||
case VIR_FROM_LIBXL:
|
||||
dom = "xenlight ";
|
||||
break;
|
||||
case VIR_FROM_XML:
|
||||
dom = "XML ";
|
||||
break;
|
||||
case VIR_FROM_XEND:
|
||||
dom = "Xen Daemon ";
|
||||
break;
|
||||
case VIR_FROM_XENSTORE:
|
||||
dom = "Xen Store ";
|
||||
break;
|
||||
case VIR_FROM_XEN_INOTIFY:
|
||||
dom = "Xen Inotify ";
|
||||
break;
|
||||
case VIR_FROM_DOM:
|
||||
dom = "Domain ";
|
||||
break;
|
||||
case VIR_FROM_RPC:
|
||||
dom = "RPC ";
|
||||
break;
|
||||
case VIR_FROM_QEMU:
|
||||
dom = "QEMU ";
|
||||
break;
|
||||
case VIR_FROM_NET:
|
||||
dom = "Network ";
|
||||
break;
|
||||
case VIR_FROM_TEST:
|
||||
dom = "Test ";
|
||||
break;
|
||||
case VIR_FROM_REMOTE:
|
||||
dom = "Remote ";
|
||||
break;
|
||||
case VIR_FROM_SEXPR:
|
||||
dom = "S-Expr ";
|
||||
break;
|
||||
case VIR_FROM_PROXY:
|
||||
dom = "PROXY ";
|
||||
break;
|
||||
case VIR_FROM_CONF:
|
||||
dom = "Config ";
|
||||
break;
|
||||
case VIR_FROM_PHYP:
|
||||
dom = "IBM power hypervisor ";
|
||||
break;
|
||||
case VIR_FROM_OPENVZ:
|
||||
dom = "OpenVZ ";
|
||||
break;
|
||||
case VIR_FROM_VMWARE:
|
||||
dom = "VMware ";
|
||||
break;
|
||||
case VIR_FROM_XENXM:
|
||||
dom = "Xen XM ";
|
||||
break;
|
||||
case VIR_FROM_STATS_LINUX:
|
||||
dom = "Linux Stats ";
|
||||
break;
|
||||
case VIR_FROM_LXC:
|
||||
dom = "Linux Container ";
|
||||
break;
|
||||
case VIR_FROM_STORAGE:
|
||||
dom = "Storage ";
|
||||
break;
|
||||
case VIR_FROM_NETWORK:
|
||||
dom = "Network Config ";
|
||||
break;
|
||||
case VIR_FROM_DOMAIN:
|
||||
dom = "Domain Config ";
|
||||
break;
|
||||
case VIR_FROM_NODEDEV:
|
||||
dom = "Node Device ";
|
||||
break;
|
||||
case VIR_FROM_UML:
|
||||
dom = "UML ";
|
||||
break;
|
||||
case VIR_FROM_SECURITY:
|
||||
dom = "Security Labeling ";
|
||||
break;
|
||||
case VIR_FROM_VBOX:
|
||||
dom = "VBOX ";
|
||||
break;
|
||||
case VIR_FROM_INTERFACE:
|
||||
dom = "Interface ";
|
||||
break;
|
||||
case VIR_FROM_ONE:
|
||||
dom = "ONE ";
|
||||
break;
|
||||
case VIR_FROM_ESX:
|
||||
dom = "ESX ";
|
||||
break;
|
||||
case VIR_FROM_SECRET:
|
||||
dom = "Secret Storage ";
|
||||
break;
|
||||
case VIR_FROM_CPU:
|
||||
dom = "CPU ";
|
||||
break;
|
||||
case VIR_FROM_NWFILTER:
|
||||
dom = "Network Filter ";
|
||||
break;
|
||||
case VIR_FROM_HOOK:
|
||||
dom = "Sync Hook ";
|
||||
break;
|
||||
case VIR_FROM_DOMAIN_SNAPSHOT:
|
||||
dom = "Domain Snapshot ";
|
||||
break;
|
||||
case VIR_FROM_AUDIT:
|
||||
dom = "Audit ";
|
||||
break;
|
||||
case VIR_FROM_SYSINFO:
|
||||
dom = "Sysinfo ";
|
||||
break;
|
||||
case VIR_FROM_STREAMS:
|
||||
dom = "Streams ";
|
||||
break;
|
||||
case VIR_FROM_EVENT:
|
||||
dom = "Events ";
|
||||
break;
|
||||
case VIR_FROM_LOCKING:
|
||||
dom = "Locking ";
|
||||
break;
|
||||
case VIR_FROM_HYPERV:
|
||||
dom = "Hyper-V ";
|
||||
break;
|
||||
case VIR_FROM_CAPABILITIES:
|
||||
dom = "Capabilities ";
|
||||
break;
|
||||
case VIR_FROM_URI:
|
||||
dom = "URI ";
|
||||
break;
|
||||
case VIR_FROM_AUTH:
|
||||
dom = "Auth ";
|
||||
break;
|
||||
case VIR_FROM_DBUS:
|
||||
dom = "DBus ";
|
||||
break;
|
||||
}
|
||||
return dom;
|
||||
}
|
||||
|
||||
VIR_ENUM_DECL(virErrorDomain)
|
||||
VIR_ENUM_IMPL(virErrorDomain, VIR_ERR_DOMAIN_LAST,
|
||||
"", /* 0 */
|
||||
"Xen Driver",
|
||||
"Xen Daemon",
|
||||
"Xen Store",
|
||||
"S-Expression",
|
||||
|
||||
"XML Util", /* 5 */
|
||||
"Domain",
|
||||
"XML-RPC",
|
||||
"Proxy Daemon",
|
||||
"Config File",
|
||||
|
||||
"QEMU Driver", /* 10 */
|
||||
"Network",
|
||||
"Test Driver",
|
||||
"Remote Driver",
|
||||
"OpenVZ Driver",
|
||||
|
||||
"Xen XM Driver", /* 15 */
|
||||
"Linux Statistics",
|
||||
"LXC Driver",
|
||||
"Storage Driver",
|
||||
"Network Driver",
|
||||
|
||||
"Domain Config", /* 20 */
|
||||
"User Mode Linux Driver",
|
||||
"Node Device Driver",
|
||||
"Xen Inotify Driver",
|
||||
"Security Driver",
|
||||
|
||||
"VirtualBox Driver", /* 25 */
|
||||
"Network Interface Driver",
|
||||
"Open Nebula Driver",
|
||||
"ESX Driver",
|
||||
"Power Hypervisor Driver",
|
||||
|
||||
"Secrets Driver", /* 30 */
|
||||
"CPU Driver",
|
||||
"XenAPI Driver",
|
||||
"Network Filter Driver",
|
||||
"Lifecycle Hook",
|
||||
|
||||
"Domain Snapshot", /* 35 */
|
||||
"Audit Utils",
|
||||
"Sysinfo Utils",
|
||||
"I/O Stream Utils",
|
||||
"VMWare Driver",
|
||||
|
||||
"Event Loop", /* 40 */
|
||||
"Xen Light Driver",
|
||||
"Lock Driver",
|
||||
"Hyper-V Driver",
|
||||
"Capabilities Utils",
|
||||
|
||||
"URI Utils", /* 45 */
|
||||
"Authentication Utils",
|
||||
"DBus Utils"
|
||||
)
|
||||
|
||||
|
||||
/*
|
||||
@ -585,7 +496,9 @@ virDefaultErrorFunc(virErrorPtr err)
|
||||
lvl = _("error");
|
||||
break;
|
||||
}
|
||||
dom = virErrorDomainName(err->domain);
|
||||
dom = virErrorDomainTypeToString(err->domain);
|
||||
if (!dom)
|
||||
dom = "Unknown";
|
||||
if ((err->dom != NULL) && (err->code != VIR_ERR_INVALID_DOMAIN)) {
|
||||
domain = err->dom->name;
|
||||
} else if ((err->net != NULL) && (err->code != VIR_ERR_INVALID_NETWORK)) {
|
||||
@ -594,13 +507,13 @@ virDefaultErrorFunc(virErrorPtr err)
|
||||
len = strlen(err->message);
|
||||
if ((err->domain == VIR_FROM_XML) && (err->code == VIR_ERR_XML_DETAIL) &&
|
||||
(err->int1 != 0))
|
||||
fprintf(stderr, "libvir: %s%s %s%s: line %d: %s",
|
||||
fprintf(stderr, "libvir: %s %s %s%s: line %d: %s",
|
||||
dom, lvl, domain, network, err->int1, err->message);
|
||||
else if ((len == 0) || (err->message[len - 1] != '\n'))
|
||||
fprintf(stderr, "libvir: %s%s %s%s: %s\n",
|
||||
fprintf(stderr, "libvir: %s %s %s%s: %s\n",
|
||||
dom, lvl, domain, network, err->message);
|
||||
else
|
||||
fprintf(stderr, "libvir: %s%s %s%s: %s",
|
||||
fprintf(stderr, "libvir: %s %s %s%s: %s",
|
||||
dom, lvl, domain, network, err->message);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user