[libvirt] [PATCH v3 11/13] Add keepalive support into domain-events examples

Daniel P. Berrange berrange at redhat.com
Tue Oct 18 09:39:27 UTC 2011


On Wed, Oct 12, 2011 at 07:16:29AM +0200, Jiri Denemark wrote:
> ---
> Notes:
>     Version 3:
>     - update to client API changes (virConnectAllowKeepAlive dropped
>       and virConnectStartKeepAlive renamed as virConnectSetKeepAlive)
>     
>     Version 2:
>     - automatically exit when a connection is closed because of
>       keepalive timeout
> 
>  examples/domain-events/events-c/event-test.c       |    9 ++++++++-
>  examples/domain-events/events-python/event-test.py |    4 +++-
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/examples/domain-events/events-c/event-test.c b/examples/domain-events/events-c/event-test.c
> index 6a3ed26..bd9f8c2 100644
> --- a/examples/domain-events/events-c/event-test.c
> +++ b/examples/domain-events/events-c/event-test.c
> @@ -390,7 +390,14 @@ int main(int argc, char **argv)
>          (callback5ret != -1) &&
>          (callback6ret != -1) &&
>          (callback7ret != -1)) {
> -        while (run) {
> +        if (virConnectSetKeepAlive(dconn, 5, 3) < 0) {
> +            virErrorPtr err = virGetLastError();
> +            fprintf(stderr, "Failed to start keepalive protocol: %s\n",
> +                    err && err->message ? err->message : "Unknown error");
> +            run = 0;
> +        }
> +
> +        while (run && virConnectIsAlive(dconn) == 1) {
>              if (virEventRunDefaultImpl() < 0) {
>                  virErrorPtr err = virGetLastError();
>                  fprintf(stderr, "Failed to run event loop: %s\n",
> diff --git a/examples/domain-events/events-python/event-test.py b/examples/domain-events/events-python/event-test.py
> index 76fda2b..8d218f9 100644
> --- a/examples/domain-events/events-python/event-test.py
> +++ b/examples/domain-events/events-python/event-test.py
> @@ -518,11 +518,13 @@ def main():
>      vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_WATCHDOG, myDomainEventWatchdogCallback, None)
>      vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_GRAPHICS, myDomainEventGraphicsCallback, None)
>  
> +    vc.setKeepAlive(5, 3)
> +
>      # The rest of your app would go here normally, but for sake
>      # of demo we'll just go to sleep. The other option is to
>      # run the event loop in your main thread if your app is
>      # totally event based.
> -    while 1:
> +    while vc.isAlive() == 1:
>          time.sleep(1)
>  
>  

ACK


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




More information about the libvir-list mailing list