nodemanager.git
11 years agoMerge branch 'master' of ssh://git.onelab.eu/git/nodemanager
Thierry Parmentelat [Fri, 31 Aug 2012 16:06:36 +0000 (18:06 +0200)]
Merge branch 'master' of ssh://git.onelab.eu/git/nodemanager

11 years agomissing import
Thierry Parmentelat [Fri, 31 Aug 2012 16:06:27 +0000 (18:06 +0200)]
missing import

nodes running this code will fail to expose authorized_keys to their
OMF-friendly slices

11 years agoSetting tag nodemanager-2.1-8 nodemanager-2.1-8
Thierry Parmentelat [Thu, 30 Aug 2012 10:24:27 +0000 (12:24 +0200)]
Setting tag nodemanager-2.1-8
tag 2.1-7 was broken for OMF-friendly slices
expose_ssh_dir was erroneously defined on the Worker class

11 years agoexpose_ssh_dir relocated from Worker to the Account class where it belongs
Thierry Parmentelat [Thu, 30 Aug 2012 09:50:35 +0000 (11:50 +0200)]
expose_ssh_dir relocated from Worker to the Account class where it belongs

11 years agoSetting tag nodemanager-2.1-7 nodemanager-2.1-7
Thierry Parmentelat [Thu, 19 Jul 2012 21:31:23 +0000 (23:31 +0200)]
Setting tag nodemanager-2.1-7
bwlimitlxc now ships with plnode-utils

11 years agoremoved last mentions of bwlimitlxc in specfile
Thierry Parmentelat [Wed, 18 Jul 2012 11:17:52 +0000 (13:17 +0200)]
removed last mentions of bwlimitlxc in specfile

11 years agoremove bwlimitlxc, and use plnode-utils instead
Thierry Parmentelat [Wed, 18 Jul 2012 10:59:56 +0000 (12:59 +0200)]
remove bwlimitlxc, and use plnode-utils instead

11 years agoSetting tag nodemanager-2.1-6 nodemanager-2.1-6
Thierry Parmentelat [Mon, 9 Jul 2012 09:18:53 +0000 (11:18 +0200)]
Setting tag nodemanager-2.1-6
set LD_PRELOAD for linux-containers nodes

11 years agoexport LD_PRELOAD
Thierry Parmentelat [Thu, 28 Jun 2012 22:25:54 +0000 (00:25 +0200)]
export LD_PRELOAD

11 years agoadd missing requires:
Thierry Parmentelat [Thu, 28 Jun 2012 12:33:27 +0000 (14:33 +0200)]
add missing requires:

11 years agoadd requires/dependency to python-inotify
Thierry Parmentelat [Thu, 28 Jun 2012 08:42:47 +0000 (10:42 +0200)]
add requires/dependency to python-inotify

11 years agoSetting tag nodemanager-2.1-5 nodemanager-2.1-5
Thierry Parmentelat [Thu, 28 Jun 2012 07:59:57 +0000 (09:59 +0200)]
Setting tag nodemanager-2.1-5
first complete version for vs and lxc - functional but not thoroughly tested though

11 years agomerge the vs and lxc nodemanagers
Thierry Parmentelat [Wed, 27 Jun 2012 09:48:03 +0000 (11:48 +0200)]
merge the vs and lxc nodemanagers

11 years agokeep both coreshed_vs and coresched_lxc - cgroups in the lxc package
Thierry Parmentelat [Wed, 27 Jun 2012 09:09:29 +0000 (11:09 +0200)]
keep both coreshed_vs and coresched_lxc - cgroups in the lxc package
coresched being not a plugin, we had to mess with database, hopefully
this is temporary

11 years agoSetting tag nodemanager-2.1-4 nodemanager-2.1-4
Thierry Parmentelat [Tue, 26 Jun 2012 11:14:17 +0000 (13:14 +0200)]
Setting tag nodemanager-2.1-4
split packaging in 3 (lib, lxc, vs)
this tag will only work with lxc though

11 years agoincorporate changelog from 2.0
Thierry Parmentelat [Tue, 26 Jun 2012 11:10:22 +0000 (13:10 +0200)]
incorporate changelog from 2.0

