mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
Do not use createXML for non transient domains
For these domains use defineXML (crobinso: Add undefine on start() failure)
This commit is contained in:
parent
fc6778108b
commit
f78ff6457b
@ -387,12 +387,27 @@ class Guest(XMLBuilder):
|
|||||||
meter = util.ensure_meter(meter)
|
meter = util.ensure_meter(meter)
|
||||||
meter.start(size=None, text=meter_label)
|
meter.start(size=None, text=meter_label)
|
||||||
|
|
||||||
if doboot or transient or self.installer.has_install_phase():
|
if transient:
|
||||||
self.domain = self.conn.createXML(install_xml or final_xml, 0)
|
self.domain = self.conn.createXML(install_xml or final_xml, 0)
|
||||||
|
else:
|
||||||
|
# Not all hypervisors (vz) support createXML, so avoid it here
|
||||||
|
self.domain = self.conn.defineXML(install_xml or final_xml)
|
||||||
|
|
||||||
if not transient:
|
# Handle undefining the VM if the initial startup fails
|
||||||
|
if doboot or self.installer.has_install_phase():
|
||||||
|
try:
|
||||||
|
self.domain.create()
|
||||||
|
except:
|
||||||
|
import sys
|
||||||
|
exc_info = sys.exc_info()
|
||||||
|
try:
|
||||||
|
self.domain.undefine()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
raise exc_info[0], exc_info[1], exc_info[2]
|
||||||
|
|
||||||
|
if install_xml and install_xml != final_xml:
|
||||||
self.domain = self.conn.defineXML(final_xml)
|
self.domain = self.conn.defineXML(final_xml)
|
||||||
meter.end(0)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
logging.debug("XML fetched from libvirt object:\n%s",
|
logging.debug("XML fetched from libvirt object:\n%s",
|
||||||
|
Loading…
Reference in New Issue
Block a user