summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Krempa <pkrempa@redhat.com>2012-12-11 19:28:17 +0100
committerPeter Krempa <pkrempa@redhat.com>2012-12-12 14:34:12 +0100
commit2745177b346a0ebbd3629e298178c60a54af242a (patch)
treeeed190f21e4635e88d7ac75687bcc4fc7ebc689d
parent7fc06b0480a376314cc472913c81e05317a5694d (diff)
downloadlibvirt-2745177b346a0ebbd3629e298178c60a54af242a.tar.gz
qemu: Refactor managed save functions to use domain lookup helpers
-rw-r--r--src/qemu/qemu_driver.c53
1 files changed, 13 insertions, 40 deletions
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 9173413ade..4144e6f474 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3238,8 +3238,8 @@ qemuDomainManagedSavePath(virQEMUDriverPtr driver, virDomainObjPtr vm) {
static int
qemuDomainManagedSave(virDomainPtr dom, unsigned int flags)
{
- virQEMUDriverPtr driver = dom->conn->privateData;
- virDomainObjPtr vm = NULL;
+ virQEMUDriverPtr driver;
+ virDomainObjPtr vm;
char *name = NULL;
int ret = -1;
int compressed;
@@ -3248,15 +3248,8 @@ qemuDomainManagedSave(virDomainPtr dom, unsigned int flags)
VIR_DOMAIN_SAVE_RUNNING |
VIR_DOMAIN_SAVE_PAUSED, -1);
- qemuDriverLock(driver);
- vm = virDomainFindByUUID(&driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("no domain with matching uuid '%s'"), uuidstr);
- goto cleanup;
- }
+ if (!(vm = qemuDomObjFromDomainDriver(dom, &driver)))
+ return -1;
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID,
@@ -3315,50 +3308,31 @@ cleanup:
static int
qemuDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
{
- virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm = NULL;
- int ret = -1;
+ int ret;
virCheckFlags(0, -1);
- qemuDriverLock(driver);
- vm = virDomainFindByUUID(&driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("no domain with matching uuid '%s'"), uuidstr);
- goto cleanup;
- }
+ if (!(vm = qemuDomObjFromDomain(dom)))
+ return -1;
ret = vm->hasManagedSave;
-
-cleanup:
- if (vm)
- virDomainObjUnlock(vm);
- qemuDriverUnlock(driver);
+ virDomainObjUnlock(vm);
return ret;
}
static int
qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
{
- virQEMUDriverPtr driver = dom->conn->privateData;
- virDomainObjPtr vm = NULL;
+ virQEMUDriverPtr driver;
+ virDomainObjPtr vm;
int ret = -1;
char *name = NULL;
virCheckFlags(0, -1);
- qemuDriverLock(driver);
- vm = virDomainFindByUUID(&driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("no domain with matching uuid '%s'"), uuidstr);
- goto cleanup;
- }
+ if (!(vm = qemuDomObjFromDomainDriver(dom, &driver)))
+ return -1;
name = qemuDomainManagedSavePath(driver, vm);
if (name == NULL)
@@ -3369,8 +3343,7 @@ qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
cleanup:
VIR_FREE(name);
- if (vm)
- virDomainObjUnlock(vm);
+ virDomainObjUnlock(vm);
qemuDriverUnlock(driver);
return ret;
}