projects
/
invirt/packages/invirt-database.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add the CDROM mirrors table
[invirt/packages/invirt-database.git]
/
python
/
database
/
models.py
diff --git
a/python/database/models.py
b/python/database/models.py
index
6ba0446
..
52bd7c1
100644
(file)
--- a/
python/database/models.py
+++ b/
python/database/models.py
@@
-26,7
+26,7
@@
__all__ = ['meta',
]
meta = ThreadLocalMetaData()
]
meta = ThreadLocalMetaData()
-session = orm.scoped_session(orm.sessionmaker(transactional=False))
+session = orm.scoped_session(orm.sessionmaker(transactional=False, autoflush=False))
machine_table = Table('machines', meta,
Column('machine_id', Integer, primary_key=True, nullable=False),
machine_table = Table('machines', meta,
Column('machine_id', Integer, primary_key=True, nullable=False),
@@
-62,9
+62,15
@@
types_table = Table('types', meta,
Column('acpi', Boolean, nullable=False),
Column('pae', Boolean, nullable=False))
Column('acpi', Boolean, nullable=False),
Column('pae', Boolean, nullable=False))
+mirrors_table = Table('mirrors', meta,
+ Column('mirror_id', String, primary_key=True, nullable=False),
+ Column('uri_prefix', String, nullable=False))
+
cdroms_table = Table('cdroms', meta,
Column('cdrom_id', String, primary_key=True, nullable=False),
cdroms_table = Table('cdroms', meta,
Column('cdrom_id', String, primary_key=True, nullable=False),
- Column('description', String, nullable=False))
+ Column('description', String, nullable=False),
+ Column('mirror_id', String, ForeignKey('mirrors.mirror_id'),
+ Column('uri_suffix', String))
autoinstalls_table = Table('autoinstalls', meta,
Column('autoinstall_id', String, primary_key=True, nullable=False),
autoinstalls_table = Table('autoinstalls', meta,
Column('autoinstall_id', String, primary_key=True, nullable=False),
@@
-74,9
+80,9
@@
autoinstalls_table = Table('autoinstalls', meta,
Column('mirror', String, nullable=False))
machine_access_table = Table('machine_access', meta,
Column('mirror', String, nullable=False))
machine_access_table = Table('machine_access', meta,
- Column('machine_id', Integer, ForeignKey('machines.machine_id'), nullable=False, index=True),
+ Column('machine_id', Integer, ForeignKey('machines.machine_id', ondelete='CASCADE'), nullable=False, index=True),
Column('user', String, nullable=False, index=True),
Column('user', String, nullable=False, index=True),
- PrimaryKeyConstraint('machine_id', 'user', ondelete='CASCADE'))
+ PrimaryKeyConstraint('machine_id', 'user'))
class Machine(object):
def __repr__(self):
class Machine(object):
def __repr__(self):
@@
-98,6
+104,10
@@
class Type(object):
def __repr__(self):
return "<Type %s: %s>" % (self.type_id, self.description)
def __repr__(self):
return "<Type %s: %s>" % (self.type_id, self.description)
+class Mirror(object):
+ def __repr__(self):
+ return "<Mirror %s>" % (self.mirror_id)
+
class CDROM(object):
def __repr__(self):
return "<CDROM %s: %s>" % (self.cdrom_id, self.description)
class CDROM(object):
def __repr__(self):
return "<CDROM %s: %s>" % (self.cdrom_id, self.description)
@@
-115,14
+125,12
@@
session.mapper(MachineAccess, machine_access_table)
session.mapper(NIC, nic_table)
session.mapper(Disk, disk_table)
session.mapper(Type, types_table)
session.mapper(NIC, nic_table)
session.mapper(Disk, disk_table)
session.mapper(Type, types_table)
+session.mapper(Mirror, mirrors_table)
session.mapper(CDROM, cdroms_table)
session.mapper(Autoinstall, autoinstalls_table)
def clear_cache():
session.mapper(CDROM, cdroms_table)
session.mapper(Autoinstall, autoinstalls_table)
def clear_cache():
- """Clear sqlalchemy's cache.
-
- This _seems_ to be the way; it works, but the docs don't mention
- it. Why is this so obscure?"""
+ """Clear sqlalchemy's cache
+ """
- # XXX maybe we still need to do this, but it's not doc'd how.
- #ctx.registry.clear()
+ session.clear()