11 years agoSetting tag nodemanager-2.0-38 2.0 nodemanager-2.0-38
Thierry Parmentelat [Tue, 26 Jun 2012 10:58:17 +0000 (12:58 +0200)]
Setting tag nodemanager-2.0-38
split packaging, nodemanager-vs (obsoletes NodeManager) and nodemanager-lib

11 years agocleanup svn keywords
Thierry Parmentelat [Tue, 26 Jun 2012 10:25:22 +0000 (12:25 +0200)]
cleanup svn keywords

11 years agomerged split packaging (-lib and -vs) from master, add a 3rd one for lxc
Thierry Parmentelat [Tue, 26 Jun 2012 07:36:41 +0000 (09:36 +0200)]
merged split packaging (-lib and -vs) from master, add a 3rd one for lxc

11 years agofirst stab at splitting into 2 packages nodemanager-lib and nodemanager-vs
Thierry Parmentelat [Mon, 25 Jun 2012 12:51:55 +0000 (14:51 +0200)]
first stab at splitting into 2 packages nodemanager-lib and nodemanager-vs
we have nodemanager-vs Obsolete'ing NodeManager for hopefully smooth transition

11 years agoSetting tag nodemanager-2.1-3 nodemanager-2.1-3
Thierry Parmentelat [Mon, 25 Jun 2012 10:22:08 +0000 (12:22 +0200)]
Setting tag nodemanager-2.1-3
renamed bwlimit as bwlimitlxc to avoid conflicts with util-vserver-pl
purpose being to be able to run this branch on vserver nodes as well

11 years agotemporary rename bwlimit as bwlimitlxc for a dry run of the
Thierry Parmentelat [Mon, 25 Jun 2012 08:02:08 +0000 (10:02 +0200)]
temporary rename bwlimit as bwlimitlxc for a dry run of the
nodemanager@lxc_devel branch on a vserver node

11 years agoSetting tag nodemanager-2.1-2 nodemanager-2.1-2
Thierry Parmentelat [Thu, 21 Jun 2012 08:13:42 +0000 (10:13 +0200)]
Setting tag nodemanager-2.1-2
merged nodemanager-2.0-37 in 2.1/lxc_devel and add initscript support to lxc
passes tests with lxc but won't build against vs due to conflict
as bwlimit.py also ships with util-vserver-pl

11 years agoMerge branch 'master' into lxc_devel - changelog from 2.0-37
Thierry Parmentelat [Thu, 21 Jun 2012 08:07:20 +0000 (10:07 +0200)]
Merge branch 'master' into lxc_devel - changelog from 2.0-37

11 years agoSetting tag nodemanager-2.0-37 nodemanager-2.0-37
Thierry Parmentelat [Thu, 21 Jun 2012 08:04:07 +0000 (10:04 +0200)]
Setting tag nodemanager-2.0-37
refactoring: isolate initscript functionality
aimed at making initscript implementation with lxc straightforward
show stack trace when module loading fails
accounts.py renamed into account.py for consistency

11 years agopour initscript in the mix for lxc slivers
Thierry Parmentelat [Wed, 20 Jun 2012 14:33:25 +0000 (16:33 +0200)]
pour initscript in the mix for lxc slivers

11 years agoMerge branch 'master' into lxc_devel
Thierry Parmentelat [Wed, 20 Jun 2012 09:57:55 +0000 (11:57 +0200)]
Merge branch 'master' into lxc_devel

11 years agoadd initscript to packaging
Thierry Parmentelat [Wed, 20 Jun 2012 09:53:59 +0000 (11:53 +0200)]
add initscript to packaging

11 years agobailing out on core plugin loading prevents specialaccounts to open the door..
Thierry Parmentelat [Wed, 20 Jun 2012 08:50:59 +0000 (10:50 +0200)]
bailing out on core plugin loading prevents specialaccounts to open the door..

11 years agofailing to load core modules, especially slivermanager, is very serious;
Thierry Parmentelat [Wed, 20 Jun 2012 08:12:40 +0000 (10:12 +0200)]
failing to load core modules, especially slivermanager, is very serious;
in this case display exception and exit

11 years agocosmetic, reservation_policy=None does not deserve a message
Thierry Parmentelat [Wed, 20 Jun 2012 08:11:47 +0000 (10:11 +0200)]
cosmetic, reservation_policy=None does not deserve a message

