Adding a sqlaclhemy schema module
[invirt/packages/invirt-database.git] / sipb_xen_database / models.py
1 from sqlalchemy import *
2
3 meta = DynamicMetaData()
4
5 machine_table = Table('machines', meta,
6        Column('machine_id', Integer, primary_key=True, nullable=False),
7        Column('name', String, nullable=False),
8        Column('memory', Integer, nullable=False),
9        Column('owner', String, nullable=False),
10        Column('contact', String, nullable=False),
11        Column('uuid', String, nullable=False),
12        Column('boot_off_cd', Boolean, nullable=False, default=False),
13        Column('type_id', String, ForeignKey('types.type_id'), nullable=False),
14        Column('autorestart', Boolean, nullable=False, default=False),
15        Column('cpus', Integer, nullable=False, default=1))
16
17 nic_table = Table('nics', meta,
18        Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=True),
19        Column('mac_addr', String, nullable=False),
20        Column('hostname', String, nullable=False))
21
22 disk_table = Table('disks', meta,
23        Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=False),
24        Column('guest_device_name', String, nullable=False),
25        Column('size', Integer, nullable=False),
26        PrimaryKeyConstraint('machine_id', 'guest_device_name'))
27
28 types_table = Table('types', meta,
29        Column('type_id', String, primary_key=True, nullable=False),
30        Column('description', String, nullable=False),
31        Column('apic', Boolean, nullable=False),
32        Column('acpi', Boolean, nullable=False),
33        Column('pae', Boolean, nullable=False))
34