storageDriverUnlock(driver);
if (!pool) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), uuid);
- goto cleanup;
+ _("no storage pool with matching uuid '%s'"), uuidstr);
+ return NULL;
}
if (virStoragePoolLookupByUUIDEnsureACL(conn, pool->def) < 0)
}
-static int storagePoolIsActive(virStoragePoolPtr pool)
+static virStoragePoolObjPtr
+virStoragePoolObjFromStoragePool(virStoragePoolPtr pool)
{
virStorageDriverStatePtr driver = pool->conn->storagePrivateData;
- virStoragePoolObjPtr obj;
- int ret = -1;
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virStoragePoolObjPtr ret;
storageDriverLock(driver);
- obj = virStoragePoolObjFindByUUID(&driver->pools, pool->uuid);
- storageDriverUnlock(driver);
- if (!obj) {
- virReportError(VIR_ERR_NO_STORAGE_POOL, NULL);
- goto cleanup;
+ if (!(ret = virStoragePoolObjFindByUUID(&driver->pools, pool->uuid))) {
+ virUUIDFormat(pool->uuid, uuidstr);
+ virReportError(VIR_ERR_NO_STORAGE_POOL,
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, pool->name);
}
+ storageDriverUnlock(driver);
+
+ return ret;
+}
+
+
+static int storagePoolIsActive(virStoragePoolPtr pool)
+{
+ virStoragePoolObjPtr obj;
+ int ret = -1;
+
+ if (!(obj = virStoragePoolObjFromStoragePool(pool)))
+ return -1;
if (virStoragePoolIsActiveEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
static int storagePoolIsPersistent(virStoragePoolPtr pool)
{
- virStorageDriverStatePtr driver = pool->conn->storagePrivateData;
virStoragePoolObjPtr obj;
int ret = -1;
- storageDriverLock(driver);
- obj = virStoragePoolObjFindByUUID(&driver->pools, pool->uuid);
- storageDriverUnlock(driver);
- if (!obj) {
- virReportError(VIR_ERR_NO_STORAGE_POOL, NULL);
- goto cleanup;
- }
+ if (!(obj = virStoragePoolObjFromStoragePool(pool)))
+ return -1;
if (virStoragePoolIsPersistentEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
int ret = -1;
storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- if (!pool) {
+ if (!(pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid))) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(obj->uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, obj->name);
goto cleanup;
}
storagePoolCreate(virStoragePoolPtr obj,
unsigned int flags)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
virStorageBackendPtr backend;
int ret = -1;
virCheckFlags(0, -1);
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolCreateEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
storagePoolBuild(virStoragePoolPtr obj,
unsigned int flags)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
virStorageBackendPtr backend;
int ret = -1;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolBuildEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
int ret = -1;
storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
-
- if (!pool) {
+ if (!(pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid))) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(obj->uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, obj->name);
goto cleanup;
}
storagePoolDelete(virStoragePoolPtr obj,
unsigned int flags)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
virStorageBackendPtr backend;
int ret = -1;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolDeleteEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
virCheckFlags(0, -1);
storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
-
- if (!pool) {
+ if (!(pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid))) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(obj->uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, obj->name);
goto cleanup;
}
storagePoolGetInfo(virStoragePoolPtr obj,
virStoragePoolInfoPtr info)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
int ret = -1;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolGetInfoEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
storagePoolGetXMLDesc(virStoragePoolPtr obj,
unsigned int flags)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
virStoragePoolDefPtr def;
char *ret = NULL;
virCheckFlags(VIR_STORAGE_XML_INACTIVE, NULL);
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return NULL;
if (virStoragePoolGetXMLDescEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
storagePoolGetAutostart(virStoragePoolPtr obj,
int *autostart)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
int ret = -1;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolGetAutostartEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
if (!pool) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(obj->uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, obj->name);
goto cleanup;
}
static int
storagePoolNumOfVolumes(virStoragePoolPtr obj)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
int ret = -1;
size_t i;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolNumOfVolumesEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
char **const names,
int maxnames)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
size_t i;
int n = 0;
memset(names, 0, maxnames * sizeof(*names));
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return -1;
if (virStoragePoolListVolumesEnsureACL(obj->conn, pool->def) < 0)
goto cleanup;
virStorageVolPtr **vols,
unsigned int flags)
{
- virStorageDriverStatePtr driver = pool->conn->storagePrivateData;
virStoragePoolObjPtr obj;
size_t i;
virStorageVolPtr *tmp_vols = NULL;
virCheckFlags(0, -1);
- storageDriverLock(driver);
- obj = virStoragePoolObjFindByUUID(&driver->pools, pool->uuid);
- storageDriverUnlock(driver);
-
- if (!obj) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"),
- pool->uuid);
- goto cleanup;
- }
+ if (!(obj = virStoragePoolObjFromStoragePool(pool)))
+ return -1;
if (virStoragePoolListAllVolumesEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
storageVolLookupByName(virStoragePoolPtr obj,
const char *name)
{
- virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
virStoragePoolObjPtr pool;
virStorageVolDefPtr vol;
virStorageVolPtr ret = NULL;
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return NULL;
if (!virStoragePoolObjIsActive(pool)) {
virReportError(VIR_ERR_OPERATION_INVALID,
virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA, NULL);
- storageDriverLock(driver);
- pool = virStoragePoolObjFindByUUID(&driver->pools, obj->uuid);
- storageDriverUnlock(driver);
-
- if (!pool) {
- virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
- goto cleanup;
- }
+ if (!(pool = virStoragePoolObjFromStoragePool(obj)))
+ return NULL;
if (!virStoragePoolObjIsActive(pool)) {
virReportError(VIR_ERR_OPERATION_INVALID,
}
storageDriverUnlock(driver);
if (!pool) {
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(obj->uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
- _("no storage pool with matching uuid %s"), obj->uuid);
+ _("no storage pool with matching uuid '%s' (%s)"),
+ uuidstr, obj->name);
goto cleanup;
}