mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
storage: Introduce internal pool support
To allow using the storage driver APIs to do operation on generic domain disks we will need to introduce internal storage pools that will give is a base to support this stuff even on files that weren't originally defined as a part of the pool. This patch introduces the 'internal' flag for a storage pool that will prevent it from being listed along with the user defined storage pools.
This commit is contained in:
parent
b3c1a25df8
commit
362da8209d
@ -2172,6 +2172,9 @@ static bool
|
|||||||
virStoragePoolMatch(virStoragePoolObjPtr poolobj,
|
virStoragePoolMatch(virStoragePoolObjPtr poolobj,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
|
if (poolobj->internal)
|
||||||
|
return false;
|
||||||
|
|
||||||
/* filter by active state */
|
/* filter by active state */
|
||||||
if (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_ACTIVE) &&
|
if (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_ACTIVE) &&
|
||||||
!((MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE) &&
|
!((MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE) &&
|
||||||
|
@ -332,6 +332,7 @@ struct _virStoragePoolObj {
|
|||||||
int active;
|
int active;
|
||||||
int autostart;
|
int autostart;
|
||||||
unsigned int asyncjobs;
|
unsigned int asyncjobs;
|
||||||
|
bool internal;
|
||||||
|
|
||||||
virStoragePoolDefPtr def;
|
virStoragePoolDefPtr def;
|
||||||
virStoragePoolDefPtr newDef;
|
virStoragePoolDefPtr newDef;
|
||||||
|
@ -377,7 +377,8 @@ storageConnectNumOfStoragePools(virConnectPtr conn) {
|
|||||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||||
virStoragePoolObjLock(obj);
|
virStoragePoolObjLock(obj);
|
||||||
if (virConnectNumOfStoragePoolsCheckACL(conn, obj->def) &&
|
if (virConnectNumOfStoragePoolsCheckACL(conn, obj->def) &&
|
||||||
virStoragePoolObjIsActive(obj))
|
virStoragePoolObjIsActive(obj) &&
|
||||||
|
!obj->internal)
|
||||||
nactive++;
|
nactive++;
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
}
|
}
|
||||||
@ -402,7 +403,8 @@ storageConnectListStoragePools(virConnectPtr conn,
|
|||||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||||
virStoragePoolObjLock(obj);
|
virStoragePoolObjLock(obj);
|
||||||
if (virConnectListStoragePoolsCheckACL(conn, obj->def) &&
|
if (virConnectListStoragePoolsCheckACL(conn, obj->def) &&
|
||||||
virStoragePoolObjIsActive(obj)) {
|
virStoragePoolObjIsActive(obj) &&
|
||||||
|
!obj->internal) {
|
||||||
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -436,7 +438,8 @@ storageConnectNumOfDefinedStoragePools(virConnectPtr conn) {
|
|||||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||||
virStoragePoolObjLock(obj);
|
virStoragePoolObjLock(obj);
|
||||||
if (virConnectNumOfDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
if (virConnectNumOfDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
||||||
!virStoragePoolObjIsActive(obj))
|
!virStoragePoolObjIsActive(obj) &&
|
||||||
|
!obj->internal)
|
||||||
nactive++;
|
nactive++;
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
}
|
}
|
||||||
@ -461,7 +464,8 @@ storageConnectListDefinedStoragePools(virConnectPtr conn,
|
|||||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||||
virStoragePoolObjLock(obj);
|
virStoragePoolObjLock(obj);
|
||||||
if (virConnectListDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
if (virConnectListDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
||||||
!virStoragePoolObjIsActive(obj)) {
|
!virStoragePoolObjIsActive(obj) &&
|
||||||
|
!obj->internal) {
|
||||||
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
Loading…
Reference in New Issue
Block a user