11 years agoreview timeouts
Thierry Parmentelat [Wed, 20 Jun 2012 07:09:45 +0000 (09:09 +0200)]
review timeouts

11 years agobugfix
Thierry Parmentelat [Wed, 20 Jun 2012 06:40:57 +0000 (08:40 +0200)]
bugfix

11 years agoMerge branch 'master' into lxc_devel
Thierry Parmentelat [Wed, 20 Jun 2012 06:34:12 +0000 (08:34 +0200)]
Merge branch 'master' into lxc_devel

11 years agooops, apparently this breaks it all
Thierry Parmentelat [Wed, 20 Jun 2012 06:04:55 +0000 (08:04 +0200)]
oops, apparently this breaks it all

11 years agofix syntax error
Thierry Parmentelat [Tue, 19 Jun 2012 21:24:41 +0000 (23:24 +0200)]
fix syntax error

11 years agoreview imports in sliver_{libvirt,lxc}
Thierry Parmentelat [Tue, 19 Jun 2012 21:20:37 +0000 (23:20 +0200)]
review imports in sliver_{libvirt,lxc}

11 years agomerged master into lxc_devel
Thierry Parmentelat [Tue, 19 Jun 2012 21:05:56 +0000 (23:05 +0200)]
merged master into lxc_devel

11 years agoisolate initscript-related stuff in initscript.py and minor cleanups
Thierry Parmentelat [Tue, 19 Jun 2012 20:55:07 +0000 (22:55 +0200)]
isolate initscript-related stuff in initscript.py and minor cleanups

11 years agoImprove robustness of LXC and libvirt plugins.
Marco Yuen [Tue, 19 Jun 2012 16:20:34 +0000 (12:20 -0400)]
Improve robustness of LXC and libvirt plugins.

They will handle more edge cases. Especially during container creation
time.

11 years agowon't try to create the slices group if already defined
Thierry Parmentelat [Tue, 19 Jun 2012 15:49:07 +0000 (17:49 +0200)]
won't try to create the slices group if already defined
removed older convention for the xml template, only lxc_template.xml now
removed abbrev in import

11 years agoa bit more robust
Thierry Parmentelat [Tue, 19 Jun 2012 15:42:44 +0000 (17:42 +0200)]
a bit more robust

11 years agobe more explicit when a slice IP can't be found
Thierry Parmentelat [Tue, 19 Jun 2012 15:19:21 +0000 (17:19 +0200)]
be more explicit when a slice IP can't be found

11 years agodefine prompt for root user in slice
Thierry Parmentelat [Tue, 19 Jun 2012 15:19:05 +0000 (17:19 +0200)]
define prompt for root user in slice

11 years agoadded verbosity to sshsh, and fix make sync so it shows up at the
Thierry Parmentelat [Tue, 19 Jun 2012 12:23:29 +0000 (14:23 +0200)]
added verbosity to sshsh, and fix make sync so it shows up at the
right place

11 years agofix previous merge
Thierry Parmentelat [Sun, 17 Jun 2012 07:53:48 +0000 (09:53 +0200)]
fix previous merge

11 years agomerging changelogs had ruined chronological order that rpm insists upon
Thierry Parmentelat [Sat, 16 Jun 2012 10:45:42 +0000 (12:45 +0200)]
merging changelogs had ruined chronological order that rpm insists upon

11 years agoMerge branch 'master' into lxc_devel
Thierry Parmentelat [Fri, 15 Jun 2012 14:11:50 +0000 (17:11 +0300)]
Merge branch 'master' into lxc_devel

Conflicts:
NodeManager.spec
api.py
slivermanager.py

11 years agoremove svn keywords
Thierry Parmentelat [Thu, 14 Jun 2012 21:13:58 +0000 (00:13 +0300)]
remove svn keywords

11 years agofix make sync with new key conventions from tests/system - key_admin vs key1
Thierry Parmentelat [Thu, 14 Jun 2012 21:03:18 +0000 (00:03 +0300)]
fix make sync with new key conventions from tests/system - key_admin vs key1

11 years agorename accounts into account for consistency
Thierry Parmentelat [Thu, 14 Jun 2012 20:58:04 +0000 (23:58 +0300)]
rename accounts into account for consistency

