mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Add domain events detail information
This commit is contained in:
@@ -35,9 +35,9 @@ void *t_opaque = NULL;
|
||||
/* Prototypes */
|
||||
const char *eventToString(int event);
|
||||
int myDomainEventCallback1 (virConnectPtr conn, virDomainPtr dom,
|
||||
int event, void *opaque);
|
||||
int event, int detail, void *opaque);
|
||||
int myDomainEventCallback2 (virConnectPtr conn, virDomainPtr dom,
|
||||
int event, void *opaque);
|
||||
int event, int detail, void *opaque);
|
||||
int myEventAddHandleFunc (int fd, int event,
|
||||
virEventHandleCallback cb, void *opaque);
|
||||
void myEventUpdateHandleFunc(int fd, int event);
|
||||
@@ -56,13 +56,13 @@ void usage(const char *pname);
|
||||
/* Callback functions */
|
||||
|
||||
const char *eventToString(int event) {
|
||||
const char *ret = NULL;
|
||||
const char *ret = "";
|
||||
switch(event) {
|
||||
case VIR_DOMAIN_EVENT_ADDED:
|
||||
ret ="Added";
|
||||
case VIR_DOMAIN_EVENT_DEFINED:
|
||||
ret ="Defined";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_REMOVED:
|
||||
ret ="Removed";
|
||||
case VIR_DOMAIN_EVENT_UNDEFINED:
|
||||
ret ="Undefined";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STARTED:
|
||||
ret ="Started";
|
||||
@@ -76,14 +76,70 @@ const char *eventToString(int event) {
|
||||
case VIR_DOMAIN_EVENT_STOPPED:
|
||||
ret ="Stopped";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_SAVED:
|
||||
ret ="Saved";
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const char *eventDetailToString(int event, int detail) {
|
||||
const char *ret = "";
|
||||
switch(event) {
|
||||
case VIR_DOMAIN_EVENT_DEFINED:
|
||||
if (detail == VIR_DOMAIN_EVENT_DEFINED_ADDED)
|
||||
ret = "Added";
|
||||
else if (detail == VIR_DOMAIN_EVENT_DEFINED_UPDATED)
|
||||
ret = "Updated";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_RESTORED:
|
||||
ret ="Restored";
|
||||
case VIR_DOMAIN_EVENT_UNDEFINED:
|
||||
if (detail == VIR_DOMAIN_EVENT_UNDEFINED_REMOVED)
|
||||
ret = "Removed";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STARTED:
|
||||
switch (detail) {
|
||||
case VIR_DOMAIN_EVENT_STARTED_BOOTED:
|
||||
ret = "Booted";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STARTED_MIGRATED:
|
||||
ret = "Migrated";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STARTED_RESTORED:
|
||||
ret = "Restored";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_SUSPENDED:
|
||||
if (detail == VIR_DOMAIN_EVENT_SUSPENDED_PAUSED)
|
||||
ret = "Unpaused";
|
||||
else if (detail == VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED)
|
||||
ret = "Migrated";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_RESUMED:
|
||||
if (detail == VIR_DOMAIN_EVENT_RESUMED_UNPAUSED)
|
||||
ret = "Unpaused";
|
||||
else if (detail == VIR_DOMAIN_EVENT_RESUMED_MIGRATED)
|
||||
ret = "Migrated";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED:
|
||||
switch (detail) {
|
||||
case VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN:
|
||||
ret = "Shutdown";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED_DESTROYED:
|
||||
ret = "Destroyed";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED_CRASHED:
|
||||
ret = "Crashed";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED_MIGRATED:
|
||||
ret = "Migrated";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED_SAVED:
|
||||
ret = "Failed";
|
||||
break;
|
||||
case VIR_DOMAIN_EVENT_STOPPED_FAILED:
|
||||
ret = "Failed";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ret ="Unknown Event";
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -91,20 +147,24 @@ const char *eventToString(int event) {
|
||||
int myDomainEventCallback1 (virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
virDomainPtr dom,
|
||||
int event,
|
||||
int detail,
|
||||
void *opaque ATTRIBUTE_UNUSED)
|
||||
{
|
||||
printf("%s EVENT: Domain %s(%d) %s\n", __FUNCTION__, virDomainGetName(dom),
|
||||
virDomainGetID(dom), eventToString(event));
|
||||
printf("%s EVENT: Domain %s(%d) %s %s\n", __FUNCTION__, virDomainGetName(dom),
|
||||
virDomainGetID(dom), eventToString(event),
|
||||
eventDetailToString(event, detail));
|
||||
return 0;
|
||||
}
|
||||
|
||||
int myDomainEventCallback2 (virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
virDomainPtr dom,
|
||||
int event,
|
||||
int detail,
|
||||
void *opaque ATTRIBUTE_UNUSED)
|
||||
{
|
||||
printf("%s EVENT: Domain %s(%d) %s\n", __FUNCTION__, virDomainGetName(dom),
|
||||
virDomainGetID(dom), eventToString(event));
|
||||
printf("%s EVENT: Domain %s(%d) %s %s\n", __FUNCTION__, virDomainGetName(dom),
|
||||
virDomainGetID(dom), eventToString(event),
|
||||
eventDetailToString(event, detail));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,11 +32,11 @@ def eventToString(event):
|
||||
"Restored" );
|
||||
return eventStrings[event];
|
||||
|
||||
def myDomainEventCallback1 (conn, dom, event, opaque):
|
||||
print "myDomainEventCallback1 EVENT: Domain %s(%s) %s" % (dom.name(), dom.ID(), eventToString(event))
|
||||
def myDomainEventCallback1 (conn, dom, event, detail, opaque):
|
||||
print "myDomainEventCallback1 EVENT: Domain %s(%s) %s %d" % (dom.name(), dom.ID(), eventToString(event), detail)
|
||||
|
||||
def myDomainEventCallback2 (conn, dom, event, opaque):
|
||||
print "myDomainEventCallback2 EVENT: Domain %s(%s) %s" % (dom.name(), dom.ID(), eventToString(event))
|
||||
def myDomainEventCallback2 (conn, dom, event, detail, opaque):
|
||||
print "myDomainEventCallback2 EVENT: Domain %s(%s) %s %d" % (dom.name(), dom.ID(), eventToString(event), detail)
|
||||
|
||||
#####################################################
|
||||
# EventImpl Functions
|
||||
|
||||
Reference in New Issue
Block a user