mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
qemu: domain: Extract parsing of 'commit' blockjob data into a function
I'll be adding more fields to care about so splitting the code out will be better long-term. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Pavel Mores <pmores@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
c72e9064ce
commit
38d0dd08d6
@ -3230,6 +3230,40 @@ qemuDomainObjPrivateXMLParseBlockjobNodename(qemuBlockJobDataPtr job,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainObjPrivateXMLParseBlockjobDataCommit(qemuBlockJobDataPtr job,
|
||||
xmlXPathContextPtr ctxt)
|
||||
{
|
||||
if (job->type == QEMU_BLOCKJOB_TYPE_COMMIT) {
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./topparent/@node)",
|
||||
&job->data.commit.topparent,
|
||||
ctxt);
|
||||
|
||||
if (!job->data.commit.topparent)
|
||||
return -1;
|
||||
}
|
||||
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./top/@node)",
|
||||
&job->data.commit.top,
|
||||
ctxt);
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./base/@node)",
|
||||
&job->data.commit.base,
|
||||
ctxt);
|
||||
|
||||
if (virXPathNode("./deleteCommittedImages", ctxt))
|
||||
job->data.commit.deleteCommittedImages = true;
|
||||
|
||||
if (!job->data.commit.top ||
|
||||
!job->data.commit.base)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
qemuDomainObjPrivateXMLParseBlockjobDataSpecific(qemuBlockJobDataPtr job,
|
||||
xmlXPathContextPtr ctxt,
|
||||
@ -3249,29 +3283,10 @@ qemuDomainObjPrivateXMLParseBlockjobDataSpecific(qemuBlockJobDataPtr job,
|
||||
break;
|
||||
|
||||
case QEMU_BLOCKJOB_TYPE_COMMIT:
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./topparent/@node)",
|
||||
&job->data.commit.topparent,
|
||||
ctxt);
|
||||
|
||||
if (!job->data.commit.topparent)
|
||||
goto broken;
|
||||
|
||||
G_GNUC_FALLTHROUGH;
|
||||
case QEMU_BLOCKJOB_TYPE_ACTIVE_COMMIT:
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./top/@node)",
|
||||
&job->data.commit.top,
|
||||
ctxt);
|
||||
qemuDomainObjPrivateXMLParseBlockjobNodename(job,
|
||||
"string(./base/@node)",
|
||||
&job->data.commit.base,
|
||||
ctxt);
|
||||
if (virXPathNode("./deleteCommittedImages", ctxt))
|
||||
job->data.commit.deleteCommittedImages = true;
|
||||
if (!job->data.commit.top ||
|
||||
!job->data.commit.base)
|
||||
if (qemuDomainObjPrivateXMLParseBlockjobDataCommit(job, ctxt) < 0)
|
||||
goto broken;
|
||||
|
||||
break;
|
||||
|
||||
case QEMU_BLOCKJOB_TYPE_CREATE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user