11 years agomove expose_ssh_dir from sliver_vs to accounts
Thierry Parmentelat [Thu, 14 Jun 2012 20:54:53 +0000 (23:54 +0300)]
move expose_ssh_dir from sliver_vs to accounts

11 years agoSetting tag nodemanager-2.0-36 nodemanager-2.0-36
Thierry Parmentelat [Sun, 3 Jun 2012 13:49:25 +0000 (15:49 +0200)]
Setting tag nodemanager-2.0-36
/var/log/nodemanager shows duration of mainloop

11 years agodisplay working time at the end of each loop
Thierry Parmentelat [Tue, 22 May 2012 13:07:46 +0000 (15:07 +0200)]
display working time at the end of each loop

11 years agoMerge branch 'lxc_devel' of ssh://git.planet-lab.org/git/nodemanager into lxc_devel
Marco Yuen [Mon, 7 May 2012 14:27:46 +0000 (10:27 -0400)]
Merge branch 'lxc_devel' of ssh://git.planet-lab.org/git/nodemanager into lxc_devel

Conflicts:
config_template.xml

11 years agoLXC-3: Raise the default memory to 512MB.
Marco Yuen [Mon, 7 May 2012 14:11:55 +0000 (10:11 -0400)]
LXC-3: Raise the default memory to 512MB.

12 years agoSetting tag nodemanager-2.0-35 nodemanager-2.0-35
Thierry Parmentelat [Fri, 13 Apr 2012 14:35:56 +0000 (16:35 +0200)]
Setting tag nodemanager-2.0-35
remove Requires to deprecated vserver-* rpms, use sliceimage-* instead

12 years agoSetting tag nodemanager-2.1-1 nodemanager-2.1-1
Thierry Parmentelat [Fri, 13 Apr 2012 14:32:46 +0000 (16:32 +0200)]
Setting tag nodemanager-2.1-1
first working draft for dealing with libvirt/lxc on f16 nodes
not expected to work with mainline nodes (use 2.0 for that for now)

12 years agoMerge branch 'master' of ssh://git.onelab.eu/git/nodemanager
Thierry Parmentelat [Fri, 13 Apr 2012 11:29:13 +0000 (13:29 +0200)]
Merge branch 'master' of ssh://git.onelab.eu/git/nodemanager

12 years agorevert master branch to 2.0, lxc_devel is 2.1,
Thierry Parmentelat [Fri, 13 Apr 2012 11:21:42 +0000 (13:21 +0200)]
revert master branch to 2.0, lxc_devel is 2.1,
might remain separate for a wihle

12 years agofix comments about requires in specfile
Thierry Parmentelat [Fri, 13 Apr 2012 09:46:29 +0000 (11:46 +0200)]
fix comments about requires in specfile

12 years agofix comments about requires in specfile
Thierry Parmentelat [Fri, 13 Apr 2012 09:46:29 +0000 (11:46 +0200)]
fix comments about requires in specfile

12 years agobump release number
Thierry Parmentelat [Fri, 30 Mar 2012 07:12:43 +0000 (09:12 +0200)]
bump release number

12 years agoremove xml template
Thierry Parmentelat [Fri, 13 Apr 2012 09:20:24 +0000 (11:20 +0200)]
remove xml template
currently the code uses the one that comes with sliceimage (which is
not identical), and this file is not packaged anyway
it would definitely make sense to move if back in this module at some
further point

12 years agolook for the xml template under 2 names so the lxc-reference packaging
Thierry Parmentelat [Thu, 12 Apr 2012 08:23:23 +0000 (10:23 +0200)]
look for the xml template under 2 names so the lxc-reference packaging
might still be used for now

12 years agorevert change n-1 : restore order for xml initialization
Thierry Parmentelat [Thu, 12 Apr 2012 08:11:14 +0000 (10:11 +0200)]
revert change n-1 : restore order for xml initialization

12 years agomore consistent naming for xml template
Thierry Parmentelat [Wed, 11 Apr 2012 22:05:01 +0000 (00:05 +0200)]
more consistent naming for xml template

12 years agocheck for the xml template first thing, show filename if missing
Thierry Parmentelat [Wed, 11 Apr 2012 21:54:18 +0000 (23:54 +0200)]
check for the xml template first thing, show filename if missing

