[libvirt] [libvirt-glib 1/2] Add gvir_config_domain_disk_[gs]et_cache

Christophe Fergeau cfergeau at redhat.com
Fri Feb 17 13:22:31 UTC 2012


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");
> -- 
> 1.7.7.6
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120217/26c50959/attachment-0001.sig>


More information about the libvir-list mailing list