[libvirt] [PATCH v3 4/8] Qemu Monitor API entry point.
Daniel P. Berrange
berrange at redhat.com
Wed Jul 7 11:44:54 UTC 2010
On Fri, Jul 02, 2010 at 11:18:21AM -0400, Chris Lalancette wrote:
> Add the library entry point for the new virDomainQemuMonitorCommand()
> entry point. Because this is not part of the "normal" libvirt API,
> it gets its own header file, library file, and will eventually
> get it's own over-the-wire protocol later in the series.
>
> Changes since v1:
> - Go back to using the virDriver table for qemuDomainMonitorCommand, due to
> linking issues
> - Added versioning information to the libvirt-qemu.so
>
> diff --git a/src/libvirt-qemu.c b/src/libvirt-qemu.c
> new file mode 100644
> index 0000000..2d43e13
> --- /dev/null
> +++ b/src/libvirt-qemu.c
> @@ -0,0 +1,97 @@
> +#include <config.h>
This file is missing the standard LGPL header.
> +
> +#include "virterror_internal.h"
> +#include "logging.h"
> +#include "datatypes.h"
> +#include "libvirt/libvirt-qemu.h"
> +
> +/**
> + * virLibConnError:
> + * @conn: the connection if available
> + * @error: the error number
> + * @info: extra information string
> + *
> + * Handle an error at the connection level
> + */
> +static void
> +virLibConnError(virConnectPtr conn, virErrorNumber error, const char *info)
> +{
> + const char *errmsg;
> +
> + if (error == VIR_ERR_OK)
> + return;
> +
> + errmsg = virErrorMsg(error, info);
> + virRaiseError(conn, NULL, NULL, VIR_FROM_NONE, error, VIR_ERR_ERROR,
> + errmsg, info, NULL, 0, 0, errmsg, info);
> +}
> +
> +/**
> + * virLibDomainError:
> + * @domain: the domain if available
> + * @error: the error number
> + * @info: extra information string
> + *
> + * Handle an error at the connection level
> + */
> +static void
> +virLibDomainError(virDomainPtr domain, virErrorNumber error,
> + const char *info)
> +{
> + virConnectPtr conn = NULL;
> + const char *errmsg;
> +
> + if (error == VIR_ERR_OK)
> + return;
> +
> + errmsg = virErrorMsg(error, info);
> + if (error != VIR_ERR_INVALID_DOMAIN) {
> + conn = domain->conn;
> + }
> + virRaiseError(conn, domain, NULL, VIR_FROM_DOM, error, VIR_ERR_ERROR,
> + errmsg, info, NULL, 0, 0, errmsg, info);
> +}
Although the current libvirt.c does this, best to avoid creating
function wrappers for error reporting, because it means the source
file location information is lost. Instead #define a macro as with
other driver files.
> diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
> index 849c163..77035ff 100644
> --- a/src/libvirt_public.syms
> +++ b/src/libvirt_public.syms
> @@ -393,16 +393,15 @@ LIBVIRT_0.8.0 {
> virDomainSnapshotFree;
> } LIBVIRT_0.7.7;
>
> -
> LIBVIRT_0.8.1 {
> global:
> virDomainGetBlockInfo;
> } LIBVIRT_0.8.0;
>
> -
> LIBVIRT_0.8.2 {
> global:
> virDomainCreateWithFlags;
> + virDomainQemuMonitorCommand;
> } LIBVIRT_0.8.1;
Now we've released 0.8.2, need to add a 0.8.3 here
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list