[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