Re: [libvirt] [libvirt-java] [PATCH 45/65] events: handle registration of domain lifecycle events

2014-02-21 Thread Daniel P. Berrange
On Thu, Feb 13, 2014 at 04:22:53PM +0100, Claudio Bley wrote:
 Add LifecycleListener interface which needs to be implemented
 when the user wishes to receive lifecycle change events on domains.
 
 The DomainEvent class represents the kind of event that
 occurred including details on that event.
 
 Signed-off-by: Claudio Bley cb...@av-test.de
 ---
  src/main/java/org/libvirt/Connect.java |   66 ++
  src/main/java/org/libvirt/Domain.java  |   18 +
  src/main/java/org/libvirt/event/CrashedDetail.java |   15 +
  src/main/java/org/libvirt/event/DefinedDetail.java |   17 +
  src/main/java/org/libvirt/event/DetailInfo.java|5 ++
  src/main/java/org/libvirt/event/DomainEvent.java   |   71 
 
  .../java/org/libvirt/event/DomainEventDetail.java  |7 ++
  .../java/org/libvirt/event/DomainEventType.java|   60 +
  .../java/org/libvirt/event/LifecycleListener.java  |   24 +++
  .../java/org/libvirt/event/PMSuspendedDetail.java  |   15 +
  src/main/java/org/libvirt/event/ResumedDetail.java |   20 ++
  .../java/org/libvirt/event/ShutdownDetail.java |   12 
  src/main/java/org/libvirt/event/StartedDetail.java |   30 +
  src/main/java/org/libvirt/event/StoppedDetail.java |   40 +++
  .../java/org/libvirt/event/SuspendedDetail.java|   40 +++
  .../java/org/libvirt/event/UndefinedDetail.java|7 ++
  src/main/java/org/libvirt/jna/Libvirt.java |7 ++
  17 files changed, 454 insertions(+)
  create mode 100644 src/main/java/org/libvirt/event/CrashedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/DefinedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/DetailInfo.java
  create mode 100644 src/main/java/org/libvirt/event/DomainEvent.java
  create mode 100644 src/main/java/org/libvirt/event/DomainEventDetail.java
  create mode 100644 src/main/java/org/libvirt/event/DomainEventType.java
  create mode 100644 src/main/java/org/libvirt/event/LifecycleListener.java
  create mode 100644 src/main/java/org/libvirt/event/PMSuspendedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/ResumedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/ShutdownDetail.java
  create mode 100644 src/main/java/org/libvirt/event/StartedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/StoppedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/SuspendedDetail.java
  create mode 100644 src/main/java/org/libvirt/event/UndefinedDetail.java

ACK

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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [libvirt-java] [PATCH 45/65] events: handle registration of domain lifecycle events

2014-02-21 Thread Claudio Bley
At Fri, 21 Feb 2014 11:10:22 +,
Daniel P. Berrange wrote:
 
 On Thu, Feb 13, 2014 at 04:22:53PM +0100, Claudio Bley wrote:
  Add LifecycleListener interface which needs to be implemented
  when the user wishes to receive lifecycle change events on domains.
  
  The DomainEvent class represents the kind of event that
  occurred including details on that event.
  
  Signed-off-by: Claudio Bley cb...@av-test.de
  ---
   src/main/java/org/libvirt/Connect.java |   66 
  ++
   src/main/java/org/libvirt/Domain.java  |   18 +
   src/main/java/org/libvirt/event/CrashedDetail.java |   15 +
   src/main/java/org/libvirt/event/DefinedDetail.java |   17 +
   src/main/java/org/libvirt/event/DetailInfo.java|5 ++
   src/main/java/org/libvirt/event/DomainEvent.java   |   71 
  
   .../java/org/libvirt/event/DomainEventDetail.java  |7 ++
   .../java/org/libvirt/event/DomainEventType.java|   60 +
   .../java/org/libvirt/event/LifecycleListener.java  |   24 +++
   .../java/org/libvirt/event/PMSuspendedDetail.java  |   15 +
   src/main/java/org/libvirt/event/ResumedDetail.java |   20 ++
   .../java/org/libvirt/event/ShutdownDetail.java |   12 
   src/main/java/org/libvirt/event/StartedDetail.java |   30 +
   src/main/java/org/libvirt/event/StoppedDetail.java |   40 +++
   .../java/org/libvirt/event/SuspendedDetail.java|   40 +++
   .../java/org/libvirt/event/UndefinedDetail.java|7 ++
   src/main/java/org/libvirt/jna/Libvirt.java |7 ++
   17 files changed, 454 insertions(+)
   create mode 100644 src/main/java/org/libvirt/event/CrashedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/DefinedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/DetailInfo.java
   create mode 100644 src/main/java/org/libvirt/event/DomainEvent.java
   create mode 100644 src/main/java/org/libvirt/event/DomainEventDetail.java
   create mode 100644 src/main/java/org/libvirt/event/DomainEventType.java
   create mode 100644 src/main/java/org/libvirt/event/LifecycleListener.java
   create mode 100644 src/main/java/org/libvirt/event/PMSuspendedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/ResumedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/ShutdownDetail.java
   create mode 100644 src/main/java/org/libvirt/event/StartedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/StoppedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/SuspendedDetail.java
   create mode 100644 src/main/java/org/libvirt/event/UndefinedDetail.java
 
 ACK

