diff options
Diffstat (limited to 'pyenc/model.py')
-rw-r--r-- | pyenc/model.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/pyenc/model.py b/pyenc/model.py index 10b2336..0382e96 100644 --- a/pyenc/model.py +++ b/pyenc/model.py @@ -8,7 +8,8 @@ import yaml db = SQLAlchemy() -host_classes = db.Table('host_classes', +host_classes = db.Table( + 'host_classes', db.Column('host_id', db.ForeignKey('host.id')), db.Column('class_id', db.ForeignKey('puppet_class.id'))) @@ -18,19 +19,22 @@ host_classes = db.Table('host_classes', # host_id = db.Column(db.Integer, db.ForeignKey('host.id'), nullable=False) # class_id = db.Column(db.Integer, db.ForeignKey('puppet_class.id'), nullable=False) + class Host(db.Model): __tablename__ = 'host' id = db.Column(db.Integer, primary_key=True) fqdn = db.Column(db.Text, nullable=False) environment = db.Column(db.Text) # classes = db.relationship('HostClasses', backref='host', lazy='dynamic') - classes = db.relationship('PuppetClass', + classes = db.relationship( + 'PuppetClass', back_populates='hosts', secondary=host_classes) def serialize(self): - return { column.name: self.__getattribute__(column.name) - for column in self.__table__.columns } + return {column.name: self.__getattribute__(column.name) + for column in self.__table__.columns} + class PuppetFile(db.Model): __tablename__ = 'puppet_file' @@ -41,12 +45,15 @@ class PuppetFile(db.Model): # classes = db.relationship('PuppetClass', back_populates='comes_from') classes = db.relationship('PuppetClass', backref='comes_from') + class PuppetClass(db.Model): __tablename__ = 'puppet_class' id = db.Column(db.Integer, primary_key=True) class_name = db.Column(db.Text, nullable=False) # comes_from = db.relationship('PuppetFile', back_populates='classes') - comes_from_id = db.Column(db.Integer, db.ForeignKey(f'{PuppetFile.__tablename__}.id')) - hosts = db.relationship('Host', + comes_from_id = db.Column(db.Integer, + db.ForeignKey(f'{PuppetFile.__tablename__}.id')) + hosts = db.relationship( + 'Host', back_populates='classes', secondary=host_classes) |