mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Add private data pointer to virStoragePool and virStorageVol
This will simplify the refactoring of the ESX storage driver to support a VMFS and an iSCSI backend. One of the tasks the storage driver needs to do is to decide which backend driver needs to be invoked for a given request. This approach extends virStoragePool and virStorageVol to store extra parameters: 1. privateData: stores pointer to respective backend storage driver. 2. privateDataFreeFunc: stores cleanup function pointer. virGetStoragePool and virGetStorageVol are modfied to accept these extra parameters as user params. virStoragePoolDispose and virStorageVolDispose checks for cleanup operation if available. The private data pointer allows the ESX storage driver to store a pointer to the used backend with each storage pool and volume. This avoids the need to detect the correct backend in each storage driver function call.
This commit is contained in:
parent
bb2704e7b5
commit
2b121dbc10
@ -4651,14 +4651,16 @@ get_nonnull_interface(virConnectPtr conn, remote_nonnull_interface iface)
|
||||
static virStoragePoolPtr
|
||||
get_nonnull_storage_pool(virConnectPtr conn, remote_nonnull_storage_pool pool)
|
||||
{
|
||||
return virGetStoragePool(conn, pool.name, BAD_CAST pool.uuid);
|
||||
return virGetStoragePool(conn, pool.name, BAD_CAST pool.uuid,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static virStorageVolPtr
|
||||
get_nonnull_storage_vol(virConnectPtr conn, remote_nonnull_storage_vol vol)
|
||||
{
|
||||
virStorageVolPtr ret;
|
||||
ret = virGetStorageVol(conn, vol.pool, vol.name, vol.key);
|
||||
ret = virGetStorageVol(conn, vol.pool, vol.name, vol.key,
|
||||
NULL, NULL);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1981,7 +1981,8 @@ virStoragePoolList(virConnectPtr conn,
|
||||
if (pools) {
|
||||
if (!(pool = virGetStoragePool(conn,
|
||||
poolobj->def->name,
|
||||
poolobj->def->uuid))) {
|
||||
poolobj->def->uuid,
|
||||
NULL, NULL))) {
|
||||
virStoragePoolObjUnlock(poolobj);
|
||||
goto cleanup;
|
||||
}
|
||||
|
@ -379,6 +379,8 @@ virInterfaceDispose(void *obj)
|
||||
* @conn: the hypervisor connection
|
||||
* @name: pointer to the storage pool name
|
||||
* @uuid: pointer to the uuid
|
||||
* @privateData: pointer to driver specific private data
|
||||
* @freeFunc: private data cleanup function pointer specfic to driver
|
||||
*
|
||||
* Lookup if the storage pool is already registered for that connection,
|
||||
* if yes return a new pointer to it, if no allocate a new structure,
|
||||
@ -389,7 +391,8 @@ virInterfaceDispose(void *obj)
|
||||
*/
|
||||
virStoragePoolPtr
|
||||
virGetStoragePool(virConnectPtr conn, const char *name,
|
||||
const unsigned char *uuid)
|
||||
const unsigned char *uuid,
|
||||
void *privateData, virFreeCallback freeFunc)
|
||||
{
|
||||
virStoragePoolPtr ret = NULL;
|
||||
|
||||
@ -412,6 +415,10 @@ virGetStoragePool(virConnectPtr conn, const char *name,
|
||||
ret->conn = virObjectRef(conn);
|
||||
memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
|
||||
|
||||
/* set the driver specific data */
|
||||
ret->privateData = privateData;
|
||||
ret->privateDataFreeFunc = freeFunc;
|
||||
|
||||
return ret;
|
||||
|
||||
no_memory:
|
||||
@ -442,6 +449,10 @@ virStoragePoolDispose(void *obj)
|
||||
virUUIDFormat(pool->uuid, uuidstr);
|
||||
VIR_DEBUG("release pool %p %s %s", pool, pool->name, uuidstr);
|
||||
|
||||
if (pool->privateDataFreeFunc) {
|
||||
pool->privateDataFreeFunc(pool->privateData);
|
||||
}
|
||||
|
||||
VIR_FREE(pool->name);
|
||||
virObjectUnref(pool->conn);
|
||||
}
|
||||
@ -453,6 +464,8 @@ virStoragePoolDispose(void *obj)
|
||||
* @pool: pool owning the volume
|
||||
* @name: pointer to the storage vol name
|
||||
* @key: pointer to unique key of the volume
|
||||
* @privateData: pointer to driver specific private data
|
||||
* @freeFunc: private data cleanup function pointer specfic to driver
|
||||
*
|
||||
* Lookup if the storage vol is already registered for that connection,
|
||||
* if yes return a new pointer to it, if no allocate a new structure,
|
||||
@ -463,7 +476,7 @@ virStoragePoolDispose(void *obj)
|
||||
*/
|
||||
virStorageVolPtr
|
||||
virGetStorageVol(virConnectPtr conn, const char *pool, const char *name,
|
||||
const char *key)
|
||||
const char *key, void *privateData, virFreeCallback freeFunc)
|
||||
{
|
||||
virStorageVolPtr ret = NULL;
|
||||
|
||||
@ -489,6 +502,10 @@ virGetStorageVol(virConnectPtr conn, const char *pool, const char *name,
|
||||
|
||||
ret->conn = virObjectRef(conn);
|
||||
|
||||
/* set driver specific data */
|
||||
ret->privateData = privateData;
|
||||
ret->privateDataFreeFunc = freeFunc;
|
||||
|
||||
return ret;
|
||||
|
||||
no_memory:
|
||||
@ -516,6 +533,10 @@ virStorageVolDispose(void *obj)
|
||||
virStorageVolPtr vol = obj;
|
||||
VIR_DEBUG("release vol %p %s", vol, vol->name);
|
||||
|
||||
if (vol->privateDataFreeFunc) {
|
||||
vol->privateDataFreeFunc(vol->privateData);
|
||||
}
|
||||
|
||||
VIR_FREE(vol->key);
|
||||
VIR_FREE(vol->name);
|
||||
VIR_FREE(vol->pool);
|
||||
|
@ -196,6 +196,13 @@ struct _virStoragePool {
|
||||
virConnectPtr conn; /* pointer back to the connection */
|
||||
char *name; /* the storage pool external name */
|
||||
unsigned char uuid[VIR_UUID_BUFLEN]; /* the storage pool unique identifier */
|
||||
|
||||
/* Private data pointer which can be used by driver as they wish.
|
||||
* Cleanup function pointer can be hooked to provide custom cleanup
|
||||
* operation.
|
||||
*/
|
||||
void *privateData;
|
||||
virFreeCallback privateDataFreeFunc;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -209,6 +216,13 @@ struct _virStorageVol {
|
||||
char *pool; /* Pool name of owner */
|
||||
char *name; /* the storage vol external name */
|
||||
char *key; /* unique key for storage vol */
|
||||
|
||||
/* Private data pointer which can be used by driver as they wish.
|
||||
* Cleanup function pointer can be hooked to provide custom cleanup
|
||||
* operation.
|
||||
*/
|
||||
void *privateData;
|
||||
virFreeCallback privateDataFreeFunc;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -293,12 +307,16 @@ virInterfacePtr virGetInterface(virConnectPtr conn,
|
||||
const char *name,
|
||||
const char *mac);
|
||||
virStoragePoolPtr virGetStoragePool(virConnectPtr conn,
|
||||
const char *name,
|
||||
const unsigned char *uuid);
|
||||
const char *name,
|
||||
const unsigned char *uuid,
|
||||
void *privateData,
|
||||
virFreeCallback freeFunc);
|
||||
virStorageVolPtr virGetStorageVol(virConnectPtr conn,
|
||||
const char *pool,
|
||||
const char *name,
|
||||
const char *key);
|
||||
const char *key,
|
||||
void *privateData,
|
||||
virFreeCallback freeFunc);
|
||||
virNodeDevicePtr virGetNodeDevice(virConnectPtr conn,
|
||||
const char *name);
|
||||
virSecretPtr virGetSecret(virConnectPtr conn,
|
||||
|
@ -282,7 +282,7 @@ esxStoragePoolLookupByName(virConnectPtr conn, const char *name)
|
||||
md5_buffer(hostMount->mountInfo->path,
|
||||
strlen(hostMount->mountInfo->path), md5);
|
||||
|
||||
pool = virGetStoragePool(conn, name, md5);
|
||||
pool = virGetStoragePool(conn, name, md5, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
esxVI_ObjectContent_Free(&datastore);
|
||||
@ -348,7 +348,7 @@ esxStoragePoolLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
pool = virGetStoragePool(conn, name, uuid);
|
||||
pool = virGetStoragePool(conn, name, uuid, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
esxVI_String_Free(&propertyNameList);
|
||||
@ -766,7 +766,7 @@ esxStorageVolumeLookupByName(virStoragePoolPtr pool, const char *name)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
volume = virGetStorageVol(pool->conn, pool->name, name, key);
|
||||
volume = virGetStorageVol(pool->conn, pool->name, name, key, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(datastorePath);
|
||||
@ -800,7 +800,7 @@ esxStorageVolumeLookupByPath(virConnectPtr conn, const char *path)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
volume = virGetStorageVol(conn, datastoreName, directoryAndFileName, key);
|
||||
volume = virGetStorageVol(conn, datastoreName, directoryAndFileName, key, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(datastoreName);
|
||||
@ -934,7 +934,7 @@ esxStorageVolumeLookupByKey(virConnectPtr conn, const char *key)
|
||||
if (STREQ(key, key_candidate)) {
|
||||
/* Found matching UUID */
|
||||
volume = virGetStorageVol(conn, datastoreName,
|
||||
volumeName, key);
|
||||
volumeName, key, NULL, NULL);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
@ -1155,7 +1155,7 @@ esxStorageVolumeCreateXML(virStoragePoolPtr pool, const char *xmldesc,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
volume = virGetStorageVol(pool->conn, pool->name, def->name, key);
|
||||
volume = virGetStorageVol(pool->conn, pool->name, def->name, key, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (virtualDiskSpec != NULL) {
|
||||
@ -1357,7 +1357,7 @@ esxStorageVolumeCreateXMLFrom(virStoragePoolPtr pool, const char *xmldesc,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
volume = virGetStorageVol(pool->conn, pool->name, def->name, key);
|
||||
volume = virGetStorageVol(pool->conn, pool->name, def->name, key, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(sourceDatastorePath);
|
||||
|
@ -350,7 +350,8 @@ parallelsStoragePoolLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -374,7 +375,8 @@ parallelsStoragePoolLookupByName(virConnectPtr conn, const char *name)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -459,7 +461,8 @@ parallelsStoragePoolDefine(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolDefFree(def);
|
||||
@ -831,7 +834,8 @@ parallelsStorageVolumeLookupByName(virStoragePoolPtr pool,
|
||||
}
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (privpool)
|
||||
@ -857,7 +861,8 @@ parallelsStorageVolumeLookupByKey(virConnectPtr conn, const char *key)
|
||||
if (privvol) {
|
||||
ret = virGetStorageVol(conn,
|
||||
privconn->pools.objs[i]->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
virStoragePoolObjUnlock(privconn->pools.objs[i]);
|
||||
break;
|
||||
}
|
||||
@ -889,7 +894,8 @@ parallelsStorageVolumeLookupByPathLocked(virConnectPtr conn, const char *path)
|
||||
if (privvol) {
|
||||
ret = virGetStorageVol(conn,
|
||||
privconn->pools.objs[i]->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
virStoragePoolObjUnlock(privconn->pools.objs[i]);
|
||||
break;
|
||||
}
|
||||
@ -1026,7 +1032,8 @@ parallelsStorageVolumeCreateXML(virStoragePoolPtr pool,
|
||||
goto cleanup;
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
cleanup:
|
||||
if (privpool)
|
||||
virStoragePoolObjUnlock(privpool);
|
||||
@ -1115,7 +1122,8 @@ parallelsStorageVolumeCreateXMLFrom(virStoragePoolPtr pool,
|
||||
privpool->volumes.objs[privpool->volumes.count++] = privvol;
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
privvol = NULL;
|
||||
|
||||
cleanup:
|
||||
|
@ -2021,7 +2021,7 @@ phypVolumeLookupByName(virStoragePoolPtr pool, const char *volname)
|
||||
if (key == NULL)
|
||||
return NULL;
|
||||
|
||||
vol = virGetStorageVol(pool->conn, pool->name, volname, key);
|
||||
vol = virGetStorageVol(pool->conn, pool->name, volname, key, NULL, NULL);
|
||||
|
||||
VIR_FREE(key);
|
||||
|
||||
@ -2111,7 +2111,7 @@ phypStorageVolCreateXML(virStoragePoolPtr pool,
|
||||
|
||||
if ((vol =
|
||||
virGetStorageVol(pool->conn, pool->name, voldef->name,
|
||||
key)) == NULL)
|
||||
key, NULL, NULL)) == NULL)
|
||||
goto err;
|
||||
|
||||
VIR_FREE(key);
|
||||
@ -2192,7 +2192,7 @@ phypVolumeLookupByPath(virConnectPtr conn, const char *volname)
|
||||
if (key == NULL)
|
||||
goto cleanup;
|
||||
|
||||
vol = virGetStorageVol(conn, ret, volname, key);
|
||||
vol = virGetStorageVol(conn, ret, volname, key, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(ret);
|
||||
@ -2250,7 +2250,7 @@ phypStoragePoolLookupByName(virConnectPtr conn, const char *name)
|
||||
if (phypGetStoragePoolUUID(conn, uuid, name) == -1)
|
||||
return NULL;
|
||||
|
||||
return virGetStoragePool(conn, name, uuid);
|
||||
return virGetStoragePool(conn, name, uuid, NULL, NULL);
|
||||
}
|
||||
|
||||
static char *
|
||||
@ -2684,7 +2684,7 @@ phypGetStoragePoolLookUpByUUID(virConnectPtr conn,
|
||||
continue;
|
||||
|
||||
if (!memcmp(local_uuid, uuid, VIR_UUID_BUFLEN)) {
|
||||
sp = virGetStoragePool(conn, pools[i], uuid);
|
||||
sp = virGetStoragePool(conn, pools[i], uuid, NULL, NULL);
|
||||
VIR_FREE(local_uuid);
|
||||
VIR_FREE(pools);
|
||||
|
||||
@ -2728,7 +2728,7 @@ phypStoragePoolCreateXML(virConnectPtr conn,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((sp = virGetStoragePool(conn, def->name, def->uuid)) == NULL)
|
||||
if ((sp = virGetStoragePool(conn, def->name, def->uuid, NULL, NULL)) == NULL)
|
||||
goto err;
|
||||
|
||||
if (phypBuildStoragePool(conn, def) == -1)
|
||||
|
@ -5863,13 +5863,15 @@ get_nonnull_interface(virConnectPtr conn, remote_nonnull_interface iface)
|
||||
static virStoragePoolPtr
|
||||
get_nonnull_storage_pool(virConnectPtr conn, remote_nonnull_storage_pool pool)
|
||||
{
|
||||
return virGetStoragePool(conn, pool.name, BAD_CAST pool.uuid);
|
||||
return virGetStoragePool(conn, pool.name, BAD_CAST pool.uuid,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static virStorageVolPtr
|
||||
get_nonnull_storage_vol(virConnectPtr conn, remote_nonnull_storage_vol vol)
|
||||
{
|
||||
return virGetStorageVol(conn, vol.pool, vol.name, vol.key);
|
||||
return virGetStorageVol(conn, vol.pool, vol.name, vol.key,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static virNodeDevicePtr
|
||||
|
@ -273,7 +273,8 @@ storagePoolLookupByUUID(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -298,7 +299,8 @@ storagePoolLookupByName(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -555,7 +557,8 @@ storagePoolCreate(virConnectPtr conn,
|
||||
VIR_INFO("Creating storage pool '%s'", pool->def->name);
|
||||
pool->active = 1;
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolDefFree(def);
|
||||
@ -601,7 +604,8 @@ storagePoolDefine(virConnectPtr conn,
|
||||
def = NULL;
|
||||
|
||||
VIR_INFO("Defining storage pool '%s'", pool->def->name);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolDefFree(def);
|
||||
@ -1202,7 +1206,8 @@ storagePoolListAllVolumes(virStoragePoolPtr pool,
|
||||
for (i = 0 ; i < obj->volumes.count; i++) {
|
||||
if (!(vol = virGetStorageVol(pool->conn, obj->def->name,
|
||||
obj->volumes.objs[i]->name,
|
||||
obj->volumes.objs[i]->key)))
|
||||
obj->volumes.objs[i]->key,
|
||||
NULL, NULL)))
|
||||
goto cleanup;
|
||||
tmp_vols[nvols++] = vol;
|
||||
}
|
||||
@ -1258,7 +1263,8 @@ storageVolumeLookupByName(virStoragePoolPtr obj,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStorageVol(obj->conn, pool->def->name, vol->name, vol->key);
|
||||
ret = virGetStorageVol(obj->conn, pool->def->name, vol->name, vol->key,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -1285,7 +1291,8 @@ storageVolumeLookupByKey(virConnectPtr conn,
|
||||
ret = virGetStorageVol(conn,
|
||||
driver->pools.objs[i]->def->name,
|
||||
vol->name,
|
||||
vol->key);
|
||||
vol->key,
|
||||
NULL, NULL);
|
||||
}
|
||||
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
||||
}
|
||||
@ -1338,7 +1345,8 @@ storageVolumeLookupByPath(virConnectPtr conn,
|
||||
ret = virGetStorageVol(conn,
|
||||
driver->pools.objs[i]->def->name,
|
||||
vol->name,
|
||||
vol->key);
|
||||
vol->key,
|
||||
NULL, NULL);
|
||||
}
|
||||
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
||||
}
|
||||
@ -1415,7 +1423,7 @@ storageVolumeCreateXML(virStoragePoolPtr obj,
|
||||
|
||||
pool->volumes.objs[pool->volumes.count++] = voldef;
|
||||
volobj = virGetStorageVol(obj->conn, pool->def->name, voldef->name,
|
||||
voldef->key);
|
||||
voldef->key, NULL, NULL);
|
||||
if (!volobj) {
|
||||
pool->volumes.count--;
|
||||
goto cleanup;
|
||||
@ -1587,7 +1595,7 @@ storageVolumeCreateXMLFrom(virStoragePoolPtr obj,
|
||||
|
||||
pool->volumes.objs[pool->volumes.count++] = newvol;
|
||||
volobj = virGetStorageVol(obj->conn, pool->def->name, newvol->name,
|
||||
newvol->key);
|
||||
newvol->key, NULL, NULL);
|
||||
|
||||
/* Drop the pool lock during volume allocation */
|
||||
pool->asyncjobs++;
|
||||
|
@ -3885,7 +3885,8 @@ testStoragePoolLookupByUUID(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -3909,7 +3910,8 @@ testStoragePoolLookupByName(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
@ -4201,7 +4203,8 @@ testStoragePoolCreate(virConnectPtr conn,
|
||||
}
|
||||
pool->active = 1;
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolDefFree(def);
|
||||
@ -4241,7 +4244,8 @@ testStoragePoolDefine(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid);
|
||||
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolDefFree(def);
|
||||
@ -4668,7 +4672,8 @@ testStoragePoolListAllVolumes(virStoragePoolPtr obj,
|
||||
for (i = 0 ; i < pool->volumes.count; i++) {
|
||||
if (!(vol = virGetStorageVol(obj->conn, pool->def->name,
|
||||
pool->volumes.objs[i]->name,
|
||||
pool->volumes.objs[i]->key)))
|
||||
pool->volumes.objs[i]->key,
|
||||
NULL, NULL)))
|
||||
goto cleanup;
|
||||
tmp_vols[nvols++] = vol;
|
||||
}
|
||||
@ -4725,7 +4730,8 @@ testStorageVolumeLookupByName(virStoragePoolPtr pool,
|
||||
}
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if (privpool)
|
||||
@ -4752,7 +4758,8 @@ testStorageVolumeLookupByKey(virConnectPtr conn,
|
||||
ret = virGetStorageVol(conn,
|
||||
privconn->pools.objs[i]->def->name,
|
||||
privvol->name,
|
||||
privvol->key);
|
||||
privvol->key,
|
||||
NULL, NULL);
|
||||
virStoragePoolObjUnlock(privconn->pools.objs[i]);
|
||||
break;
|
||||
}
|
||||
@ -4786,7 +4793,8 @@ testStorageVolumeLookupByPath(virConnectPtr conn,
|
||||
ret = virGetStorageVol(conn,
|
||||
privconn->pools.objs[i]->def->name,
|
||||
privvol->name,
|
||||
privvol->key);
|
||||
privvol->key,
|
||||
NULL, NULL);
|
||||
virStoragePoolObjUnlock(privconn->pools.objs[i]);
|
||||
break;
|
||||
}
|
||||
@ -4875,7 +4883,8 @@ testStorageVolumeCreateXML(virStoragePoolPtr pool,
|
||||
privpool->volumes.objs[privpool->volumes.count++] = privvol;
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
privvol = NULL;
|
||||
|
||||
cleanup:
|
||||
@ -4969,7 +4978,8 @@ testStorageVolumeCreateXMLFrom(virStoragePoolPtr pool,
|
||||
privpool->volumes.objs[privpool->volumes.count++] = privvol;
|
||||
|
||||
ret = virGetStorageVol(pool->conn, privpool->def->name,
|
||||
privvol->name, privvol->key);
|
||||
privvol->name, privvol->key,
|
||||
NULL, NULL);
|
||||
privvol = NULL;
|
||||
|
||||
cleanup:
|
||||
|
@ -8321,7 +8321,7 @@ static virStoragePoolPtr vboxStoragePoolLookupByName(virConnectPtr conn, const c
|
||||
|
||||
ignore_value(virUUIDParse(uuidstr, uuid));
|
||||
|
||||
ret = virGetStoragePool(conn, name, uuid);
|
||||
ret = virGetStoragePool(conn, name, uuid, NULL, NULL);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -8450,7 +8450,8 @@ static virStorageVolPtr vboxStorageVolLookupByName(virStoragePoolPtr pool, const
|
||||
vboxIIDToUUID(&hddIID, uuid);
|
||||
virUUIDFormat(uuid, key);
|
||||
|
||||
ret = virGetStorageVol(pool->conn, pool->name, name, key);
|
||||
ret = virGetStorageVol(pool->conn, pool->name, name, key,
|
||||
NULL, NULL);
|
||||
|
||||
VIR_DEBUG("virStorageVolPtr: %p", ret);
|
||||
VIR_DEBUG("Storage Volume Name: %s", name);
|
||||
@ -8511,7 +8512,8 @@ static virStorageVolPtr vboxStorageVolLookupByKey(virConnectPtr conn, const char
|
||||
|
||||
if (hddNameUtf8) {
|
||||
if (vboxStorageNumOfPools(conn) == 1) {
|
||||
ret = virGetStorageVol(conn, "default-pool", hddNameUtf8, key);
|
||||
ret = virGetStorageVol(conn, "default-pool", hddNameUtf8, key,
|
||||
NULL, NULL);
|
||||
VIR_DEBUG("Storage Volume Pool: %s", "default-pool");
|
||||
} else {
|
||||
/* TODO: currently only one default pool and thus
|
||||
@ -8583,7 +8585,8 @@ static virStorageVolPtr vboxStorageVolLookupByPath(virConnectPtr conn, const cha
|
||||
* the check below, change it when pools are supported
|
||||
*/
|
||||
if (vboxStorageNumOfPools(conn) == 1)
|
||||
ret = virGetStorageVol(conn, "default-pool", hddNameUtf8, key);
|
||||
ret = virGetStorageVol(conn, "default-pool", hddNameUtf8, key,
|
||||
NULL, NULL);
|
||||
|
||||
VIR_DEBUG("Storage Volume Pool: %s", "default-pool");
|
||||
VIR_DEBUG("Storage Volume Name: %s", hddNameUtf8);
|
||||
@ -8683,7 +8686,8 @@ static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool,
|
||||
vboxIIDToUUID(&hddIID, uuid);
|
||||
virUUIDFormat(uuid, key);
|
||||
|
||||
ret = virGetStorageVol(pool->conn, pool->name, def->name, key);
|
||||
ret = virGetStorageVol(pool->conn, pool->name, def->name, key,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
vboxIIDUnalloc(&hddIID);
|
||||
|
Loading…
x
Reference in New Issue
Block a user