}
+static virStoragePoolObjPtr
+testStoragePoolObjFindActiveByName(testDriverPtr privconn,
+ const char *name)
+{
+ virStoragePoolObjPtr obj;
+
+ if (!(obj = testStoragePoolObjFindByName(privconn, name)))
+ return NULL;
+
+ if (!virStoragePoolObjIsActive(obj)) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("storage pool '%s' is not active"), name);
+ virStoragePoolObjUnlock(obj);
+ return NULL;
+ }
+
+ return obj;
+}
+
+
+static virStoragePoolObjPtr
+testStoragePoolObjFindInactiveByName(testDriverPtr privconn,
+ const char *name)
+{
+ virStoragePoolObjPtr obj;
+
+ if (!(obj = testStoragePoolObjFindByName(privconn, name)))
+ return NULL;
+
+ if (virStoragePoolObjIsActive(obj)) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("storage pool '%s' is active"), name);
+ virStoragePoolObjUnlock(obj);
+ return NULL;
+ }
+
+ return obj;
+}
+
+
static virStoragePoolObjPtr
testStoragePoolObjFindByUUID(testDriverPtr privconn,
const unsigned char *uuid)
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
- int ret = -1;
virObjectEventPtr event = NULL;
virCheckFlags(0, -1);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is already active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
+ return -1;
obj->active = 1;
event = virStoragePoolEventLifecycleNew(pool->name, pool->uuid,
VIR_STORAGE_POOL_EVENT_STARTED,
0);
- ret = 0;
- cleanup:
testObjectEventQueue(privconn, event);
- if (obj)
- virStoragePoolObjUnlock(obj);
- return ret;
+ virStoragePoolObjUnlock(obj);
+ return 0;
}
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
- int ret = -1;
virObjectEventPtr event = NULL;
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is already active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
+ return -1;
event = virStoragePoolEventLifecycleNew(pool->name, pool->uuid,
VIR_STORAGE_POOL_EVENT_UNDEFINED,
0);
virStoragePoolObjRemove(&privconn->pools, obj);
- obj = NULL;
- ret = 0;
- cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
testObjectEventQueue(privconn, event);
- return ret;
+ return 0;
}
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
- int ret = -1;
virCheckFlags(0, -1);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is already active"), pool->name);
- goto cleanup;
- }
- ret = 0;
+ if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
+ return -1;
- cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
- return ret;
+ virStoragePoolObjUnlock(obj);
+ return 0;
}
int ret = -1;
virObjectEventPtr event = NULL;
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
return -1;
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
-
obj->active = 0;
if (obj->def->source.adapter.type ==
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
- int ret = -1;
virCheckFlags(0, -1);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is already active"), pool->name);
- goto cleanup;
- }
-
- ret = 0;
+ if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
+ return -1;
- cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
- return ret;
+ virStoragePoolObjUnlock(obj);
+ return 0;
}
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
- int ret = -1;
virObjectEventPtr event = NULL;
virCheckFlags(0, -1);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
+ return -1;
event = virStoragePoolEventRefreshNew(pool->name, pool->uuid);
- ret = 0;
- cleanup:
testObjectEventQueue(privconn, event);
- if (obj)
- virStoragePoolObjUnlock(obj);
- return ret;
+ virStoragePoolObjUnlock(obj);
+ return 0;
}
virStoragePoolObjPtr obj;
int ret = -1;
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
+ return -1;
ret = virStoragePoolObjNumOfVolumes(&obj->volumes, pool->conn,
obj->def, NULL);
- cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virStoragePoolObjPtr obj;
int n = -1;
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
return -1;
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
-
n = virStoragePoolObjVolumeGetNames(&obj->volumes, pool->conn,
obj->def, NULL, names, maxnames);
- cleanup:
virStoragePoolObjUnlock(obj);
return n;
}
virStorageVolDefPtr privvol;
virStorageVolPtr ret = NULL;
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
+ return NULL;
privvol = virStorageVolDefFindByName(obj, name);
NULL, NULL);
cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virCheckFlags(0, NULL);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
+ return NULL;
privvol = virStorageVolDefParseString(obj->def, xmldesc, 0);
if (privvol == NULL)
cleanup:
virStorageVolDefFree(privvol);
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virCheckFlags(0, NULL);
- if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
- goto cleanup;
-
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), pool->name);
- goto cleanup;
- }
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
+ return NULL;
privvol = virStorageVolDefParseString(obj->def, xmldesc, 0);
if (privvol == NULL)
cleanup:
virStorageVolDefFree(privvol);
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virCheckFlags(0, -1);
- if (!(obj = testStoragePoolObjFindByName(privconn, vol->pool)))
- goto cleanup;
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, vol->pool)))
+ return -1;
privvol = virStorageVolDefFindByName(obj, vol->name);
goto cleanup;
}
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), vol->pool);
- goto cleanup;
- }
-
-
obj->def->allocation -= privvol->target.allocation;
obj->def->available = (obj->def->capacity - obj->def->allocation);
ret = 0;
cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virStorageVolDefPtr privvol;
int ret = -1;
- if (!(obj = testStoragePoolObjFindByName(privconn, vol->pool)))
- goto cleanup;
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, vol->pool)))
+ return -1;
privvol = virStorageVolDefFindByName(obj, vol->name);
goto cleanup;
}
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), vol->pool);
- goto cleanup;
- }
-
memset(info, 0, sizeof(*info));
info->type = testStorageVolumeTypeForPool(obj->def->type);
info->capacity = privvol->target.capacity;
ret = 0;
cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virCheckFlags(0, NULL);
- if (!(obj = testStoragePoolObjFindByName(privconn, vol->pool)))
- goto cleanup;
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, vol->pool)))
+ return NULL;
privvol = virStorageVolDefFindByName(obj, vol->name);
goto cleanup;
}
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), vol->pool);
- goto cleanup;
- }
-
ret = virStorageVolDefFormat(obj->def, privvol);
cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}
virStorageVolDefPtr privvol;
char *ret = NULL;
- if (!(obj = testStoragePoolObjFindByName(privconn, vol->pool)))
- goto cleanup;
+ if (!(obj = testStoragePoolObjFindActiveByName(privconn, vol->pool)))
+ return NULL;
privvol = virStorageVolDefFindByName(obj, vol->name);
goto cleanup;
}
- if (!virStoragePoolObjIsActive(obj)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("storage pool '%s' is not active"), vol->pool);
- goto cleanup;
- }
-
ignore_value(VIR_STRDUP(ret, privvol->target.path));
cleanup:
- if (obj)
- virStoragePoolObjUnlock(obj);
+ virStoragePoolObjUnlock(obj);
return ret;
}