[libvirt] [libvirt-glib 1/2] Add gvir_config_domain_disk_[gs]et_cache
Daniel P. Berrange
berrange at redhat.com
Fri Feb 17 13:27:56 UTC 2012
On Fri, Feb 17, 2012 at 02:22:31PM +0100, Christophe Fergeau wrote:
> Ping?
>
> On Wed, Feb 08, 2012 at 12:13:02PM +0100, Christophe Fergeau wrote:
> > ---
> > libvirt-gconfig/libvirt-gconfig-domain-disk.c | 23 +++++++++++++++++++++++
> > libvirt-gconfig/libvirt-gconfig-domain-disk.h | 12 ++++++++++++
> > libvirt-gconfig/libvirt-gconfig.sym | 3 +++
> > libvirt-gconfig/tests/test-domain-create.c | 2 ++
> > 4 files changed, 40 insertions(+), 0 deletions(-)
> >
> > diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.c b/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> > index b2861e4..afa7eda 100644
> > --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> > +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> > @@ -172,6 +172,18 @@ void gvir_config_domain_disk_set_driver_type(GVirConfigDomainDisk *disk,
> > "driver", "type", driver_type);
> > }
> >
> > +void gvir_config_domain_disk_set_driver_cache(GVirConfigDomainDisk *disk,
> > + GVirConfigDomainDiskCacheType cache_type)
> > +{
> > + const char *cache_str;
> > +
> > + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
> > + cache_str = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_DISK_CACHE_TYPE, cache_type);
> > + g_return_if_fail(cache_str != NULL);
> > + gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
> > + "driver", "cache", cache_str);
> > +}
> > +
> > void gvir_config_domain_disk_set_target_bus(GVirConfigDomainDisk *disk,
> > GVirConfigDomainDiskBus bus)
> > {
> > @@ -269,6 +281,17 @@ gvir_config_domain_disk_get_driver_type(GVirConfigDomainDisk *disk)
> > "driver", "type");
> > }
> >
> > +GVirConfigDomainDiskCacheType
> > +gvir_config_domain_disk_get_driver_cache(GVirConfigDomainDisk *disk)
> > +{
> > + g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk),
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DEFAULT);
> > +
> > + return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(disk),
> > + "driver", "cache",
> > + GVIR_CONFIG_TYPE_DOMAIN_DISK_CACHE_TYPE,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DEFAULT);
> > +}
> > GVirConfigDomainDiskBus
> > gvir_config_domain_disk_get_target_bus(GVirConfigDomainDisk *disk)
> > {
> > diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.h b/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> > index 3359049..4b16b80 100644
> > --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> > +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> > @@ -75,6 +75,15 @@ typedef enum {
> > } GVirConfigDomainDiskBus;
> >
> > typedef enum {
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DEFAULT,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_NONE,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITETHROUGH,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITEBACK,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DIRECTSYNC,
> > + GVIR_CONFIG_DOMAIN_DISK_CACHE_UNSAFE
> > +} GVirConfigDomainDiskCacheType;
> > +
> > +typedef enum {
> > GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_DISK,
> > GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_FLOPPY,
> > GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_CDROM
> > @@ -100,6 +109,8 @@ void gvir_config_domain_disk_set_snapshot_type(GVirConfigDomainDisk *disk,
> > GVirConfigDomainDiskSnapshotType type);
> > void gvir_config_domain_disk_set_source(GVirConfigDomainDisk *disk,
> > const char *source);
> > +void gvir_config_domain_disk_set_driver_cache(GVirConfigDomainDisk *disk,
> > + GVirConfigDomainDiskCacheType cache_type);
> > void gvir_config_domain_disk_set_driver_name(GVirConfigDomainDisk *disk,
> > const char *driver_name);
> > void gvir_config_domain_disk_set_driver_type(GVirConfigDomainDisk *disk,
> > @@ -113,6 +124,7 @@ GVirConfigDomainDiskType gvir_config_domain_disk_get_disk_type(GVirConfigDomainD
> > GVirConfigDomainDiskGuestDeviceType gvir_config_domain_disk_get_guest_device_type(GVirConfigDomainDisk *disk);
> > GVirConfigDomainDiskSnapshotType gvir_config_domain_disk_get_snapshot_type(GVirConfigDomainDisk *disk);
> > char *gvir_config_domain_disk_get_source(GVirConfigDomainDisk *disk);
> > +GVirConfigDomainDiskCacheType gvir_config_domain_disk_get_driver_cache(GVirConfigDomainDisk *disk);
> > char *gvir_config_domain_disk_get_driver_name(GVirConfigDomainDisk *disk);
> > char *gvir_config_domain_disk_get_driver_type(GVirConfigDomainDisk *disk);
> > GVirConfigDomainDiskBus gvir_config_domain_disk_get_target_bus(GVirConfigDomainDisk *disk);
> > diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
> > index ab2c7bf..96ce58f 100644
> > --- a/libvirt-gconfig/libvirt-gconfig.sym
> > +++ b/libvirt-gconfig/libvirt-gconfig.sym
> > @@ -69,11 +69,14 @@ LIBVIRT_GCONFIG_0.0.4 {
> >
> > gvir_config_domain_disk_get_type;
> > gvir_config_domain_disk_bus_get_type;
> > + gvir_config_domain_disk_cache_type_get_type;
> > gvir_config_domain_disk_guest_device_type_get_type;
> > gvir_config_domain_disk_snapshot_type_get_type;
> > gvir_config_domain_disk_type_get_type;
> > gvir_config_domain_disk_new;
> > gvir_config_domain_disk_new_from_xml;
> > + gvir_config_domain_disk_get_driver_cache;
> > + gvir_config_domain_disk_set_driver_cache;
> > gvir_config_domain_disk_get_driver_name;
> > gvir_config_domain_disk_set_driver_name;
> > gvir_config_domain_disk_get_driver_type;
> > diff --git a/libvirt-gconfig/tests/test-domain-create.c b/libvirt-gconfig/tests/test-domain-create.c
> > index 821e0b0..0cd8304 100644
> > --- a/libvirt-gconfig/tests/test-domain-create.c
> > +++ b/libvirt-gconfig/tests/test-domain-create.c
> > @@ -101,6 +101,8 @@ int main(int argc, char **argv)
> > gvir_config_domain_disk_set_driver_name(disk, "foo");
> > gvir_config_domain_disk_set_driver_type(disk, "bar");
> > gvir_config_domain_disk_set_driver_name(disk, "qemu");
> > + gvir_config_domain_disk_set_driver_cache(disk, GVIR_CONFIG_DOMAIN_DISK_CACHE_NONE);
> > + g_assert(gvir_config_domain_disk_get_driver_cache(disk) == GVIR_CONFIG_DOMAIN_DISK_CACHE_NONE);
> > gvir_config_domain_disk_set_driver_type(disk, "qcow2");
> > gvir_config_domain_disk_set_target_bus(disk, GVIR_CONFIG_DOMAIN_DISK_BUS_IDE);
> > gvir_config_domain_disk_set_target_dev(disk, "hda");
ACK
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 :|
More information about the libvir-list
mailing list