mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00: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,
|
||||
unsigned int flags)
|
||||
{
|
||||
if (poolobj->internal)
|
||||
return false;
|
||||
|
||||
/* filter by active state */
|
||||
if (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_ACTIVE) &&
|
||||
!((MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE) &&
|
||||
|
@ -332,6 +332,7 @@ struct _virStoragePoolObj {
|
||||
int active;
|
||||
int autostart;
|
||||
unsigned int asyncjobs;
|
||||
bool internal;
|
||||
|
||||
virStoragePoolDefPtr def;
|
||||
virStoragePoolDefPtr newDef;
|
||||
|
@ -377,7 +377,8 @@ storageConnectNumOfStoragePools(virConnectPtr conn) {
|
||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||
virStoragePoolObjLock(obj);
|
||||
if (virConnectNumOfStoragePoolsCheckACL(conn, obj->def) &&
|
||||
virStoragePoolObjIsActive(obj))
|
||||
virStoragePoolObjIsActive(obj) &&
|
||||
!obj->internal)
|
||||
nactive++;
|
||||
virStoragePoolObjUnlock(obj);
|
||||
}
|
||||
@ -402,7 +403,8 @@ storageConnectListStoragePools(virConnectPtr conn,
|
||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||
virStoragePoolObjLock(obj);
|
||||
if (virConnectListStoragePoolsCheckACL(conn, obj->def) &&
|
||||
virStoragePoolObjIsActive(obj)) {
|
||||
virStoragePoolObjIsActive(obj) &&
|
||||
!obj->internal) {
|
||||
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
||||
virStoragePoolObjUnlock(obj);
|
||||
goto cleanup;
|
||||
@ -436,7 +438,8 @@ storageConnectNumOfDefinedStoragePools(virConnectPtr conn) {
|
||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||
virStoragePoolObjLock(obj);
|
||||
if (virConnectNumOfDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
||||
!virStoragePoolObjIsActive(obj))
|
||||
!virStoragePoolObjIsActive(obj) &&
|
||||
!obj->internal)
|
||||
nactive++;
|
||||
virStoragePoolObjUnlock(obj);
|
||||
}
|
||||
@ -461,7 +464,8 @@ storageConnectListDefinedStoragePools(virConnectPtr conn,
|
||||
virStoragePoolObjPtr obj = driver->pools.objs[i];
|
||||
virStoragePoolObjLock(obj);
|
||||
if (virConnectListDefinedStoragePoolsCheckACL(conn, obj->def) &&
|
||||
!virStoragePoolObjIsActive(obj)) {
|
||||
!virStoragePoolObjIsActive(obj) &&
|
||||
!obj->internal) {
|
||||
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
||||
virStoragePoolObjUnlock(obj);
|
||||
goto cleanup;
|
||||
|
Loading…
x
Reference in New Issue
Block a user