On Thu, Jan 12, 2012 at 07:07:22PM +0000, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <[email protected]> > > --- > libvirt-gconfig/libvirt-gconfig-domain-channel.c | 23 > ++++++++++++++++++++++ > libvirt-gconfig/libvirt-gconfig-domain-channel.h | 11 ++++++++++ > libvirt-gconfig/libvirt-gconfig-domain-console.c | 12 +++++++++++ > libvirt-gconfig/libvirt-gconfig-domain-console.h | 12 +++++++++++ > libvirt-gconfig/libvirt-gconfig-object-private.h | 5 ++++ > libvirt-gconfig/libvirt-gconfig-object.c | 15 ++++++++++++++ > libvirt-gconfig/libvirt-gconfig.sym | 5 ++++ > 7 files changed, 83 insertions(+), 0 deletions(-) > > diff --git a/libvirt-gconfig/libvirt-gconfig-domain-channel.c > b/libvirt-gconfig/libvirt-gconfig-domain-channel.c > index 02f8fe7..a4f9527 100644 > --- a/libvirt-gconfig/libvirt-gconfig-domain-channel.c > +++ b/libvirt-gconfig/libvirt-gconfig-domain-channel.c > @@ -23,6 +23,7 @@ > #include <config.h> > > #include "libvirt-gconfig/libvirt-gconfig.h" > +#include "libvirt-gconfig/libvirt-gconfig-private.h" > > #define GVIR_CONFIG_DOMAIN_CHANNEL_GET_PRIVATE(obj) \ > (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL, > GVirConfigDomainChannelPrivate)) > @@ -68,3 +69,25 @@ GVirConfigDomainChannel > *gvir_config_domain_channel_new_from_xml(const gchar *xm > return NULL; > return GVIR_CONFIG_DOMAIN_CHANNEL(object); > } > + > + > +void gvir_config_domain_channel_set_target_type(GVirConfigDomainChannel > *channel, > + > GVirConfigDomainChannelTargetType type) > +{ > + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHANNEL(channel)); > + > + > gvir_config_object_add_child_with_attribute_enum(GVIR_CONFIG_OBJECT(channel), > + "target", "type", > + > GVIR_CONFIG_TYPE_DOMAIN_CHANNEL_TARGET_TYPE, > + type); > +} > + > + > +void gvir_config_domain_channel_set_target_name(GVirConfigDomainChannel > *channel, > + const gchar *name) > +{ > + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHANNEL(channel)); > + > + gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(channel), > + "target", "name", name); > +}
_set_target_type and _set_target_name create a different <target> node when
they are called, this is probably not what we want.
Apart from this issue, the patch looks good to me.
Christophe
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-channel.h
> b/libvirt-gconfig/libvirt-gconfig-domain-channel.h
> index 0e48bcf..a8a3020 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-channel.h
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-channel.h
> @@ -56,12 +56,23 @@ struct _GVirConfigDomainChannelClass
> gpointer padding[20];
> };
>
> +typedef enum {
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_GUESTFWD,
> + GVIR_CONFIG_DOMAIN_CHANNEL_TARGET_VIRTIO,
> +} GVirConfigDomainChannelTargetType;
> +
>
> GType gvir_config_domain_channel_get_type(void);
> GVirConfigDomainChannel *gvir_config_domain_channel_new(void);
> GVirConfigDomainChannel *gvir_config_domain_channel_new_from_xml(const gchar
> *xml,
> GError
> **error);
>
> +void gvir_config_domain_channel_set_target_type(GVirConfigDomainChannel
> *channel,
> +
> GVirConfigDomainChannelTargetType type);
> +void gvir_config_domain_channel_set_target_name(GVirConfigDomainChannel
> *channel,
> + const gchar *name);
> +
> +
> G_END_DECLS
>
> #endif /* __LIBVIRT_GCONFIG_DOMAIN_CHANNEL_H__ */
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-console.c
> b/libvirt-gconfig/libvirt-gconfig-domain-console.c
> index 03ee1a7..db97322 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-console.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-console.c
> @@ -23,6 +23,7 @@
> #include <config.h>
>
> #include "libvirt-gconfig/libvirt-gconfig.h"
> +#include "libvirt-gconfig/libvirt-gconfig-private.h"
>
> #define GVIR_CONFIG_DOMAIN_CONSOLE_GET_PRIVATE(obj) \
> (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE,
> GVirConfigDomainConsolePrivate))
> @@ -68,3 +69,14 @@ GVirConfigDomainConsole
> *gvir_config_domain_console_new_from_xml(const gchar *xm
> return NULL;
> return GVIR_CONFIG_DOMAIN_CONSOLE(object);
> }
> +
> +void gvir_config_domain_console_set_target_type(GVirConfigDomainConsole
> *console,
> +
> GVirConfigDomainConsoleTargetType type)
> +{
> + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CONSOLE(console));
> +
> +
> gvir_config_object_add_child_with_attribute_enum(GVIR_CONFIG_OBJECT(console),
> + "target", "type",
> +
> GVIR_CONFIG_TYPE_DOMAIN_CONSOLE_TARGET_TYPE,
> + type);
> +}
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-console.h
> b/libvirt-gconfig/libvirt-gconfig-domain-console.h
> index 00e142a..1c735e9 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-console.h
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-console.h
> @@ -57,11 +57,23 @@ struct _GVirConfigDomainConsoleClass
> };
>
>
> +typedef enum {
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_XEN,
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_SERIAL,
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_UML,
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_VIRTIO,
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_LXC,
> + GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_OPENVZ,
> +} GVirConfigDomainConsoleTargetType;
> +
> GType gvir_config_domain_console_get_type(void);
> GVirConfigDomainConsole *gvir_config_domain_console_new(void);
> GVirConfigDomainConsole *gvir_config_domain_console_new_from_xml(const gchar
> *xml,
> GError
> **error);
>
> +void gvir_config_domain_console_set_target_type(GVirConfigDomainConsole
> *console,
> +
> GVirConfigDomainConsoleTargetType type);
> +
> G_END_DECLS
>
> #endif /* __LIBVIRT_GCONFIG_DOMAIN_CONSOLE_H__ */
> diff --git a/libvirt-gconfig/libvirt-gconfig-object-private.h
> b/libvirt-gconfig/libvirt-gconfig-object-private.h
> index 0c0c44f..6d01e26 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object-private.h
> +++ b/libvirt-gconfig/libvirt-gconfig-object-private.h
> @@ -59,6 +59,11 @@ void
> gvir_config_object_add_child_with_attribute(GVirConfigObject *object,
> const char *child_name,
> const char *attr_name,
> const char *attr_value);
> +void gvir_config_object_add_child_with_attribute_enum(GVirConfigObject
> *object,
> + const char *child_name,
> + const char *attr_name,
> + GType attr_type,
> + unsigned int
> attr_value);
> GVirConfigObject *gvir_config_object_replace_child(GVirConfigObject *object,
> const char *child_name);
> void gvir_config_object_replace_child_with_attribute(GVirConfigObject
> *object,
> diff --git a/libvirt-gconfig/libvirt-gconfig-object.c
> b/libvirt-gconfig/libvirt-gconfig-object.c
> index a3b7109..5645490 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object.c
> +++ b/libvirt-gconfig/libvirt-gconfig-object.c
> @@ -419,6 +419,21 @@
> gvir_config_object_add_child_with_attribute(GVirConfigObject *object,
> g_object_unref(G_OBJECT(child));
> }
>
> +
> +void gvir_config_object_add_child_with_attribute_enum(GVirConfigObject
> *object,
> + const char *child_name,
> + const char *attr_name,
> + GType attr_type,
> + unsigned int
> attr_value)
> +{
> + GVirConfigObject *child;
> +
> + child = gvir_config_object_add_child(object, child_name);
> + gvir_config_object_set_attribute_with_type(child, attr_name, attr_type,
> attr_value, NULL);
> + g_object_unref(G_OBJECT(child));
> +}
> +
> +
> G_GNUC_INTERNAL GVirConfigObject *
> gvir_config_object_replace_child(GVirConfigObject *object,
> const char *child_name)
> diff --git a/libvirt-gconfig/libvirt-gconfig.sym
> b/libvirt-gconfig/libvirt-gconfig.sym
> index 7cf3c3d..1c11729 100644
> --- a/libvirt-gconfig/libvirt-gconfig.sym
> +++ b/libvirt-gconfig/libvirt-gconfig.sym
> @@ -33,6 +33,9 @@ LIBVIRT_GCONFIG_0.0.3 {
> gvir_config_domain_channel_get_type;
> gvir_config_domain_channel_new;
> gvir_config_domain_channel_new_from_xml;
> + gvir_config_domain_channel_set_target_type;
> + gvir_config_domain_channel_set_target_name;
> + gvir_config_domain_channel_target_type_get_type;
>
> gvir_config_domain_chardev_get_type;
> gvir_config_domain_chardev_set_source;
> @@ -55,6 +58,8 @@ LIBVIRT_GCONFIG_0.0.3 {
> gvir_config_domain_console_get_type;
> gvir_config_domain_console_new;
> gvir_config_domain_console_new_from_xml;
> + gvir_config_domain_console_set_target_type;
> + gvir_config_domain_console_target_type_get_type;
>
> gvir_config_domain_device_get_type;
>
> --
> 1.7.7.5
>
> --
> libvir-list mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/libvir-list
pgp36GIgN8sCe.pgp
Description: PGP signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