12 years agoincrease gravity of error message
Thierry Parmentelat [Wed, 11 Apr 2012 16:09:06 +0000 (18:09 +0200)]
increase gravity of error message

12 years agolog missing path when ref image not found
Thierry Parmentelat [Wed, 11 Apr 2012 16:08:28 +0000 (18:08 +0200)]
log missing path when ref image not found

12 years agobump release number
Thierry Parmentelat [Fri, 30 Mar 2012 07:12:43 +0000 (09:12 +0200)]
bump release number

12 years agouse sliceimage rpm
Thierry Parmentelat [Wed, 28 Mar 2012 17:34:26 +0000 (19:34 +0200)]
use sliceimage rpm

12 years agoFixes for F16.
Marco Yuen [Mon, 5 Mar 2012 18:37:19 +0000 (13:37 -0500)]
Fixes for F16.

cgroup is now mounted automatcially by systemd and the way is mounted is
very different from before. Hence, cgroups.py needs to be changed to
reflect the new mount point, and it doesn't use inotify to monitor the
FS anymore. Everything is done dynamically at runtime.

Changes for Coresched are cgroups related.

Since /var is mounted on tmpfs, os.rename doesn't work across partition,
so shutil.move is used instead.

12 years agotry to work around ssh prompting for a confirmation when reaching a VM
Thierry Parmentelat [Mon, 20 Feb 2012 16:17:29 +0000 (17:17 +0100)]
try to work around ssh prompting for a confirmation when reaching a VM

12 years agoInstall bwlimit.py to the python site directory.
Marco Yuen [Fri, 13 Jan 2012 15:44:53 +0000 (10:44 -0500)]
Install bwlimit.py to the python site directory.

12 years agoA small bug fix with somem formatting.
Marco Yuen [Fri, 6 Jan 2012 19:32:22 +0000 (14:32 -0500)]
A small bug fix with somem formatting.

In the log output, sys.exe_info wasn't being called, and it was
returning the exception type instead of the exception value.

12 years agoMostly aesthetic changes and fix a bug in codemux.
Marco Yuen [Fri, 6 Jan 2012 17:24:51 +0000 (12:24 -0500)]
Mostly aesthetic changes and fix a bug in codemux.

Remove a bunch of white spaces in the sliver* files. Inside codemux
there is a reference to the vserver module which is installed by
util-vserver; implement a method that uses libvirt to check whether a
LXC domain is running or not.

12 years agoAdd sleep to initscript
Marco Yuen [Wed, 21 Dec 2011 22:46:04 +0000 (17:46 -0500)]
Add sleep to initscript

The sleep is to make sure libvirt has finished initializing otherwise
NodeManager will throw exception.

12 years agoMerge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel
Xavi Leon [Wed, 21 Dec 2011 16:54:14 +0000 (11:54 -0500)]
Merge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel

12 years agoRemoved some references to sliver_vs which crashed nodemanager. Changed the
Xavi Leon [Wed, 21 Dec 2011 16:52:40 +0000 (11:52 -0500)]
Removed some references to sliver_vs which crashed nodemanager. Changed the
default slice type from sliver.VS to sliver.LXC so we don't need to specify it
on myplc

12 years agoAdd more python modules to setup.py.
Marco Yuen [Mon, 19 Dec 2011 20:01:46 +0000 (15:01 -0500)]
Add more python modules to setup.py.

12 years agoChange NodeManager start order to start after libvirt.
Marco Yuen [Fri, 16 Dec 2011 19:05:33 +0000 (14:05 -0500)]
Change NodeManager start order to start after libvirt.

12 years agoRemove vserver dependency
Marco Yuen [Fri, 16 Dec 2011 16:31:25 +0000 (11:31 -0500)]
Remove vserver dependency

12 years agoMerge branch 'master' into lxc_devel
Marco Yuen [Thu, 15 Dec 2011 16:28:05 +0000 (11:28 -0500)]
Merge branch 'master' into lxc_devel

12 years agoFix the 'sshsh' install command.
Marco Yuen [Thu, 15 Dec 2011 16:23:08 +0000 (11:23 -0500)]
Fix the 'sshsh' install command.

