void gvir_config_storage_vol_set_allocation(GVirConfigStorageVol *vol, guint64 allocation) { g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol)); gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(vol), "allocation", allocation); }
void gvir_config_storage_vol_set_capacity(GVirConfigStorageVol *vol, guint64 capacity) { g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol)); gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(vol), "capacity", capacity); }
/** * gvir_config_storage_vol_set_name: * @name: (allow-none): */ void gvir_config_storage_vol_set_name(GVirConfigStorageVol *vol, const char *name) { g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol)); gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(vol), "name", name); }
/** * gvir_config_storage_vol_set_backing_store: * @backing_store: (allow-none): */ void gvir_config_storage_vol_set_backing_store(GVirConfigStorageVol *vol, GVirConfigStorageVolBackingStore *backing_store) { g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol)); g_return_if_fail(backing_store == NULL || GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE(backing_store)); gvir_config_object_attach_replace(GVIR_CONFIG_OBJECT(vol), "backingStore", GVIR_CONFIG_OBJECT(backing_store)); }
/** * gvir_config_storage_vol_set_target: * @target: (allow-none): */ void gvir_config_storage_vol_set_target(GVirConfigStorageVol *vol, GVirConfigStorageVolTarget *target) { g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol)); g_return_if_fail(target == NULL || GVIR_CONFIG_IS_STORAGE_VOL_TARGET(target)); gvir_config_object_attach_replace(GVIR_CONFIG_OBJECT(vol), "target", GVIR_CONFIG_OBJECT(target)); }
/** * gvir_storage_pool_create_volume: * @pool: the storage pool in which to create the volume * @conf: the configuration for the new volume * @err: Place-holder for possible errors * * Returns: (transfer full): the newly created volume. The returned object * should be unreffed with g_object_unref() when no longer needed. */ GVirStorageVol *gvir_storage_pool_create_volume (GVirStoragePool *pool, GVirConfigStorageVol *conf, GError **err) { const gchar *xml; virStorageVolPtr handle; GVirStoragePoolPrivate *priv; g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), NULL); g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(conf), NULL); g_return_val_if_fail(err == NULL || *err == NULL, NULL); xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(conf)); g_return_val_if_fail(xml != NULL, NULL); priv = pool->priv; if (!(handle = virStorageVolCreateXML(priv->handle, xml, 0))) { gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR, 0, "Failed to create volume"); return NULL; } GVirStorageVol *volume; const char *name; volume = GVIR_STORAGE_VOL(g_object_new(GVIR_TYPE_STORAGE_VOL, "handle", handle, "pool", pool, NULL)); name = gvir_storage_vol_get_name(volume); if (name == NULL) { g_object_unref(G_OBJECT(volume)); return NULL; } g_mutex_lock(priv->lock); if (priv->volumes != NULL) { g_hash_table_insert(priv->volumes, g_strdup(name), volume); } else { g_warn_if_reached(); g_object_unref(G_OBJECT(volume)); g_mutex_unlock(priv->lock); return NULL; } g_mutex_unlock(priv->lock); return g_object_ref(volume); }