mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: Introduce virStoragePoolObjSourceMatchTypeDEVICE
Refactor virStoragePoolObjSourceFindDuplicate into smaller units separated by the "supported" pool source type. The ISCSI, FS, LOGICAL, DISK, and ZFS pools can use "<source>... <device='%s'/>... </source>". Alter the logic slightly to return the matching pool or NULL rather than setting matchpool = pool and break. Easier to read that way.
This commit is contained in:
parent
2811e29e10
commit
f84b89fb19
@ -943,6 +943,28 @@ virStoragePoolObjSourceMatchTypeISCSI(virStoragePoolObjPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virStoragePoolObjPtr
|
||||||
|
virStoragePoolObjSourceMatchTypeDEVICE(virStoragePoolObjPtr pool,
|
||||||
|
virStoragePoolDefPtr def)
|
||||||
|
{
|
||||||
|
virStoragePoolObjPtr matchpool = NULL;
|
||||||
|
|
||||||
|
if (pool->def->type == VIR_STORAGE_POOL_ISCSI) {
|
||||||
|
if ((matchpool = virStoragePoolSourceFindDuplicateDevices(pool, def))) {
|
||||||
|
if (!virStoragePoolSourceISCSIMatch(matchpool, def))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return matchpool;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* VIR_STORAGE_POOL_FS
|
||||||
|
* VIR_STORAGE_POOL_LOGICAL
|
||||||
|
* VIR_STORAGE_POOL_DISK
|
||||||
|
* VIR_STORAGE_POOL_ZFS */
|
||||||
|
return virStoragePoolSourceFindDuplicateDevices(pool, def);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virStoragePoolObjSourceFindDuplicate(virConnectPtr conn,
|
virStoragePoolObjSourceFindDuplicate(virConnectPtr conn,
|
||||||
virStoragePoolObjListPtr pools,
|
virStoragePoolObjListPtr pools,
|
||||||
@ -977,18 +999,13 @@ virStoragePoolObjSourceFindDuplicate(virConnectPtr conn,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_STORAGE_POOL_ISCSI:
|
case VIR_STORAGE_POOL_ISCSI:
|
||||||
matchpool = virStoragePoolSourceFindDuplicateDevices(pool, def);
|
|
||||||
if (matchpool) {
|
|
||||||
if (!virStoragePoolSourceISCSIMatch(matchpool, def))
|
|
||||||
matchpool = NULL;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_STORAGE_POOL_FS:
|
case VIR_STORAGE_POOL_FS:
|
||||||
case VIR_STORAGE_POOL_LOGICAL:
|
case VIR_STORAGE_POOL_LOGICAL:
|
||||||
case VIR_STORAGE_POOL_DISK:
|
case VIR_STORAGE_POOL_DISK:
|
||||||
case VIR_STORAGE_POOL_ZFS:
|
case VIR_STORAGE_POOL_ZFS:
|
||||||
matchpool = virStoragePoolSourceFindDuplicateDevices(pool, def);
|
matchpool = virStoragePoolObjSourceMatchTypeDEVICE(pool, def);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_STORAGE_POOL_SHEEPDOG:
|
case VIR_STORAGE_POOL_SHEEPDOG:
|
||||||
if (virStoragePoolSourceMatchSingleHost(&pool->def->source,
|
if (virStoragePoolSourceMatchSingleHost(&pool->def->source,
|
||||||
&def->source))
|
&def->source))
|
||||||
|
Loading…
Reference in New Issue
Block a user