Correct issues if no interfaces/disks are present
This commit is contained in:
parent
9053edacd8
commit
a38e65be47
|
@ -539,7 +539,10 @@ def vm_networks_add(config, vm, network, macaddr, model, restart):
|
||||||
device_xml = fromstring(device_string)
|
device_xml = fromstring(device_string)
|
||||||
|
|
||||||
last_interface = None
|
last_interface = None
|
||||||
for interface in parsed_xml.devices.find('interface'):
|
all_interfaces = parsed_xml.devices.find('interface')
|
||||||
|
if all_interfaces is None:
|
||||||
|
all_interfaces = []
|
||||||
|
for interface in all_interfaces:
|
||||||
last_interface = re.match(r'[vm]*br([0-9a-z]+)', interface.source.attrib.get('bridge')).group(1)
|
last_interface = re.match(r'[vm]*br([0-9a-z]+)', interface.source.attrib.get('bridge')).group(1)
|
||||||
if last_interface == network:
|
if last_interface == network:
|
||||||
return False, 'Network {} is already configured for VM {}.'.format(network, vm)
|
return False, 'Network {} is already configured for VM {}.'.format(network, vm)
|
||||||
|
@ -547,6 +550,8 @@ def vm_networks_add(config, vm, network, macaddr, model, restart):
|
||||||
for interface in parsed_xml.devices.find('interface'):
|
for interface in parsed_xml.devices.find('interface'):
|
||||||
if last_interface == re.match(r'[vm]*br([0-9a-z]+)', interface.source.attrib.get('bridge')).group(1):
|
if last_interface == re.match(r'[vm]*br([0-9a-z]+)', interface.source.attrib.get('bridge')).group(1):
|
||||||
interface.addnext(device_xml)
|
interface.addnext(device_xml)
|
||||||
|
else:
|
||||||
|
parsed_xml.devices.find('emulator').addprevious(device_xml)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
new_xml = tostring(parsed_xml, pretty_print=True)
|
new_xml = tostring(parsed_xml, pretty_print=True)
|
||||||
|
@ -732,7 +737,10 @@ def vm_volumes_add(config, vm, volume, disk_id, bus, disk_type, restart):
|
||||||
|
|
||||||
last_disk = None
|
last_disk = None
|
||||||
id_list = list()
|
id_list = list()
|
||||||
for disk in parsed_xml.devices.find('disk'):
|
all_disks = parsed_xml.devices.find('disk')
|
||||||
|
if all_disks is None:
|
||||||
|
all_disks = []
|
||||||
|
for disk in all_disks:
|
||||||
id_list.append(disk.target.attrib.get('dev'))
|
id_list.append(disk.target.attrib.get('dev'))
|
||||||
if disk.source.attrib.get('protocol') == disk_type:
|
if disk.source.attrib.get('protocol') == disk_type:
|
||||||
if disk_type == 'rbd':
|
if disk_type == 'rbd':
|
||||||
|
@ -782,9 +790,14 @@ def vm_volumes_add(config, vm, volume, disk_id, bus, disk_type, restart):
|
||||||
elif disk_type == 'file':
|
elif disk_type == 'file':
|
||||||
new_disk_details.source.set('file', volume)
|
new_disk_details.source.set('file', volume)
|
||||||
|
|
||||||
for disk in parsed_xml.devices.find('disk'):
|
all_disks = parsed_xml.devices.find('disk')
|
||||||
|
if all_disks is None:
|
||||||
|
all_disks = []
|
||||||
|
for disk in all_disks:
|
||||||
last_disk = disk
|
last_disk = disk
|
||||||
last_disk.addnext(new_disk_details)
|
|
||||||
|
if last_disk is None:
|
||||||
|
parsed_xml.devices.find('emulator').addprevious(new_disk_details)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
new_xml = tostring(parsed_xml, pretty_print=True)
|
new_xml = tostring(parsed_xml, pretty_print=True)
|
||||||
|
|
Loading…
Reference in New Issue