[libvirt] [libvirt-perl][PATCH 0/2] Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED

Ján Tomko (2): Reuse VIR_DOMAIN_EVENT_ID_DEVICE callbacks Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED constant Changes | 3 ++- Virt.xs | 48 +++++++----------------------------------------- lib/Sys/Virt/Domain.pm | 4 ++++ t/030-api-coverage.t | 1 + 4 files changed, 14 insertions(+), 42 deletions(-) -- 2.7.3

The callbacks for VIR_DOMAIN_EVENT_ID_DEVICE_ADDED and _REMOVED are identical. Reuse them as _domain_event_device_generic_callback. --- Changes | 2 +- Virt.xs | 44 +++----------------------------------------- 2 files changed, 4 insertions(+), 42 deletions(-) diff --git a/Changes b/Changes index 4548d5d..3a73bc8 100644 --- a/Changes +++ b/Changes @@ -2,7 +2,7 @@ Revision history for perl module Sys::Virt 1.3.4 2016-00-00 - - XXX + - Reuse VIR_DOMAIN_EVENT_ID_DEVICE callbacks 1.3.3 2016-04-07 diff --git a/Virt.xs b/Virt.xs index 50ed6cd..6da8f64 100644 --- a/Virt.xs +++ b/Virt.xs @@ -894,45 +894,7 @@ _domain_event_balloonchange_callback(virConnectPtr con, static int -_domain_event_device_added_callback(virConnectPtr con, - virDomainPtr dom, - const char *devAlias, - void *opaque) -{ - AV *data = opaque; - SV **self; - SV **cb; - SV *domref; - dSP; - - self = av_fetch(data, 0, 0); - cb = av_fetch(data, 1, 0); - - SvREFCNT_inc(*self); - - ENTER; - SAVETMPS; - - PUSHMARK(SP); - XPUSHs(*self); - domref = sv_newmortal(); - sv_setref_pv(domref, "Sys::Virt::Domain", (void*)dom); - virDomainRef(dom); - XPUSHs(domref); - XPUSHs(sv_2mortal(newSVpv(devAlias, 0))); - PUTBACK; - - call_sv(*cb, G_DISCARD); - - FREETMPS; - LEAVE; - - return 0; -} - - -static int -_domain_event_device_removed_callback(virConnectPtr con, +_domain_event_device_generic_callback(virConnectPtr con, virDomainPtr dom, const char *devAlias, void *opaque) @@ -3098,10 +3060,10 @@ PREINIT: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_balloonchange_callback); break; case VIR_DOMAIN_EVENT_ID_DEVICE_ADDED: - callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_device_added_callback); + callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_device_generic_callback); break; case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED: - callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_device_removed_callback); + callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_device_generic_callback); break; case VIR_DOMAIN_EVENT_ID_TUNABLE: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_tunable_callback); -- 2.7.3

Point it to _domain_event_device_generic_callback. --- Changes | 1 + Virt.xs | 4 ++++ lib/Sys/Virt/Domain.pm | 4 ++++ t/030-api-coverage.t | 1 + 4 files changed, 10 insertions(+) diff --git a/Changes b/Changes index 3a73bc8..a54cf71 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,7 @@ Revision history for perl module Sys::Virt 1.3.4 2016-00-00 + - Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED constant - Reuse VIR_DOMAIN_EVENT_ID_DEVICE callbacks 1.3.3 2016-04-07 diff --git a/Virt.xs b/Virt.xs index 6da8f64..85448c2 100644 --- a/Virt.xs +++ b/Virt.xs @@ -3077,6 +3077,9 @@ PREINIT: case VIR_DOMAIN_EVENT_ID_JOB_COMPLETED: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_job_completed_callback); break; + case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED: + callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_device_generic_callback); + break; default: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_generic_callback); break; @@ -7814,6 +7817,7 @@ BOOT: REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE, EVENT_ID_AGENT_LIFECYCLE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_MIGRATION_ITERATION, EVENT_ID_MIGRATION_ITERATION); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_JOB_COMPLETED, EVENT_ID_JOB_COMPLETED); + REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED, EVENT_ID_DEVICE_REMOVAL_FAILED); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_WATCHDOG_NONE, EVENT_WATCHDOG_NONE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_WATCHDOG_PAUSE, EVENT_WATCHDOG_PAUSE); diff --git a/lib/Sys/Virt/Domain.pm b/lib/Sys/Virt/Domain.pm index b095dbd..bafe9ba 100644 --- a/lib/Sys/Virt/Domain.pm +++ b/lib/Sys/Virt/Domain.pm @@ -3012,6 +3012,10 @@ method. =back +=item Sys::Virt::Domain::EVENT_ID_DEVICE_REMOVAL_FAILED + +Guest device removal has failed. + =head2 IO ERROR EVENT CONSTANTS These constants describe what action was taken due to the diff --git a/t/030-api-coverage.t b/t/030-api-coverage.t index d0c856a..17c1b3f 100644 --- a/t/030-api-coverage.t +++ b/t/030-api-coverage.t @@ -93,6 +93,7 @@ virConnectDomainEventTunableCallback virConnectDomainEventAgentLifecycleCallback virConnectDomainEventMigrationIterationCallback virConnectDomainEventJobCompletedCallback +virConnectDomainEventDeviceRemovalFailedCallback virConnectNetworkEventLifecycleCallback -- 2.7.3

On Thu, Apr 14, 2016 at 01:04:13PM +0200, Ján Tomko wrote:
Ján Tomko (2): Reuse VIR_DOMAIN_EVENT_ID_DEVICE callbacks Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED constant
Changes | 3 ++- Virt.xs | 48 +++++++----------------------------------------- lib/Sys/Virt/Domain.pm | 4 ++++ t/030-api-coverage.t | 1 + 4 files changed, 14 insertions(+), 42 deletions(-)
ACK to both. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
participants (2)
-
Daniel P. Berrange
-
Ján Tomko