Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 835697 Details for
Bug 1038814
regression in event deregistration
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
test file
test.c (text/plain), 6.67 KB, created by
zhe peng
on 2013-12-12 09:21:27 UTC
(
hide
)
Description:
test file
Filename:
MIME Type:
Creator:
zhe peng
Created:
2013-12-12 09:21:27 UTC
Size:
6.67 KB
patch
obsolete
>#include <libvirt/libvirt.h> >#include <libvirt/virterror.h> >#include <stdio.h> >#include <stdlib.h> >#include <signal.h> >#include <string.h> > >int run = 1; > >static void stop(int sig) >{ > printf("Exiting on signal %d\n", sig); > run = 0; >} > >const char *eventToString(int event) { > const char *ret = ""; > switch ((virDomainEventType) event) { > case VIR_DOMAIN_EVENT_DEFINED: > ret ="Defined"; > break; > case VIR_DOMAIN_EVENT_UNDEFINED: > ret ="Undefined"; > break; > case VIR_DOMAIN_EVENT_STARTED: > ret ="Started"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED: > ret ="Suspended"; > break; > case VIR_DOMAIN_EVENT_RESUMED: > ret ="Resumed"; > break; > case VIR_DOMAIN_EVENT_STOPPED: > ret ="Stopped"; > break; > case VIR_DOMAIN_EVENT_SHUTDOWN: > ret = "Shutdown"; > break; > } > return ret; >} > >static const char *eventDetailToString(int event, int detail) { > const char *ret = ""; > switch ((virDomainEventType) 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_UNDEFINED: > if (detail == VIR_DOMAIN_EVENT_UNDEFINED_REMOVED) > ret = "Removed"; > break; > case VIR_DOMAIN_EVENT_STARTED: > switch ((virDomainEventStartedDetailType) 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; > case VIR_DOMAIN_EVENT_STARTED_FROM_SNAPSHOT: > ret = "Snapshot"; > break; > case VIR_DOMAIN_EVENT_STARTED_WAKEUP: > ret = "Event wakeup"; > break; > } > break; > case VIR_DOMAIN_EVENT_SUSPENDED: > switch ((virDomainEventSuspendedDetailType) detail) { > case VIR_DOMAIN_EVENT_SUSPENDED_PAUSED: > ret = "Paused"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED: > ret = "Migrated"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED_IOERROR: > ret = "I/O Error"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED_WATCHDOG: > ret = "Watchdog"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED_RESTORED: > ret = "Restored"; > break; > case VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT: > ret = "Snapshot"; > break; > } > break; > case VIR_DOMAIN_EVENT_RESUMED: > switch ((virDomainEventResumedDetailType) detail) { > case VIR_DOMAIN_EVENT_RESUMED_UNPAUSED: > ret = "Unpaused"; > break; > case VIR_DOMAIN_EVENT_RESUMED_MIGRATED: > ret = "Migrated"; > break; > case VIR_DOMAIN_EVENT_RESUMED_FROM_SNAPSHOT: > ret = "Snapshot"; > break; > } > break; > case VIR_DOMAIN_EVENT_STOPPED: > switch ((virDomainEventStoppedDetailType) 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; > case VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT: > ret = "Snapshot"; > break; > } > break; > case VIR_DOMAIN_EVENT_SHUTDOWN: > switch ((virDomainEventShutdownDetailType) detail) { > case VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED: > ret = "Finished"; > break; > } > break; > } > return ret; >} >static int myDomainEventCallback2(virConnectPtr conn, > virDomainPtr dom, > int event, > int detail, > void *opaque) >{ > printf("%s EVENT: Domain %s(%d) %s %s\n", __func__, virDomainGetName(dom), > virDomainGetID(dom), eventToString(event), > eventDetailToString(event, detail)); > return 0; >} > >static void myFreeFunc(void *opaque) >{ > char *str = opaque; > printf("%s: Freeing [%s]\n", __func__, str); > free(str); >} > >int main(int argc, char *argv[]) { > virConnectPtr conn = NULL; > virDomainPtr dom1 = NULL, dom2 = NULL; > int callback1ret = -1, callback2ret = -1; > int ret = -1; > struct sigaction action_stop; > > memset(&action_stop, 0, sizeof(action_stop)); > action_stop.sa_handler = stop; > sigaction(SIGTERM, &action_stop, NULL); > sigaction(SIGINT, &action_stop, NULL); > > virEventRegisterDefaultImpl(); > > conn = virConnectOpenAuth(argc > 1 ? argv[1] : NULL, virConnectAuthPtrDefault, 0); > > if (!conn) { > fprintf(stderr, "conn\n"); > return -1; > } > > dom1 = virDomainLookupByName(conn, argc > 2 ? argv[2] : "rhel6"); > > callback1ret = virConnectDomainEventRegisterAny(conn, > dom1, > VIR_DOMAIN_EVENT_ID_REBOOT, > VIR_DOMAIN_EVENT_CALLBACK(myDomainEventCallback2), > strdup("cb1"), myFreeFunc); > > if (callback1ret < 0) { > fprintf(stderr, ":( cb1\n"); > goto cleanup; > } > > if (virConnectSetKeepAlive(conn, 5, 3) < 0) { > fprintf(stderr, "ka\n"); > goto cleanup; > } > > while (run && virConnectIsAlive(conn) == 1) { > if (virEventRunDefaultImpl() < 0) { > fprintf(stderr, "event\n"); > } > } > > > ret = 0; > >cleanup: > if (callback1ret >= 0) > virConnectDomainEventDeregisterAny(conn, callback1ret); > > if (dom1) > virDomainFree(dom1); > > if (conn) > virConnectClose(conn); > > return ret; >} >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 1038814
: 835697