X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-xen-config.git/blobdiff_plain/f0eb3ae48da89a4970a0ed5836797e1a926d1d1c..1b2edab0d0593dc5e8283822bc67ee28c2c81f2d:/invirt-database diff --git a/invirt-database b/invirt-database index e4eed03..31e4b85 100644 --- a/invirt-database +++ b/invirt-database @@ -14,20 +14,24 @@ def check(b): import sys sys.exit(1) -machine = models.Machine.query().filter_by(name=machine_name).one() +machine = models.Machine.query.filter_by(name=machine_name).one() check(machine is not None) machine_type = machine.type cdrom = None if 'cdrom_image' in locals(): - cdrom = models.CDROM.query().filter_by(cdrom_id=cdrom_image).one() + cdrom = models.CDROM.query.filter_by(cdrom_id=cdrom_image).one() 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 +name = prefix + machine_name check(re.match('^[0-9a-f-]+$', machine.uuid)) -uuid = machine.uuid +uuid = str(machine.uuid) vcpus = machine.cpus @@ -46,6 +50,10 @@ if machine_type.hvm: codepath = 'hvm' else: codepath = 'paravm' + if machine_type.type_id = 'linux-pvgrub': + use_pvgrub = True + else: + use_pvgrub = False if 'installer_options' in locals(): #Installer import shlex @@ -103,19 +111,24 @@ elif cdrom is not None: codepath = 'hvm' if codepath == 'hvm': + xen_platform_pci = 1 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' serial = "pty" elif codepath == 'paravm': - bootloader = '/usr/bin/pygrub' - + if use_pvgrub: + kernel = '/usr/lib/grub/grub.xen' + else: + bootloader = '/usr/bin/pygrub' for n in machine.nics: check(re.match('^[0-9a-fA-F:]+$', n.mac_addr) and re.match('^[0-9.]*$', n.ip)) + if n.nic_type: + viftype = viftype.replace("pcnet", n.nic_type) d = ('%smac=%s, ip=%s, script=vif-invirtroute netdev=%s' % (viftype, n.mac_addr, n.ip, config.xen.iface)) vif.append(d)