12 years agoInstall sshsh to /bin to allow slices to login to the vms through ssh.
Xavi Leon [Wed, 14 Dec 2011 19:24:40 +0000 (14:24 -0500)]
Install sshsh to /bin to allow slices to login to the vms through ssh.

12 years agoSetting tag nodemanager-2.0-34 nodemanager-2.0-34
Thierry Parmentelat [Fri, 9 Dec 2011 07:47:15 +0000 (08:47 +0100)]
Setting tag nodemanager-2.0-34
Added memory scheduling to core scheduler
Core scheduler will now attempt to schedule cores on the same CPU to a slice, if a slice uses multiple cores

12 years agoChange btrfs subvolume default permissions for the guest FS to 755 instead of
Xavi Leon [Thu, 8 Dec 2011 21:15:45 +0000 (16:15 -0500)]
Change btrfs subvolume default permissions for the guest FS to 755 instead of
700 (which prevents regular users to use the guest fs).

12 years agoCgroup common interface. Used by coresched.py and sliver_libvirt.py.
Xavi Leon [Thu, 8 Dec 2011 19:04:39 +0000 (14:04 -0500)]
Cgroup common interface. Used by coresched.py and sliver_libvirt.py.

12 years agoCgroups common interface. Used by sliver_libvirt and coresched.
Xavi Leon [Thu, 8 Dec 2011 19:03:40 +0000 (14:03 -0500)]
Cgroups common interface. Used by sliver_libvirt and coresched.

12 years agoMerge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel
Xavi Leon [Tue, 6 Dec 2011 17:26:34 +0000 (12:26 -0500)]
Merge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel

12 years agoMerge branch 'master' into lxc_devel lxcbuild
Marco Yuen [Tue, 6 Dec 2011 17:22:02 +0000 (12:22 -0500)]
Merge branch 'master' into lxc_devel

12 years agoRefactor code. Put ebtables stuff at sliver creation time (start/stop) on
Xavi Leon [Fri, 2 Dec 2011 20:47:02 +0000 (15:47 -0500)]
Refactor code. Put ebtables stuff at sliver creation time (start/stop) on
sliver_libvirt.py

12 years agoAdded ability to filter and classify packets based on the containers interface.
Xavi Leon [Fri, 2 Dec 2011 17:50:16 +0000 (12:50 -0500)]
Added ability to filter and classify packets based on the containers interface.
Changes:
- lxc libvirt configuration template to attach the xid to the container
  interface
- added ebtables rule to mark packets going out from the containers interface
  with its xid and added a filter to classify packets based on this mark
- moved the definition of container after the user is created so we get the
  correct xid to attach to the virtual interface name.

12 years agoPatch to get the type of virtualization based on type tag. This way, we can get
Xavi Leon [Fri, 2 Dec 2011 17:49:10 +0000 (12:49 -0500)]
Patch to get the type of virtualization based on type tag. This way, we can get
the correct directory in cgroups.

12 years agoNeed bwlimit.py from util-vserver-pl. Adding it at NodeManager to keep track of
Xavi Leon [Fri, 2 Dec 2011 16:47:52 +0000 (11:47 -0500)]
Need bwlimit.py from util-vserver-pl. Adding it at NodeManager to keep track of
the changes.

12 years agoRefactor of sliver_lxc and sliver_libvirt.
Xavi Leon [Mon, 28 Nov 2011 21:52:59 +0000 (16:52 -0500)]
Refactor of sliver_lxc and sliver_libvirt.

12 years agoRefactor of code to allow several virt techs. Minor bugs. Closes #8.
Xavi Leon [Thu, 10 Nov 2011 21:29:05 +0000 (16:29 -0500)]
Refactor of code to allow several virt techs. Minor bugs. Closes #8.

12 years agoCustom shell to allow a user to connect to its sliver using the slice_name.
Xavi Leon [Thu, 10 Nov 2011 17:08:31 +0000 (12:08 -0500)]
Custom shell to allow a user to connect to its sliver using the slice_name.

12 years agoMerge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel
Xavi Leon [Thu, 10 Nov 2011 15:42:10 +0000 (10:42 -0500)]
Merge branch 'lxc_devel' of github.com:planetlab/NodeManager into lxc_devel

Conflicts:
sliver_libvirt.py