Thanks. I just noticed one minor thing:

diff --git a/src/main/java/org/libvirt/Connect.java 
b/src/main/java/org/libvirt/Connect.java
index bbbd000..d82dba2 100644
--- a/src/main/java/org/libvirt/Connect.java
+++ b/src/main/java/org/libvirt/Connect.java
+/**
+ * Adds the specified listener to receive lifecycle events for
+ * domains of this connections.

s/connections/connection

I'll fix that typo before pushing.

Claudio

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [libvirt-java] [PATCH 45/65] events: handle registration of domain lifecycle events

2014-02-13 Thread Claudio Bley
Add LifecycleListener interface which needs to be implemented
when the user wishes to receive lifecycle change events on domains.

The DomainEvent class represents the kind of event that
occurred including details on that event.

Signed-off-by: Claudio Bley cb...@av-test.de
---
 src/main/java/org/libvirt/Connect.java |   66 ++
 src/main/java/org/libvirt/Domain.java  |   18 +
 src/main/java/org/libvirt/event/CrashedDetail.java |   15 +
 src/main/java/org/libvirt/event/DefinedDetail.java |   17 +
 src/main/java/org/libvirt/event/DetailInfo.java|5 ++
 src/main/java/org/libvirt/event/DomainEvent.java   |   71 
 .../java/org/libvirt/event/DomainEventDetail.java  |7 ++
 .../java/org/libvirt/event/DomainEventType.java|   60 +
 .../java/org/libvirt/event/LifecycleListener.java  |   24 +++
 .../java/org/libvirt/event/PMSuspendedDetail.java  |   15 +
 src/main/java/org/libvirt/event/ResumedDetail.java |   20 ++
 .../java/org/libvirt/event/ShutdownDetail.java |   12 
 src/main/java/org/libvirt/event/StartedDetail.java |   30 +
 src/main/java/org/libvirt/event/StoppedDetail.java |   40 +++
 .../java/org/libvirt/event/SuspendedDetail.java|   40 +++
 .../java/org/libvirt/event/UndefinedDetail.java|7 ++
 src/main/java/org/libvirt/jna/Libvirt.java |7 ++
 17 files changed, 454 insertions(+)
 create mode 100644 src/main/java/org/libvirt/event/CrashedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/DefinedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/DetailInfo.java
 create mode 100644 src/main/java/org/libvirt/event/DomainEvent.java
 create mode 100644 src/main/java/org/libvirt/event/DomainEventDetail.java
 create mode 100644 src/main/java/org/libvirt/event/DomainEventType.java
 create mode 100644 src/main/java/org/libvirt/event/LifecycleListener.java
 create mode 100644 src/main/java/org/libvirt/event/PMSuspendedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/ResumedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/ShutdownDetail.java
 create mode 100644 src/main/java/org/libvirt/event/StartedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/StoppedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/SuspendedDetail.java
 create mode 100644 src/main/java/org/libvirt/event/UndefinedDetail.java

diff --git a/src/main/java/org/libvirt/Connect.java 
b/src/main/java/org/libvirt/Connect.java
index bbbd000..d82dba2 100644
--- a/src/main/java/org/libvirt/Connect.java
+++ b/src/main/java/org/libvirt/Connect.java
@@ -479,6 +479,72 @@ public class Connect {
 domainEventRegister(domain, DomainEventID.REBOOT, virCB, cb);
 }
 
+void domainEventRegister(Domain domain, final LifecycleListener cb) throws 
LibvirtException {
+if (cb == null)
+throw new IllegalArgumentException(LifecycleCallback cannot be 
null);
+
+Libvirt.VirConnectDomainEventCallback virCB = new 
Libvirt.VirConnectDomainEventCallback() {
+@Override
+public int eventCallback(ConnectionPointer virConnectPtr, 
DomainPointer virDomainPointer,
+ final int eventCode,
+ final int detailCode,
+ Pointer opaque) {
+assert VCP.equals(virConnectPtr);
+
+try {
+Domain dom = Domain.constructIncRef(Connect.this, 
virDomainPointer);
+DomainEventType type = 
getConstant(DomainEventType.class, eventCode);
+DomainEvent event = new DomainEvent(type, detailCode);
+
+cb.onLifecycleChange(dom, event);
+} catch (LibvirtException e) {
+throw new RuntimeException(libvirt error in lifecycle 
callback, e);
+}
+
+// always return 0, regardless of what the
+// callback method returned. This may need to be
+// changed in the future, in case the return value
+// is used for something by libvirt.
+return 0;
+}
+};
+
+domainEventRegister(domain, DomainEventID.LIFECYCLE, virCB, cb);
+}
+
+/**
+ * Adds the specified listener to receive lifecycle events for
+ * domains of this connections.
+ *
+ * @param  l  the lifecycle listener
+ * @throwsLibvirtException on failure
+ *
+ * @see #removeLifecycleListener
+ * @see Domain#addLifecycleListener
+ * @see a
+ *   
href=http://www.libvirt.org/html/libvirt-libvirt.html#virConnectDomainEventRegisterAny;
+ *  virConnectDomainEventRegisterAny/a
+ */
+public void addLifecycleListener(final LifecycleListener l) throws