From 735510307c915fc272e918ee7967722bd9f41981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 18 Jun 2022 02:31:31 +0200 Subject: Pydocstyle. --- .pydocstyle | 2 ++ pyenc/__init__.py | 9 ++++++--- pyenc/db.py | 13 +++---------- pyenc/enc.py | 6 ++++++ pyenc/model.py | 30 +++++++++++++++++++++++++++--- 5 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 .pydocstyle diff --git a/.pydocstyle b/.pydocstyle new file mode 100644 index 0000000..b18701d --- /dev/null +++ b/.pydocstyle @@ -0,0 +1,2 @@ +[pydocstyle] +ignore = D100,D105,D107,D203,D212 diff --git a/pyenc/__init__.py b/pyenc/__init__.py index 08f724b..d5ec4f4 100644 --- a/pyenc/__init__.py +++ b/pyenc/__init__.py @@ -1,6 +1,4 @@ -""" -app object setup for application -""" +"""App object setup for application.""" import flask from flask import ( @@ -21,6 +19,11 @@ import yaml def create_app(): + """ + Create new flask app. + + Should bind everything needed to it. + """ app = Flask(__name__, instance_relative_config=True) app.config.from_pyfile('settings.py') diff --git a/pyenc/db.py b/pyenc/db.py index 3bf2bba..38edda1 100644 --- a/pyenc/db.py +++ b/pyenc/db.py @@ -1,6 +1,4 @@ -""" -Database connection for application -""" +"""Database connection for application.""" import click from flask import current_app, g @@ -8,16 +6,10 @@ from flask.cli import with_appcontext from .model import db -@with_appcontext -def init_db(): - db.create_all() - - @click.command('init-db') @with_appcontext def init_db_command(): - """ - """ + """Create database from command line.""" # init_db() # print(db) print(db) @@ -26,6 +18,7 @@ def init_db_command(): def init_app(app): + """Add database (and click) to given flask app.""" # app.teardown_appcontext(close_db) db.init_app(app) app.cli.add_command(init_db_command) diff --git a/pyenc/enc.py b/pyenc/enc.py index 5df6ecb..24f9fdc 100644 --- a/pyenc/enc.py +++ b/pyenc/enc.py @@ -11,6 +11,11 @@ import yaml @click.option('--fqdn', help='Node to get data for') @with_appcontext def run_enc(fqdn): + """ + Run the puppet node classifier. + + Runs the node clasifier for puppet, return the data as yaml. + """ host = model.Host.query.where(model.Host.fqdn == fqdn).first() if not host: print(f"No host with name {fqdn}") @@ -23,4 +28,5 @@ def run_enc(fqdn): def init_app(app): + """Add puppet enc click to current flask app.""" app.cli.add_command(run_enc) 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 ' 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) -- cgit v1.2.3