diff --git a/.flask_cache/0cc005a225d064a6216a21c390e8fd8f b/.flask_cache/0cc005a225d064a6216a21c390e8fd8f deleted file mode 100644 index 788cb21..0000000 Binary files a/.flask_cache/0cc005a225d064a6216a21c390e8fd8f and /dev/null differ diff --git a/.flask_cache/1fc39e56a58c627ed59c0d0523e808e2 b/.flask_cache/1fc39e56a58c627ed59c0d0523e808e2 deleted file mode 100644 index d7f3b14..0000000 Binary files a/.flask_cache/1fc39e56a58c627ed59c0d0523e808e2 and /dev/null differ diff --git a/.flask_cache/2029240f6d1128be89ddc32729463129 b/.flask_cache/2029240f6d1128be89ddc32729463129 index 41cb345..8bd88e5 100644 Binary files a/.flask_cache/2029240f6d1128be89ddc32729463129 and b/.flask_cache/2029240f6d1128be89ddc32729463129 differ diff --git a/.flask_cache/2752cbed1c3342df07c3a4888c00dfdd b/.flask_cache/2752cbed1c3342df07c3a4888c00dfdd deleted file mode 100644 index b0befc5..0000000 Binary files a/.flask_cache/2752cbed1c3342df07c3a4888c00dfdd and /dev/null differ diff --git a/.flask_cache/29247a84a0a0a129b1e0ca9dad5c0444 b/.flask_cache/29247a84a0a0a129b1e0ca9dad5c0444 deleted file mode 100644 index 47935f8..0000000 Binary files a/.flask_cache/29247a84a0a0a129b1e0ca9dad5c0444 and /dev/null differ diff --git a/.flask_cache/379a23d6e49ea74418d51711a36df194 b/.flask_cache/379a23d6e49ea74418d51711a36df194 deleted file mode 100644 index 42123ed..0000000 Binary files a/.flask_cache/379a23d6e49ea74418d51711a36df194 and /dev/null differ diff --git a/.flask_cache/3e24c65d0dab693559fbfe16164473e6 b/.flask_cache/3e24c65d0dab693559fbfe16164473e6 deleted file mode 100644 index 547ce13..0000000 Binary files a/.flask_cache/3e24c65d0dab693559fbfe16164473e6 and /dev/null differ diff --git a/.flask_cache/577248bd1fd6a03775f9c0a64b184799 b/.flask_cache/577248bd1fd6a03775f9c0a64b184799 deleted file mode 100644 index a697591..0000000 Binary files a/.flask_cache/577248bd1fd6a03775f9c0a64b184799 and /dev/null differ diff --git a/.flask_cache/5e8887a448534e50af390288650930ea b/.flask_cache/5e8887a448534e50af390288650930ea deleted file mode 100644 index 6d142c9..0000000 Binary files a/.flask_cache/5e8887a448534e50af390288650930ea and /dev/null differ diff --git a/.flask_cache/632595e1de107e8f891d3cf18b102ff1 b/.flask_cache/632595e1de107e8f891d3cf18b102ff1 deleted file mode 100644 index 3b22b1d..0000000 Binary files a/.flask_cache/632595e1de107e8f891d3cf18b102ff1 and /dev/null differ diff --git a/.flask_cache/74bc75c0764cbc805c70645cef1f026b b/.flask_cache/74bc75c0764cbc805c70645cef1f026b index 5932ef1..1c2abdd 100644 Binary files a/.flask_cache/74bc75c0764cbc805c70645cef1f026b and b/.flask_cache/74bc75c0764cbc805c70645cef1f026b differ diff --git a/.flask_cache/1842a0ff0c5b4bdbdca506a3489cceed b/.flask_cache/77c5444ceabaa72e7f3ca61c79d8a07b similarity index 96% rename from .flask_cache/1842a0ff0c5b4bdbdca506a3489cceed rename to .flask_cache/77c5444ceabaa72e7f3ca61c79d8a07b index 220add2..29ac769 100644 Binary files a/.flask_cache/1842a0ff0c5b4bdbdca506a3489cceed and b/.flask_cache/77c5444ceabaa72e7f3ca61c79d8a07b differ diff --git a/.flask_cache/bbc9d74b6ce9914445ee9365223c30a1 b/.flask_cache/bbc9d74b6ce9914445ee9365223c30a1 deleted file mode 100644 index 076318f..0000000 Binary files a/.flask_cache/bbc9d74b6ce9914445ee9365223c30a1 and /dev/null differ diff --git a/.flask_cache/c10d865004bdf7e67dcf50a6039073dd b/.flask_cache/c10d865004bdf7e67dcf50a6039073dd deleted file mode 100644 index 09cd911..0000000 Binary files a/.flask_cache/c10d865004bdf7e67dcf50a6039073dd and /dev/null differ diff --git a/.flask_cache/c9a8ada7d4e04353536dc74ceb1b08e2 b/.flask_cache/c9a8ada7d4e04353536dc74ceb1b08e2 deleted file mode 100644 index 702cf88..0000000 Binary files a/.flask_cache/c9a8ada7d4e04353536dc74ceb1b08e2 and /dev/null differ diff --git a/.flask_cache/d277c4e120e0e4b7fa8f80455a32af2e b/.flask_cache/d277c4e120e0e4b7fa8f80455a32af2e deleted file mode 100644 index 35f7f75..0000000 Binary files a/.flask_cache/d277c4e120e0e4b7fa8f80455a32af2e and /dev/null differ diff --git a/.flask_cache/e6dad9c79446e7c35963c49fd05507d6 b/.flask_cache/e6dad9c79446e7c35963c49fd05507d6 deleted file mode 100644 index 44dfb58..0000000 Binary files a/.flask_cache/e6dad9c79446e7c35963c49fd05507d6 and /dev/null differ diff --git a/.flask_cache/e9ad28e2141cab0361d67aef3520c6f7 b/.flask_cache/e9ad28e2141cab0361d67aef3520c6f7 deleted file mode 100644 index f68511c..0000000 Binary files a/.flask_cache/e9ad28e2141cab0361d67aef3520c6f7 and /dev/null differ diff --git a/.flask_cache/f2a7e36076223a740fa17b882df5c74a b/.flask_cache/f2a7e36076223a740fa17b882df5c74a new file mode 100644 index 0000000..82a0b43 Binary files /dev/null and b/.flask_cache/f2a7e36076223a740fa17b882df5c74a differ diff --git a/.flask_cache/f907d0eb682db4a28aa578fee970f056 b/.flask_cache/f907d0eb682db4a28aa578fee970f056 deleted file mode 100644 index 4819d26..0000000 Binary files a/.flask_cache/f907d0eb682db4a28aa578fee970f056 and /dev/null differ diff --git a/hyperglass/.gitignore b/hyperglass/.gitignore index 7932e81..11e5f5c 100644 --- a/hyperglass/.gitignore +++ b/hyperglass/.gitignore @@ -1,6 +1,7 @@ .DS_Store .sass-cache/ .flask_cache +gunicorn_config.py test.py __pycache__/ parsing/ diff --git a/hyperglass/gunicorn_config.py b/hyperglass/gunicorn_config.py.example similarity index 100% rename from hyperglass/gunicorn_config.py rename to hyperglass/gunicorn_config.py.example diff --git a/hyperglass/hyperglass.py b/hyperglass/hyperglass.py index 24986e7..da453ce 100644 --- a/hyperglass/hyperglass.py +++ b/hyperglass/hyperglass.py @@ -9,9 +9,9 @@ from flask_limiter import Limiter from flask_limiter.util import get_remote_address # Local Imports -from hyperglass import render -from hyperglass import configuration +import hyperglass.configuration as configuration from hyperglass.command import execute +from hyperglass import render # Load TOML config file devices = configuration.devices() @@ -27,6 +27,14 @@ rate_limit_query = configuration.gen.rate_limit_query() + " per minute" rate_limit_site = configuration.gen.rate_limit_site() + "per minute" limiter = Limiter(app, key_func=get_remote_address, default_limits=[rate_limit_site]) + +def renderCSS(): + try: + render.css.renderTemplate() + except: + raise + + # Render Main Flask-Limiter Error Message @app.errorhandler(429) def error429(e): diff --git a/hyperglass/manage.py b/hyperglass/manage.py deleted file mode 100644 index 797930c..0000000 --- a/hyperglass/manage.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import sys -from loguru import logger - -# from hyperglass.hyperglass import app - -logger.add(sys.stderr) - - -for arg in sys.argv: - if arg == "clearcache": - try: - hyperglass.hyperglass.app.clearcache() - logger.info("Successfully cleared cache.") - except: - raise - logger.error("Failed to clear cache.") diff --git a/hyperglass/render/__init__.py b/hyperglass/render/__init__.py index 2688d57..65d3ab1 100644 --- a/hyperglass/render/__init__.py +++ b/hyperglass/render/__init__.py @@ -3,12 +3,15 @@ import sass import codecs import jinja2 import subprocess +from logzero import logger from markdown2 import Markdown from flask import render_template +import hyperglass from hyperglass import configuration dir = os.path.dirname(os.path.abspath(__file__)) +hyperglass_root = os.path.dirname(hyperglass.__file__) file_loader = jinja2.FileSystemLoader(dir) env = jinja2.Environment(loader=file_loader) @@ -79,6 +82,8 @@ class html: class css: def renderTemplate(): + scss_file = os.path.join(hyperglass_root, "static/sass/hyperglass.scss") + css_file = os.path.join(hyperglass_root, "static/css/hyperglass.css") try: template = env.get_template("templates/hyperglass.scss") rendered_output = template.render( @@ -94,14 +99,16 @@ class css: mono_font_url=configuration.brand.mono_font_url(), mono_font_name=configuration.brand.mono_font_name(), ) - with open("static/sass/hyperglass.scss", "w") as scss_output: + with open(scss_file, "w") as scss_output: scss_output.write(rendered_output) except: + logger.error("Error rendering Jinja2 template.") raise TypeError("Error rendering Jinja2 template.") try: - generated_sass = sass.compile(filename="static/sass/hyperglass.scss") - with open("static/css/hyperglass.css", "w") as css_output: + generated_sass = sass.compile(filename=scss_file) + with open(css_file, "w") as css_output: css_output.write(generated_sass) - print("\n", "* Sass templates rendered to CSS files.", "\n") + logger.info("Rendered Sass templates to CSS files.") except: + logger.error("Error rendering Sass template.") raise TypeError("Error rendering Sass template.") diff --git a/hyperglass/wsgi.py b/hyperglass/wsgi.py index 72fda07..cdb2324 100644 --- a/hyperglass/wsgi.py +++ b/hyperglass/wsgi.py @@ -3,4 +3,5 @@ from hyperglass.hyperglass import app application = app if __name__ == "__main__": + application.renderCSS() application.run() diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..5609259 --- /dev/null +++ b/manage.py @@ -0,0 +1,53 @@ +import os +import sys +import click +from logzero import logger +from hyperglass import render as render +from hyperglass import hyperglass + + +@click.group() +def main(): + pass + + +@main.command() +def clearcache(): + try: + hyperglass.clearCache() + logger.info("Successfully cleared cache.") + except: + raise + logger.error("Failed to clear cache.") + + +@main.command() +def testserver(): + try: + render.css.renderTemplate() + hyperglass.app.run(host="0.0.0.0", debug=True, port=5000) + logger.error("Started test server.") + except: + logger.error("Failed to start test server.") + raise + + +if __name__ == "__main__": + main() + +# for arg in sys.argv: +# if arg == "clearcache": +# try: +# hyperglass.hyperglass.app.clearcache() +# logger.info("Successfully cleared cache.") +# except: +# raise +# logger.error("Failed to clear cache.") +# elif arg == "test": +# try: +# render.css.renderTemplate() +# app.run(host="0.0.0.0", debug=True, port=5000) +# logger.error("Started test server.") +# except: +# logger.error("Failed to start test server.") +# raise