提交 362da820 编写于 作者: P Peter Krempa

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.
上级 b3c1a25d
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册