mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-08 20:51:26 +00:00
storage: Use virStoragePoolObj{Get|Set}ConfigFile
Use the new accessor APIs for storage_driver and test_driver.
This commit is contained in:
parent
5bf9b65501
commit
8603d848a3
@ -443,8 +443,10 @@ static int
|
|||||||
virStorageBackendSCSIStartPool(virConnectPtr conn,
|
virStorageBackendSCSIStartPool(virConnectPtr conn,
|
||||||
virStoragePoolObjPtr pool)
|
virStoragePoolObjPtr pool)
|
||||||
{
|
{
|
||||||
|
const char *configFile = virStoragePoolObjGetConfigFile(pool);
|
||||||
|
|
||||||
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
||||||
return createVport(conn, pool->def, pool->configFile,
|
return createVport(conn, pool->def, configFile,
|
||||||
&pool->def->source.adapter.data.fchost);
|
&pool->def->source.adapter.data.fchost);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -91,7 +91,7 @@ virStoragePoolUpdateInactive(virStoragePoolObjPtr *objptr)
|
|||||||
{
|
{
|
||||||
virStoragePoolObjPtr obj = *objptr;
|
virStoragePoolObjPtr obj = *objptr;
|
||||||
|
|
||||||
if (obj->configFile == NULL) {
|
if (!virStoragePoolObjGetConfigFile(obj)) {
|
||||||
virStoragePoolObjRemove(&driver->pools, obj);
|
virStoragePoolObjRemove(&driver->pools, obj);
|
||||||
*objptr = NULL;
|
*objptr = NULL;
|
||||||
} else if (obj->newDef) {
|
} else if (obj->newDef) {
|
||||||
@ -643,7 +643,7 @@ storagePoolIsPersistent(virStoragePoolPtr pool)
|
|||||||
if (virStoragePoolIsPersistentEnsureACL(pool->conn, obj->def) < 0)
|
if (virStoragePoolIsPersistentEnsureACL(pool->conn, obj->def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = obj->configFile ? 1 : 0;
|
ret = virStoragePoolObjGetConfigFile(obj) ? 1 : 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
@ -849,7 +849,6 @@ storagePoolUndefine(virStoragePoolPtr pool)
|
|||||||
obj->autostartLink, virStrerror(errno, ebuf, sizeof(ebuf)));
|
obj->autostartLink, virStrerror(errno, ebuf, sizeof(ebuf)));
|
||||||
}
|
}
|
||||||
|
|
||||||
VIR_FREE(obj->configFile);
|
|
||||||
VIR_FREE(obj->autostartLink);
|
VIR_FREE(obj->autostartLink);
|
||||||
|
|
||||||
event = virStoragePoolEventLifecycleNew(obj->def->name,
|
event = virStoragePoolEventLifecycleNew(obj->def->name,
|
||||||
@ -1250,7 +1249,7 @@ storagePoolGetAutostart(virStoragePoolPtr pool,
|
|||||||
if (virStoragePoolGetAutostartEnsureACL(pool->conn, obj->def) < 0)
|
if (virStoragePoolGetAutostartEnsureACL(pool->conn, obj->def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!obj->configFile) {
|
if (!virStoragePoolObjGetConfigFile(obj)) {
|
||||||
*autostart = 0;
|
*autostart = 0;
|
||||||
} else {
|
} else {
|
||||||
*autostart = obj->autostart;
|
*autostart = obj->autostart;
|
||||||
@ -1268,6 +1267,7 @@ storagePoolSetAutostart(virStoragePoolPtr pool,
|
|||||||
int autostart)
|
int autostart)
|
||||||
{
|
{
|
||||||
virStoragePoolObjPtr obj;
|
virStoragePoolObjPtr obj;
|
||||||
|
const char *configFile;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
storageDriverLock();
|
storageDriverLock();
|
||||||
@ -1277,7 +1277,7 @@ storagePoolSetAutostart(virStoragePoolPtr pool,
|
|||||||
if (virStoragePoolSetAutostartEnsureACL(pool->conn, obj->def) < 0)
|
if (virStoragePoolSetAutostartEnsureACL(pool->conn, obj->def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!obj->configFile) {
|
if (!(configFile = virStoragePoolObjGetConfigFile(obj))) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
"%s", _("pool has no config file"));
|
"%s", _("pool has no config file"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -1294,10 +1294,10 @@ storagePoolSetAutostart(virStoragePoolPtr pool,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (symlink(obj->configFile, obj->autostartLink) < 0) {
|
if (symlink(configFile, obj->autostartLink) < 0) {
|
||||||
virReportSystemError(errno,
|
virReportSystemError(errno,
|
||||||
_("Failed to create symlink '%s' to '%s'"),
|
_("Failed to create symlink '%s' to '%s'"),
|
||||||
obj->autostartLink, obj->configFile);
|
obj->autostartLink, configFile);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -4072,12 +4072,17 @@ testInterfaceDestroy(virInterfacePtr iface,
|
|||||||
static int
|
static int
|
||||||
testStoragePoolObjSetDefaults(virStoragePoolObjPtr obj)
|
testStoragePoolObjSetDefaults(virStoragePoolObjPtr obj)
|
||||||
{
|
{
|
||||||
|
char *configFile;
|
||||||
|
|
||||||
obj->def->capacity = defaultPoolCap;
|
obj->def->capacity = defaultPoolCap;
|
||||||
obj->def->allocation = defaultPoolAlloc;
|
obj->def->allocation = defaultPoolAlloc;
|
||||||
obj->def->available = defaultPoolCap - defaultPoolAlloc;
|
obj->def->available = defaultPoolCap - defaultPoolAlloc;
|
||||||
|
|
||||||
return VIR_STRDUP(obj->configFile, "");
|
if (VIR_STRDUP(configFile, "") < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
virStoragePoolObjSetConfigFile(obj, configFile);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4319,7 +4324,7 @@ testStoragePoolIsPersistent(virStoragePoolPtr pool)
|
|||||||
if (!(obj = testStoragePoolObjFindByUUID(privconn, pool->uuid)))
|
if (!(obj = testStoragePoolObjFindByUUID(privconn, pool->uuid)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
ret = obj->configFile ? 1 : 0;
|
ret = virStoragePoolObjGetConfigFile(obj) ? 1 : 0;
|
||||||
|
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
return ret;
|
return ret;
|
||||||
@ -4485,7 +4490,7 @@ testStoragePoolCreateXML(virConnectPtr conn,
|
|||||||
/* *SetDefaults fills this in for the persistent pools, but this
|
/* *SetDefaults fills this in for the persistent pools, but this
|
||||||
* would be a transient pool so remove it; otherwise, the Destroy
|
* would be a transient pool so remove it; otherwise, the Destroy
|
||||||
* code will not Remove the pool */
|
* code will not Remove the pool */
|
||||||
VIR_FREE(obj->configFile);
|
virStoragePoolObjSetConfigFile(obj, NULL);
|
||||||
|
|
||||||
obj->active = true;
|
obj->active = true;
|
||||||
|
|
||||||
@ -4650,7 +4655,7 @@ testStoragePoolDestroy(virStoragePoolPtr pool)
|
|||||||
VIR_STORAGE_POOL_EVENT_STOPPED,
|
VIR_STORAGE_POOL_EVENT_STOPPED,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
if (obj->configFile == NULL) {
|
if (!(virStoragePoolObjGetConfigFile(obj))) {
|
||||||
virStoragePoolObjRemove(&privconn->pools, obj);
|
virStoragePoolObjRemove(&privconn->pools, obj);
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
}
|
}
|
||||||
@ -4756,11 +4761,10 @@ testStoragePoolGetAutostart(virStoragePoolPtr pool,
|
|||||||
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
|
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!obj->configFile) {
|
if (!virStoragePoolObjGetConfigFile(obj))
|
||||||
*autostart = 0;
|
*autostart = 0;
|
||||||
} else {
|
else
|
||||||
*autostart = obj->autostart;
|
*autostart = obj->autostart;
|
||||||
}
|
|
||||||
|
|
||||||
virStoragePoolObjUnlock(obj);
|
virStoragePoolObjUnlock(obj);
|
||||||
return 0;
|
return 0;
|
||||||
@ -4778,7 +4782,7 @@ testStoragePoolSetAutostart(virStoragePoolPtr pool,
|
|||||||
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
|
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!obj->configFile) {
|
if (!virStoragePoolObjGetConfigFile(obj)) {
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
"%s", _("pool has no config file"));
|
"%s", _("pool has no config file"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user