--- .../libvirt-gconfig-storage-pool-source.c | 132 +++++++++++++++++++++ .../libvirt-gconfig-storage-pool-source.h | 8 ++ libvirt-gconfig/libvirt-gconfig.sym | 9 ++ libvirt-gconfig/tests/test-domain-create.c | 3 + 4 files changed, 152 insertions(+) diff --git a/libvirt-gconfig/libvirt-gconfig-storage-pool-source.c b/libvirt-gconfig/libvirt-gconfig-storage-pool-source.c index e3967ad..ad8b28d 100644 --- a/libvirt-gconfig/libvirt-gconfig-storage-pool-source.c +++ b/libvirt-gconfig/libvirt-gconfig-storage-pool-source.c @@ -71,6 +71,22 @@ GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new_from_xml(const return GVIR_CONFIG_STORAGE_POOL_SOURCE(object); } +/** + * gvir_config_storage_pool_source_get_adapter: + * @source: a #GVirConfigStoragePoolSource + * + * For pools backed by a SCSI adapter, returns the SCSI adapter name + * + * Returns: the SCSI adapter name. + */ +const char *gvir_config_storage_pool_source_get_adapter(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "adapter", + "name"); +} + void gvir_config_storage_pool_source_set_adapter(GVirConfigStoragePoolSource *source, const char *adapter) { @@ -84,6 +100,23 @@ void gvir_config_storage_pool_source_set_adapter(GVirConfigStoragePoolSource *so g_object_unref(G_OBJECT(node)); } +/** + * gvir_config_storage_pool_source_get_device_path: + * @source: a #GVirConfigStoragePoolSource + * + * For pools backed by a physical device, returns the path to the block + * device node + * + * Returns: fully qualified path to the block device node. + */ +const char *gvir_config_storage_pool_source_get_device_path(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "device", + "path"); +} + void gvir_config_storage_pool_source_set_device_path(GVirConfigStoragePoolSource *source, const char *device_path) { @@ -97,6 +130,22 @@ void gvir_config_storage_pool_source_set_device_path(GVirConfigStoragePoolSource g_object_unref(G_OBJECT(node)); } +/** + * gvir_config_storage_pool_source_get_directory: + * @source: a #GVirConfigStoragePoolSource + * + * For pools backed by a directory, returns the path to the backing directory + * + * Returns: path to the directory backing directory. + */ +const char *gvir_config_storage_pool_source_get_directory(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "directory", + "path"); +} + void gvir_config_storage_pool_source_set_directory(GVirConfigStoragePoolSource *source, const char *directory) { @@ -110,6 +159,24 @@ void gvir_config_storage_pool_source_set_directory(GVirConfigStoragePoolSource * g_object_unref(G_OBJECT(node)); } +/** + * gvir_config_storage_pool_source_get_format: + * @source: a #GVirConfigStoragePoolSource + * + * Provides information about the format of the pool. This format is + * backend-specific but is typically used to indicate filesystem type, or + * network filesystem type, or partition table type, or LVM metadata type. + * + * Returns: the storage pool format. + */ +const char *gvir_config_storage_pool_source_get_format(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "format", + "type"); +} + void gvir_config_storage_pool_source_set_format(GVirConfigStoragePoolSource *source, const char *format) { @@ -123,6 +190,23 @@ void gvir_config_storage_pool_source_set_format(GVirConfigStoragePoolSource *sou g_object_unref(G_OBJECT(node)); } +/** + * gvir_config_storage_pool_source_get_host: + * @source: a #GVirConfigStoragePoolSource + * + * For pools backed by storage from remote server, returns the hostname + * of the remote server. + * + * Returns: hostname or IP address of the remote server. + */ +const char *gvir_config_storage_pool_source_get_host(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "host", + "name"); +} + void gvir_config_storage_pool_source_set_host(GVirConfigStoragePoolSource *source, const char *host) { @@ -137,6 +221,22 @@ void gvir_config_storage_pool_source_set_host(GVirConfigStoragePoolSource *sourc } /** + * gvir_config_storage_pool_source_get_name: + * @source: a #GVirConfigStoragePoolSource + * + * For pools backed by storage from a named element (for example, LV + * groups), returns the name of the element + * + * Returns: name of the element used by @source + */ +const char *gvir_config_storage_pool_source_get_name(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(source), + "name"); +} + +/** * gvir_config_storage_pool_source_set_name: * @name: (allow-none): */ @@ -149,6 +249,22 @@ void gvir_config_storage_pool_source_set_name(GVirConfigStoragePoolSource *sourc "name", name); } +/** + * gvir_config_storage_pool_source_get_product: + * @source: a #GVirConfigStoragePoolSource + * + * Gets the product name of the storage device. + * + * Returns: product name of the storage device. + */ +const char *gvir_config_storage_pool_source_get_product(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "product", + "name"); +} + void gvir_config_storage_pool_source_set_product(GVirConfigStoragePoolSource *source, const char *product) { @@ -162,6 +278,22 @@ void gvir_config_storage_pool_source_set_product(GVirConfigStoragePoolSource *so g_object_unref(G_OBJECT(node)); } +/** + * gvir_config_storage_pool_source_get_vendor: + * @source: a #GVirConfigStoragePoolSource + * + * Gets the vendor name of the storage device. + * + * Returns: vendor name of the storage device. + */ +const char *gvir_config_storage_pool_source_get_vendor(GVirConfigStoragePoolSource *source) +{ + g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source), NULL); + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(source), + "vendor", + "name"); +} + void gvir_config_storage_pool_source_set_vendor(GVirConfigStoragePoolSource *source, const char *vendor) { diff --git a/libvirt-gconfig/libvirt-gconfig-storage-pool-source.h b/libvirt-gconfig/libvirt-gconfig-storage-pool-source.h index 8ecaae3..d0056fc 100644 --- a/libvirt-gconfig/libvirt-gconfig-storage-pool-source.h +++ b/libvirt-gconfig/libvirt-gconfig-storage-pool-source.h @@ -63,20 +63,28 @@ GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new(void); GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new_from_xml(const gchar *xml, GError **error); +const char *gvir_config_storage_pool_source_get_adapter(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_adapter(GVirConfigStoragePoolSource *source, const char *adapter); +const char *gvir_config_storage_pool_source_get_device_path(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_device_path(GVirConfigStoragePoolSource *source, const char *device_path); +const char *gvir_config_storage_pool_source_get_directory(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_directory(GVirConfigStoragePoolSource *source, const char *directory); +const char *gvir_config_storage_pool_source_get_format(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_format(GVirConfigStoragePoolSource *source, const char *format); +const char *gvir_config_storage_pool_source_get_host(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_host(GVirConfigStoragePoolSource *source, const char *host); +const char *gvir_config_storage_pool_source_get_name(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_name(GVirConfigStoragePoolSource *source, const char *name); +const char *gvir_config_storage_pool_source_get_product(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_product(GVirConfigStoragePoolSource *source, const char *product); +const char *gvir_config_storage_pool_source_get_vendor(GVirConfigStoragePoolSource *source); void gvir_config_storage_pool_source_set_vendor(GVirConfigStoragePoolSource *source, const char *vendor); diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym index 93b2e33..49072dd 100644 --- a/libvirt-gconfig/libvirt-gconfig.sym +++ b/libvirt-gconfig/libvirt-gconfig.sym @@ -522,6 +522,15 @@ LIBVIRT_GCONFIG_0.1.7 { gvir_config_storage_pool_get_source; gvir_config_storage_pool_get_target; gvir_config_storage_pool_get_uuid; + + gvir_config_storage_pool_source_get_adapter; + gvir_config_storage_pool_source_get_device_path; + gvir_config_storage_pool_source_get_directory; + gvir_config_storage_pool_source_get_format; + gvir_config_storage_pool_source_get_host; + gvir_config_storage_pool_source_get_name; + gvir_config_storage_pool_source_get_product; + gvir_config_storage_pool_source_get_vendor; } LIBVIRT_GCONFIG_0.1.6; # .... define new API here using predicted next version number .... diff --git a/libvirt-gconfig/tests/test-domain-create.c b/libvirt-gconfig/tests/test-domain-create.c index e30f643..f7cb076 100644 --- a/libvirt-gconfig/tests/test-domain-create.c +++ b/libvirt-gconfig/tests/test-domain-create.c @@ -405,6 +405,9 @@ int main(int argc, char **argv) gvir_config_storage_pool_source_set_directory(pool_source, "/foo/bar"); gvir_config_storage_pool_set_source(pool, pool_source); g_object_unref(G_OBJECT(pool_source)); + pool_source = gvir_config_storage_pool_get_source(pool); + g_str_const_check(gvir_config_storage_pool_source_get_directory(pool_source), "/foo/bar"); + g_object_unref(G_OBJECT(pool_source)); perms = gvir_config_storage_permissions_new(); gvir_config_storage_permissions_set_owner(perms, 1001); -- 1.8.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list