Bug 1245525
| Summary: | libvirt should reject metadata elements not belonging to any namespace | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | zhenfeng wang <zhwang> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.2 | CC: | dyuan, fjin, mzhan, pkrempa, rbalakri |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.3.1-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-03 18:20:14 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
The problem is that the metadata elements don't belong to any namespace, but they should. Fixed upstream:
commit 51a4178f24a7a7a88a36915b8b358a8321e3ef58
Author: Peter Krempa <pkrempa>
Date: Mon Oct 5 09:58:30 2015 +0200
conf: Remove <metadata> elements with no namespace
Our docs state that subelements of <metadata> shall have a namespace
and the medatata APIs expect that too. To avoid inaccessible
<metadata> sub-elements, just remove those that don't conform to the
documentation.
Apart from adding the new condition this patch renames the function and
refactors the code flow to allow the changes.
Verify this bug with libvirt-1.3.2-1.el7.x86_64
1.Prepare a shutoff guest
# virsh list --all
Id Name State
----------------------------------------------------
- virt-tests-vm3 shut off
2.Edit guest's xml, add multi same invalid metadata in guest's xml, libvirt will remove the invalid sub-elements from <metadata> element
in guest's xml
# virsh edit virt-tests-vm3
--
<metadata>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
<herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/>
</metadata>
#virsh dumpxml virt-tests-vm3
--
<metadata/>
3.Edit guest's xml, add multi same valid metadata in guest's xml, save the guest's xml, only 1 record will generated
#virsh edit virt-tests-vm3
--
<metadata>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
</metadata>
#virsh dumpxml virt-tests-vm3
<metadata>
<foobar:herp2erp xmlns:foobar="http://foo.bar3/"/>
</metadata>
4.Do some basic check the metadata command, all command could get expect result.
# virsh metadata virt-tests-vm3 --uri http://foo.bar3/
<herp2erp/>
# virsh metadata virt-tests-vm3 --uri http://foo.bar3/ --edit --key foobar
<herp2erp1/>
# virsh metadata virt-tests-vm3 --uri http://foo.bar3/
<herp2erp1/>
# virsh metadata virt-tests-vm3 --uri http://foo.bar3/ --remove
Metadata removed
# virsh metadata virt-tests-vm3 --uri http://foo.bar3/
error: metadata not found: Requested metadata element is not present
According to upper steps, mark this bug verified
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2016-2577.html |
Description of problem: libvirt should reject to configure reduntant metadata element in the guest's xml while these elements aren't in namespace Version-Release number of selected component (if applicable): libvirt-1.2.17-2.el7.x86_64 How reproducible: 100% Steps 1.Prepare a shutoff guest # virsh list --all Id Name State ---------------------------------------------------- - 7.0 shut off 2.Edit guest's xml, add multi same metadata in guest's xml, It will generate many redundant records in guest's xml # virsh dumpxml 7.0 -- <metadata> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> <herp2erp xmlns:foobar="http://foo.bar3/" xmlns:herp2="http://herp.derp/"/> </metadata> Actual results: Generate the redundant record in guest's xml while configure many same metadatas in guest's xml Expected results: libvirt should reject to configure reduntant metadata element in the guest's xml libvirt should reject to configure reduntant metadata element in the guest's xml