summaryrefslogtreecommitdiffstats
path: root/proxy/schema/model/model.py
blob: 5a4dc927a3a10068a024017c74b69762c066934b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.orm import mapper
from sqlalchemy.orm import sessionmaker

# engine = create_engine('sqlite:///:memory:', echo=True)
engine = create_engine('postgres://mmccune:mmccune@127.0.0.1:5432/candlepin')

metadata = MetaData()

org_table = Table('org', metadata, 
	Column('uuid', String, primary_key=True),
	Column('name', String))

entitlement_table = Table('entitlement', metadata, 
	Column('uuid', String, primary_key=True),
	Column('name', String),
	Column('org', String, ForeignKey('org.uuid')),
	Column('parent', String, ForeignKey('entitlement.uuid')))

consumer_table = Table('consumer', metadata, 
	Column('uuid', String, primary_key=True),
	Column('name', String),
	Column('type', String),
	Column('org', String, ForeignKey('org.uuid')),
	Column('parent', String, ForeignKey('consumer.uuid')))

product_definition_table = Table('product_definition', metadata, 
	Column('uuid', String, primary_key=True),
	Column('name', String))

entitlement_pool_table = Table('entitlement_pool', metadata, 
	Column('uuid', String, primary_key=True),
	Column('name', String),
	Column('org', String, ForeignKey('org.uuid')),
	Column('product_definition', String, ForeignKey('product_definition.uuid')))

metadata.create_all(engine)


class Org(object):
	def __init__(self, uuid, name):
		self.uuid = uuid
		self.name = name

	def __repr__(self):
		return "<Org('%s','%s')>" % (self.uuid, self.name)

mapper(Org, org_table) 

Session = sessionmaker(bind=engine)
session = Session()

org1 = Org('289489090234', 'test org')
session.add(org1)

lookedup = session.query(Org).filter_by(name='test org').first()
print lookedup.uuid