X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-database.git/blobdiff_plain/bab93171a225d7f966f051def21acb5144986145..23b01ba18008f065413589a8f754b96fb0c05405:/client/etc/xen/sipb-database diff --git a/client/etc/xen/sipb-database b/client/etc/xen/sipb-database index 6753254..cc12679 100644 --- a/client/etc/xen/sipb-database +++ b/client/etc/xen/sipb-database @@ -1,11 +1,11 @@ # -*- mode: python; -*- -import sipb_xen_database.models as models -from sipb_xen_database import connect +from invirt.database import models, connect +from invirt.config import structs as config import re import tempfile from subprocess import call -connect('postgres://sipb-xen@sipb-xen-dev.mit.edu/sipb_xen') +connect() prefix = "d_" # 'machine_name', and optionally 'cdrom_image', should get passed in @@ -16,9 +16,13 @@ def check(b): import sys sys.exit(1) -machine = models.Machine.get_by(name=machine_name) +machine = models.Machine.query().filter_by(name=machine_name).one() check(machine is not None) -machine_type = models.Type.get_by(type_id=machine.type_id) +machine_type = machine.type +cdrom = None +if 'cdrom_image' in locals(): + cdrom = models.CDROM.query().filter_by(cdrom_id=cdrom_image).one() + check(cdrom is not None) memory = machine.memory maxmem = memory @@ -45,8 +49,8 @@ if machine_type.hvm: else: codepath = 'paravm' -if 'mirror' in locals(): #Installer - disk.append('phy:/dev/xenvg/d_foobar4_hda,hdb,r') +if 'installer_options' in locals(): #Installer + disk.append('phy:/dev/xenvg/s_install_hda,hdb,r') kernel = '/boot/vmlinuz-2.6.24-19-xen' #From hardy ramdisk = '/boot/initrd.img-2.6.24-19-xen' @@ -55,29 +59,27 @@ if 'mirror' in locals(): #Installer raise RuntimeError('You must have a nic to autoinstall') n = machine.nics[0] extra = 'ro noresume' - extra += ' ip=%s::18.181.0.1:255.255.0.0:%s:eth0:off' % (n.ip, machine.name) - extra += ' mirror=%s dist=%s' % (mirror, dist) - extra += ' imagesize=%s' % imagesize - #extra += ' noinstall' + extra += (' ip=%s::%s:%s:%s:eth0:off' + % (n.ip, config.dhcp.gateway, config.dhcp.netmask, machine.name)) + extra += ' %s' % installer_options root = '/dev/hdb1' codepath = None -elif 'cdrom_image' in locals(): - check(re.match('^[A-Za-z0-9][A-Za-z0-9_.-]*$', cdrom_image)) - disk.append('file:/srv/images/' + cdrom_image + '.iso,hdc:cdrom,r') +elif cdrom is not None: + disk.append('phy:/etc/xenvg/image_' + cdrom.cdrom_id + ',hdc:cdrom,r') boot = 'd' codepath = 'hvm' if codepath == 'hvm': ioemu = "ioemu:" viftype = "type=ioemu, " - kernel = 'hvmloader' + kernel = '/usr/lib/xen/boot/hvmloader' builder = 'hvm' vnc = 1 vncpasswd = 'moocow' device_model = '/usr/sbin/qemu-dm-sipb' serial = "pty" elif codepath == 'paravm': - bootloader = '/usr/lib/xen-default/bin/pygrub' + bootloader = '/usr/bin/pygrub' for n in machine.nics: