On Tue, Jan 08, 2013 at 09:02:37AM -0700, Eric Blake wrote:
On 12/21/2012 10:08 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange(a)redhat.com>
>
> This patch introduces support for LXC specific public APIs. In
> common with what was done for QEMU, this creates a libvirt_lxc.so
> library and libvirt/libvirt-lxc.h header file.
>
> The actual APIs are
>
> int virDomainLxcOpenNamespace(virDomainPtr domain,
> int **fdlist,
> unsigned int flags);
>
> int virDomainLxcEnterNamespace(virDomainPtr domain,
> unsigned int flags);
This commit message signature...
Opps, that was from a work-in-progress version of the patch.
> +++ b/src/driver.h
> @@ -915,6 +915,11 @@ typedef int
> unsigned long long minimum,
> unsigned int flags);
>
> +typedef int
> + (*virDrvDomainLxcOpenNamespace)(virDomainPtr dom,
> + int **fdlist,
> + unsigned int flags);
> +
> /**
> * _virDriver:
> *
> @@ -1107,6 +1112,7 @@ struct _virDriver {
> virDrvNodeGetCPUMap nodeGetCPUMap;
> virDrvDomainFSTrim domainFSTrim;
> virDrvDomainSendProcessSignal domainSendProcessSignal;
> + virDrvDomainLxcOpenNamespace domainLxcOpenNamespace;
No EnterNamespace driver callback?
The 'virDomainLxcEnterNamespace' API is special in that it is rnu
purely client-side, not in the daemon. It is pretty much just a
dumb wrapper around 'setns()' and 'readdir(/proc/self/ns)' to avoid
apps having to know about those low level impl details.
> +++ b/src/lxc/lxc_driver.c
> @@ -4544,6 +4544,7 @@ static virDriver lxcDriver = {
> .domainShutdown = lxcDomainShutdown, /* 1.0.1 */
> .domainShutdownFlags = lxcDomainShutdownFlags, /* 1.0.1 */
> .domainReboot = lxcDomainReboot, /* 1.0.1 */
> + .domainLxcOpenNamespace = lxcDomainOpenNamespace, /* 1.0.2 */
Again, no EnterNamespace callback registration?
Same note as above - the driver API isn't used for this code since
it is client side.
ACK with those issues fixed. It made it nice that we already have
libvirt-qemu to copy from.
Indeed, it would have taken me ages to get this right without copying
from libvirt-qemu :-)
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 :|