Stuff that works is happy.
[invirt/packages/invirt-database.git] / client / etc / xen / sipb-database
1 # -*- mode: python; -*-
2 import sipb_xen_database.models as models
3 from sipb_xen_database import connect
4
5 connect('postgres://sipb-xen@sipb-xen-dev.mit.edu/sipb_xen')
6 # `machine_name' should get passed in from the xm create call
7
8 machine = models.Machine.get_by(name=machine_name)
9 machine_type = models.Type.get_by(type_id=machine.type_id)
10
11 memory = machine.memory
12 maxmem = memory
13 name = machine.name
14 uuid = machine.uuid
15
16 vcpus = machine.cpus
17
18 diskioemu = ""
19 viftype = ""
20
21 if machine_type.hvm:
22     ioemu = "ioemu:"
23     viftype = "type=ioemu, "
24
25     kernel = 'hvmloader'
26     builder = 'hvm'
27     vnc = 1
28     vncpasswd = 'moocow'
29     device_model = '/usr/sbin/qemu-dm-sipb'
30 else:
31     kernel  = '/boot/vmlinuz-2.6.18-4-xen-amd64'
32     ramdisk = '/boot/initrd.img-2.6.18-4-xen-amd64'
33     builder = 'linux'
34
35 pae = machine_type.pae
36 acpi = machine_type.acpi
37 apic = machine_type.apic
38
39 vif = []
40
41 for n in machine.nics:
42     d = '%smac=%s, ip=%s, bridge=xenbr0, script=vif-sipbroute' % (viftype, n.mac_addr, n.ip)
43     vif.append(d)
44
45 disk = []
46
47 for d in machine.disks:
48     device = '/dev/xenvg/' + machine.name + '_' + d.guest_device_name
49     dspec = 'phy:%s,%s%s,w' % (device, diskioemu, d.guest_device_name)
50     disk.append(dspec)
51
52 restart = 'destroy'
53 if machine.autorestart:
54     restart = 'restart'
55
56 on_poweroff = 'destroy'
57 on_reboot = 'restart'
58 on_crash = restart