aboutsummaryrefslogtreecommitdiff
path: root/pyenc/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyenc/model.py')
-rw-r--r--pyenc/model.py30
1 files changed, 27 insertions, 3 deletions
diff --git a/pyenc/model.py b/pyenc/model.py
index 0382e96..0a240d9 100644
--- a/pyenc/model.py
+++ b/pyenc/model.py
@@ -1,6 +1,4 @@
-"""
-Database model for application
-"""
+"""Database model for application."""
from flask_sqlalchemy import SQLAlchemy
import requests
@@ -21,6 +19,15 @@ host_classes = db.Table(
class Host(db.Model):
+ """
+ Single computer.
+
+ A computer has a name (machine.example.com.), an environment
+ (production) and a list of puppet classes.
+
+ (TODO and direct values?)
+ """
+
__tablename__ = 'host'
id = db.Column(db.Integer, primary_key=True)
fqdn = db.Column(db.Text, nullable=False)
@@ -37,16 +44,33 @@ class Host(db.Model):
class PuppetFile(db.Model):
+ """
+ Puppet source code file.
+
+ Keeps track of known puppet files. Each file contains 0 to many
+ puppet classes.
+ """
+
__tablename__ = 'puppet_file'
id = db.Column(db.Integer, primary_key=True)
+ # Where we found the file
path = db.Column(db.Text, nullable=False)
+ # Output of 'puppet parser dump --format json <filename>'
json = db.Column(db.Text, nullable=False)
+ # When we last read data into json
last_parse = db.Column(db.Float)
# classes = db.relationship('PuppetClass', back_populates='comes_from')
classes = db.relationship('PuppetClass', backref='comes_from')
class PuppetClass(db.Model):
+ """
+ A puppet class.
+
+ The class itself only keeps track of its name here, and mostyl
+ ensures that only existing classes can be added to a given node/host.
+ """
+
__tablename__ = 'puppet_class'
id = db.Column(db.Integer, primary_key=True)
class_name = db.Column(db.Text, nullable=False)