import sipb_xen_database.models as models from sipb_xen_database import connect connect('postgres://sipb-xen@sipb-vm-1/sipb_xen') # `machine_name' should get passed in from the xm create call machine = models.Machine.get_by(name=machine_name) machine_type = models.Type.get_by(type_id=machine.type_id) memory = machine.memory maxmem = memory name = machine.name uuid = machine.uuid vcpus = machine.cpus diskioemu = "" viftype = "" if machine_type.hvm: ioemu = "ioemu:" viftype = "type=ioemu" kernel = 'hvmloader' builder = 'hvm' vnc = 1 device_model = 'qemu-dm' else: kernel = '/boot/vmlinuz-2.6.18-4-xen-amd64' ramdisk = '/boot/initrd.img-2.6.18-4-xen-amd64' builder = 'linux' pae = machine_type.pae acpi = machine_type.acpi apic = machine_type.apic vif = [] for n in machine.nics: d = '%s, mac=%s, ip=%s, bridge=xenbr0, script=vif-sipbroute' % (viftype, n.mac_addr, n.ip) vif.append(d) disk = [] for d in machine.disks: device = 'xenvg/' + machine.name + '_' + d.guest_device_name dspec = 'phy:%s,%s%s,w' % (device, diskioemu, d.guest_device_name) disk.append(dspec) restart = 'destroy' if machine.autorestart: restart = 'restart' on_poweroff = 'destroy' on_reboot = 'restart' on_crash = restart