1 from db import Base
2 from sqlalchemy import Integer, Unicode, ForeignKey, Column, Boolean
3 from sqlalchemy.orm import relation, backref
4
5
6 metadata = Base.metadata
9 __tablename__ = 'organizative_unit'
10
11 id = Column(Integer, primary_key=True)
12 name = Column(Unicode(120), unique=True)
13 parent_id = Column(Integer, ForeignKey('organizative_unit.id'))
14 description = Column(Unicode(512))
15
16 childs = relation("OrganizativeUnit")
17 parent = relation("OrganizativeUnit", remote_side=id,
18 primaryjoin="OrganizativeUnit.id==OrganizativeUnit.parent_id")
19
22
23 @classmethod
25 return ('name', 'parent', 'description')
26
28 return "<OrganizativeUnit %s>" % (self.name)
29
30
31
32
33
34
35
36
37
38 -class Computer(Base):
39 __tablename__ = 'computer'
40
41 id = Column(Integer, primary_key=True)
42 name = Column(Unicode(120), unique=True)
43 mac = Column(Unicode(12), unique=True)
44 ip = Column(Unicode(32), unique=True)
45 repository = Column(Boolean)
46
47 ou_id = Column(Integer, ForeignKey('organizative_unit.id'))
48 ou = relation(OrganizativeUnit, backref=backref('computers',
49 cascade='all',
50 passive_deletes=False))
51
52 description = Column(Unicode(512))
53
54 @classmethod
56 return ('name', 'mac', 'ip', 'ou', 'description')
57
60
62 type_computer = 'Computer' if not self.repository else 'Repository'
63 return "<%s %s %s %s>" % (type_computer, self.name, self.mac, self.ip)
64
65
66
67
68
69
70