mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-10 20:26:48 +00:00
fix(nwfilters): a filter is changed in place, also while a VM uses it
Every change to a filter (a rule or reference removed or added, the XML edited) undefined it and defined the new XML. libvirt refuses to undefine a filter a running VM uses, so none of these worked on such a filter; on an unused one a refused definition was undone by defining the old XML without its UUID, so the filter came back as another one. The filter is now defined again with its own UUID, which libvirt does in place, while VMs use it too; XML it cannot parse or apply to the running VMs is refused and reported. The XML editor shows the UUID. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
39933fce7f
commit
f9c8c36a6b
3 changed files with 84 additions and 37 deletions
|
|
@ -37,14 +37,11 @@ class wvmNWFilter(wvmConnect):
|
|||
def get_name(self):
|
||||
return self.nwfilter.name()
|
||||
|
||||
def delete(self):
|
||||
self.nwfilter.undefine()
|
||||
|
||||
def get_xml(self):
|
||||
tree = ElementTree.fromstring(self._XMLDesc(0))
|
||||
uuid = tree.find("uuid")
|
||||
tree.remove(uuid)
|
||||
return ElementTree.tostring(tree).decode()
|
||||
"""With the UUID: defined again with it, libvirt changes the filter in
|
||||
place, also while a VM uses it. It refuses XML it cannot parse or
|
||||
apply to the running VMs' interfaces."""
|
||||
return self._XMLDesc(0)
|
||||
|
||||
def get_filter_refs(self):
|
||||
tree = ElementTree.fromstring(self._XMLDesc(0))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue