[Libvir] Useful additional functions for libvirt
Daniel P. Berrange
berrange at redhat.com
Sun Jun 24 18:59:11 UTC 2007
On Sun, Jun 24, 2007 at 05:33:10PM +0100, Richard W.M. Jones wrote:
> [I haven't implemented any of these yet, but if people think they're a
> good idea, or at least not an actively bad idea, then I'll post a patch.]
>
> virDomainGetConnection
> virNetworkGetConnection
>
> Purpose: Given a virDomainPtr or virNetworkPtr, obtain the virConnectPtr.
>
> Reason: All the language bindings to libvirt need to keep the
> virConnectPtr separately alongside the virDomain/NetworkPtr, in the main
> so that they can query if an error has happened from inside some deep
> call. This is wasteful since the connection pointer is already included
> in the virDomain or virNetwork structure, so we should just provide a
> call to get it.
Yep that would be handy. In virt-manager we create a wrapper around the
libvirt python virDomainPtr object, to add extra methods - one of which
is to get the python virConnectPtr object back. So this would be handy
to have in the base library API.
> virConnectGetHostname
> virConnectGetTransport
> virConnectGetURI
>
> Purpose: Get the remote hostname, remote transport (tls, ssh, etc.),
> and URI.
>
> Reason: In virt-manager it would be nice to display the remote
> hostname. However doing this at the moment requires parsing the
> connection URI, which is duplicated code and also significantly
> complicated. Instead, allow the remote driver to just give us this
> information, and in non-remote cases default to something sensible. The
> case for the other two calls is weaker, but it might still be useful to
> know something about the security of the actual transport selected, and
> also to not have to keep the URI around with the connection (we might
> also canonicalise the transport for the user).
Yep, these would be very useful too - particularly if the driver were to
canonicalize the URI. Again in the virt-manager wrapper around the base
virDomainptr python object we add in a method to get a URI, and get the
hostname associated with the URI.
> virConnectPing
>
> Purpose: "Ping" the hypervisor to see if its up.
>
> Reason: Since we now support remote connections, there is a much more
> signficant chance that we will lose contact with the hypervisor, for
> example if the host goes down. This will do some very minimal operation
> to cheaply test whether the hypervisor can be contacted. Of course we
> could do something like 'virConnectNumOfDomains', but it's not clear to
> me that this operation would always be cheap (eg. if we had to implement
> it through xend).
Not sure about whether we need this - yet - at least in the virt-manager use
case we are periodically calling virConnectNumOfDomains anyway just to
get status updates. This in effect provides us a 'ping'. If we ever add
an API to get asynchronous notification of domains being created/destroyed
then we would no longer have to poll periodically - at which point a 'ping'
method would become useful
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
More information about the libvir-list
mailing list