From 538686f9c08b915a1a2e7b5c9eca890555f71188 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Tue, 28 Mar 2006 14:41:04 +0000 Subject: [PATCH] * python/libvir.c: call the initialize entry point * src/libvirt_sym.version: add initialize entry point * src/libvirt.c: make sure we always initialize the lib * python/tests/*.py: start updating exemple for exception handling as pointed by Jim Meyering Daniel --- ChangeLog | 8 ++++++++ python/libvir.c | 2 ++ python/tests/basic.py | 5 +++-- python/tests/create.py | 9 ++++++++- python/tests/uuid.py | 10 ++++++---- src/libvirt.c | 14 +++++++++++++- src/libvirt_sym.version | 1 + 7 files changed, 41 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 73534d0f15..fb67320391 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Mar 28 16:40:08 CEST 2006 Daniel Veillard + + * python/libvir.c: call the initialize entry point + * src/libvirt_sym.version: add initialize entry point + * src/libvirt.c: make sure we always initialize the lib + * python/tests/*.py: start updating exemple for exception + handling as pointed by Jim Meyering + Tue Mar 28 11:49:59 CEST 2006 Daniel Veillard * doc/site.xsl doc/libvir.html doc/*: added informations about diff --git a/python/libvir.c b/python/libvir.c index 47da369d25..1d97037704 100644 --- a/python/libvir.c +++ b/python/libvir.c @@ -269,6 +269,8 @@ initlibvirtmod(void) if (initialized != 0) return; + virInitialize(); + /* intialize the python extension module */ Py_InitModule((char *) "libvirtmod", libvirtMethods); diff --git a/python/tests/basic.py b/python/tests/basic.py index b6f8831a1e..c6dec81f9b 100755 --- a/python/tests/basic.py +++ b/python/tests/basic.py @@ -14,8 +14,9 @@ if conn == None: # print conn -dom0 = conn.lookupByName("Domain-0") -if dom0 == None: +try: + dom0 = conn.lookupByName("Domain-0") +except: print 'Failed to find the main domain' sys.exit(1) diff --git a/python/tests/create.py b/python/tests/create.py index c897741edd..b717db1881 100755 --- a/python/tests/create.py +++ b/python/tests/create.py @@ -115,13 +115,20 @@ time.sleep(10) print "shutdown of test domain" if dom.shutdown() != 0: + okay = 0 print 'Failed to shutdown domain test' i = 0 while i < 30: time.sleep(1) i = i + 1 - t = dom.info()[4] + try: + t = dom.info()[4] + except: + okay = 0 + t = -1 + break; + if t == 0: break diff --git a/python/tests/uuid.py b/python/tests/uuid.py index d71d420687..605b759424 100755 --- a/python/tests/uuid.py +++ b/python/tests/uuid.py @@ -19,16 +19,18 @@ if ids == None or len(ids) == 0: id = ids[-1] -dom = conn.lookupByID(id) -if dom == None: +try: + dom = conn.lookupByID(id) +except: print 'Failed to find the domain %d' sys.exit(1) name0 = dom.name() uuid = dom.UUID() print "Using domain %s" % (name0) -dom2 = conn.lookupByUUID(uuid) -if dom2 == None: +try: + dom2 = conn.lookupByUUID(uuid) +except: print 'Failed to lookup domain %d based on its UUID' sys.exit(1) if dom2.name() != name0: diff --git a/src/libvirt.c b/src/libvirt.c index eedf52d00d..d5c268bb2e 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -57,6 +57,7 @@ virInitialize(void) if (initialized) return(0); + initialized = 1; /* * should not be needed but... @@ -70,7 +71,6 @@ virInitialize(void) xenHypervisorRegister(); xenDaemonRegister(); xenStoreRegister(); - initialized = 1; return(0); } @@ -136,6 +136,9 @@ virRegisterDriver(virDriverPtr driver) { int i; + if (!initialized) + virInitialize(); + if (driver == NULL) { virLibConnError(NULL, VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); @@ -173,6 +176,9 @@ int virGetVersion(unsigned long *libVer, const char *type, unsigned long *typeVer) { + if (!initialized) + virInitialize(); + if (libVer == NULL) return (-1); *libVer = LIBVIR_VERSION_NUMBER; @@ -212,6 +218,9 @@ virConnectOpen(const char *name) { virConnectPtr ret = NULL; + if (!initialized) + virInitialize(); + /* we can only talk to the local Xen supervisor ATM */ if (name != NULL) { virLibConnError(NULL, VIR_ERR_NO_SUPPORT, name); @@ -270,6 +279,9 @@ virConnectOpenReadOnly(const char *name) int res; virConnectPtr ret = NULL; + if (!initialized) + virInitialize(); + /* we can only talk to the local Xen supervisor ATM */ if (name != NULL) { virLibConnError(NULL, VIR_ERR_NO_SUPPORT, name); diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 85e2694b11..0a298f8240 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -1,5 +1,6 @@ { global: + virInitialize; virConnectClose; virConnectGetType; virConnectGetVersion; -- GitLab