Support bringing up machines with an "other" address accessible for
[invirt/packages/invirt-xen-config.git] / invirt-database
index 6008c7a..ade475d 100644 (file)
@@ -23,11 +23,15 @@ if 'cdrom_image' in locals():
     check(cdrom is not None)
 
 memory = machine.memory
     check(cdrom is not None)
 
 memory = machine.memory
-maxmem = '2048'
+if machine_type.hvm:
+    # Disable populate-on-demand
+    maxmem = memory
+else:
+    maxmem = '2048'
 check(re.match('^[A-Za-z0-9][A-Za-z0-9._-]*$', machine.name))
 name = prefix + machine_name
 check(re.match('^[0-9a-f-]+$', machine.uuid))
 check(re.match('^[A-Za-z0-9][A-Za-z0-9._-]*$', machine.name))
 name = prefix + machine_name
 check(re.match('^[0-9a-f-]+$', machine.uuid))
-uuid = machine.uuid
+uuid = str(machine.uuid)
 
 vcpus = machine.cpus
 
 
 vcpus = machine.cpus
 
@@ -103,9 +107,10 @@ elif cdrom is not None:
     codepath = 'hvm'
 
 if codepath == 'hvm':
     codepath = 'hvm'
 
 if codepath == 'hvm':
+    xen_platform_pci = 1
     ioemu = "ioemu:"
     ioemu = "ioemu:"
-    viftype = "type=ioemu, "
-    kernel = '/usr/lib/xen/boot/hvmloader'
+    viftype = "model=pcnet, "
+    kernel = '/usr/lib/xen-4.1/boot/hvmloader'
     builder = 'hvm'
     vnc = 1
     device_model = '/usr/sbin/qemu-dm-invirt'
     builder = 'hvm'
     vnc = 1
     device_model = '/usr/sbin/qemu-dm-invirt'
@@ -116,8 +121,12 @@ elif codepath == 'paravm':
 
 for n in machine.nics:
     check(re.match('^[0-9a-fA-F:]+$', n.mac_addr) and re.match('^[0-9.]*$', n.ip))
 
 for n in machine.nics:
     check(re.match('^[0-9a-fA-F:]+$', n.mac_addr) and re.match('^[0-9.]*$', n.ip))
-    d = ('%smac=%s, ip=%s, script=vif-invirtroute netdev=%s'
-         % (viftype, n.mac_addr, n.ip, config.xen.iface))
+    if n.nic_type:
+        viftype = viftype.replace("pcnet", n.nic_type)
+    other_netparams = ('other_ip=%s other_gateway=%s'
+                      % (n.other_ip, n.other_gateway) if n.other_ip else '')
+    d = ('%smac=%s, ip=%s, script=vif-invirtroute netdev=%s gateway=%s %s'
+         % (viftype, n.mac_addr, n.ip, config.xen.iface, n.gateway, other_netparams))
     vif.append(d)
 
 for d in machine.disks:
     vif.append(d)
 
 for d in machine.disks: