[libvirt] [RFC PATCH 2/5] Add namespace callback hooks to domain_conf.
Daniel P. Berrange
berrange at redhat.com
Fri Apr 16 11:20:24 UTC 2010
On Tue, Apr 13, 2010 at 02:36:47PM -0400, Chris Lalancette wrote:
> Signed-off-by: Chris Lalancette <clalance at redhat.com>
> ---
> src/conf/domain_conf.c | 106 +++++++++++++++++++++++++++++------------
> src/conf/domain_conf.h | 26 ++++++++--
> src/esx/esx_driver.c | 4 +-
> src/lxc/lxc_controller.c | 2 +-
> src/lxc/lxc_driver.c | 10 ++--
> src/opennebula/one_driver.c | 4 +-
> src/openvz/openvz_driver.c | 4 +-
> src/phyp/phyp_driver.c | 2 +-
> src/security/virt-aa-helper.c | 2 +-
> src/test/test_driver.c | 12 ++--
> src/uml/uml_driver.c | 4 +-
> src/vbox/vbox_tmpl.c | 2 +-
> src/xen/xend_internal.c | 4 +-
> src/xen/xm_internal.c | 2 +-
> src/xenapi/xenapi_driver.c | 4 +-
> tests/bochsconf2xmltest | Bin 0 -> 714002 bytes
> tests/qemuxml2argvtest.c | 2 +-
> tests/qemuxml2xmltest.c | 2 +-
> tests/xmconfigtest.c | 2 +-
> tests/xml2vmxtest.c | 2 +-
> 20 files changed, 127 insertions(+), 69 deletions(-)
> create mode 100755 tests/bochsconf2xmltest
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 82f2d15..95a8dfb 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -794,6 +794,19 @@ int virDomainSnapshotObjUnref(virDomainSnapshotObjPtr snapshot);
> int virDomainSnapshotHasChildren(virDomainSnapshotObjPtr snap,
> virDomainSnapshotObjListPtr snapshots);
>
> +typedef void *(*virDomainDefNamespaceParse)(xmlDocPtr, xmlNodePtr,
> + xmlXPathContextPtr);
> +typedef void (*virDomainDefNamespaceFree)(void *);
> +typedef int (*virDomainDefNamespaceXMLFormat)(virBufferPtr, void *);
> +typedef const char *(*virDomainDefNamespaceHref)(void);
> +
> +struct xmlNamespace {
> + virDomainDefNamespaceParse parse;
> + virDomainDefNamespaceFree free;
> + virDomainDefNamespaceXMLFormat format;
> + virDomainDefNamespaceHref href;
> +};
Lets rename that struct to have a virDomain prefix, since 'xmlNamespace'
could easily clash with something libxml might define.
> +
> /* Guest VM main configuration */
> typedef struct _virDomainDef virDomainDef;
> typedef virDomainDef *virDomainDefPtr;
> @@ -863,6 +876,9 @@ struct _virDomainDef {
> virSecurityLabelDef seclabel;
> virDomainWatchdogDefPtr watchdog;
> virCPUDefPtr cpu;
> +
> + void *namespaceData;
> + struct xmlNamespace ns;
> };
As mentioned in the other patch reply, I think it'd be preferable to
keep a struct with the parser config in virCapsPtr, so we don't need
to add to this struct, nor pass it into all the parse/format methods.
>
> /* Guest VM runtime state */
> @@ -965,21 +981,18 @@ virDomainDeviceDefPtr virDomainDeviceDefParse(virCapsPtr caps,
> int flags);
> virDomainDefPtr virDomainDefParseString(virCapsPtr caps,
> const char *xmlStr,
> + struct xmlNamespace *ns,
> int flags);
> virDomainDefPtr virDomainDefParseFile(virCapsPtr caps,
> const char *filename,
> + struct xmlNamespace *ns,
> int flags);
> virDomainDefPtr virDomainDefParseNode(virCapsPtr caps,
> xmlDocPtr doc,
> xmlNodePtr root,
> + struct xmlNamespace *ns,
> int flags);
>
> -virDomainObjPtr virDomainObjParseFile(virCapsPtr caps,
> - const char *filename);
> -virDomainObjPtr virDomainObjParseNode(virCapsPtr caps,
> - xmlDocPtr xml,
> - xmlNodePtr root);
> -
> int virDomainDefAddImplicitControllers(virDomainDefPtr def);
>
> # endif
> @@ -1024,6 +1037,7 @@ int virDomainLoadAllConfigs(virCapsPtr caps,
> const char *autostartDir,
> int liveStatus,
> virDomainLoadConfigNotify notify,
> + struct xmlNamespace *ns,
> void *opaque);
>
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