From 0b53f4cfce045f0b477da14033ad662fbd399e71 Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Fri, 10 Nov 2017 11:58:26 -0800 Subject: [PATCH 1/7] adding interface option for admin CLI --- tasktiger_admin/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tasktiger_admin/utils.py b/tasktiger_admin/utils.py index 318576d..d0a8f11 100644 --- a/tasktiger_admin/utils.py +++ b/tasktiger_admin/utils.py @@ -5,16 +5,19 @@ from tasktiger import TaskTiger from tasktiger_admin import TaskTigerView + @click.command() @click.option('-h', '--host', help='Redis server hostname') @click.option('-p', '--port', help='Redis server port') @click.option('-a', '--password', help='Redis password') @click.option('-n', '--db', help='Redis database number') @click.option('-l', '--listen', help='Admin port to listen on') -def run_admin(host, port, db, password, listen): +@click.option('-i', '--interface', help='Admin interface to listen on', + default='127.0.0.1') +def run_admin(host, port, db, password, listen, interface): conn = redis.Redis(host, int(port or 6379), int(db or 0), password) tiger = TaskTiger(setup_structlog=True, connection=conn) app = Flask(__name__) admin = Admin(app, url='/') admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger')) - app.run(debug=True, port=int(listen or 5000)) + app.run(debug=True, port=int(listen or 5000), host=interface) From 38fd1fc0daae0856979f72d684c978e846b3ac99 Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Mon, 26 Feb 2018 16:29:10 -0800 Subject: [PATCH 2/7] environment variable for redis DSN --- setup.py | 1 + tasktiger_admin/utils.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 67ead36..237566b 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,7 @@ ], install_requires=[ 'click', + 'dsnparse', 'flask-admin', 'redis', 'structlog', diff --git a/tasktiger_admin/utils.py b/tasktiger_admin/utils.py index d0a8f11..4765880 100644 --- a/tasktiger_admin/utils.py +++ b/tasktiger_admin/utils.py @@ -1,4 +1,7 @@ +import os + import click +import dsnparse from flask import Flask from flask_admin import Admin import redis @@ -15,9 +18,15 @@ @click.option('-i', '--interface', help='Admin interface to listen on', default='127.0.0.1') def run_admin(host, port, db, password, listen, interface): + environ_dsn = os.environ.get('REDIS_URL', None) + if environ_dsn: + dsn_parsed = dsnparse.parse(environ_dsn) + host = host or dsn_parsed.host + port = port or dsn_parsed.port + password = dsn_parsed.password conn = redis.Redis(host, int(port or 6379), int(db or 0), password) tiger = TaskTiger(setup_structlog=True, connection=conn) app = Flask(__name__) admin = Admin(app, url='/') admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger')) - app.run(debug=True, port=int(listen or 5000), host=interface) + app.run(debug=False, port=int(listen or 5000), host=interface) From 00049461b656d4789b6a6c3b1f859f8c56157008 Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Mon, 26 Feb 2018 16:34:06 -0800 Subject: [PATCH 3/7] Adding dockerfile --- Dockerfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f00347b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM python:2-slim + +ENV PYTHONUNBUFFERED 1 + +RUN apt-get update && apt-get install -y git + +RUN git clone https://github.com/mrname/tasktiger-admin.git + +WORKDIR tasktiger-admin + +RUN python setup.py install + +EXPOSE 5000 + +CMD ["tasktiger-admin", "-i", "0.0.0.0"] From 15c9f2d1d13f74f2d599f9bdefee3af9895851c4 Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Wed, 18 Sep 2019 11:53:56 -0700 Subject: [PATCH 4/7] pinning redis dep to 2.X --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 237566b..0f90587 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ 'click', 'dsnparse', 'flask-admin', - 'redis', + 'redis>=2,<3', 'structlog', 'tasktiger>=0.4', ], From 773037e5a628a62601d0896b762c70cbb33f977a Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Thu, 19 Sep 2019 11:29:06 -0700 Subject: [PATCH 5/7] add CLI flag to disable structlog --- tasktiger_admin/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tasktiger_admin/utils.py b/tasktiger_admin/utils.py index 4765880..48b2f68 100644 --- a/tasktiger_admin/utils.py +++ b/tasktiger_admin/utils.py @@ -17,7 +17,10 @@ @click.option('-l', '--listen', help='Admin port to listen on') @click.option('-i', '--interface', help='Admin interface to listen on', default='127.0.0.1') -def run_admin(host, port, db, password, listen, interface): +@click.option( + '--structlog/--no-structlog', default=True, help='Enable/Disable structlog' +) +def run_admin(host, port, db, password, listen, interface, enable_structlog): environ_dsn = os.environ.get('REDIS_URL', None) if environ_dsn: dsn_parsed = dsnparse.parse(environ_dsn) @@ -25,7 +28,7 @@ def run_admin(host, port, db, password, listen, interface): port = port or dsn_parsed.port password = dsn_parsed.password conn = redis.Redis(host, int(port or 6379), int(db or 0), password) - tiger = TaskTiger(setup_structlog=True, connection=conn) + tiger = TaskTiger(setup_structlog=enable_structlog, connection=conn) app = Flask(__name__) admin = Admin(app, url='/') admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger')) From c1ae3c4d970e6cf71733177d36958257c6f0dc2f Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Thu, 19 Sep 2019 11:43:46 -0700 Subject: [PATCH 6/7] fixing structlog CLI flag --- tasktiger_admin/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasktiger_admin/utils.py b/tasktiger_admin/utils.py index 48b2f68..24d71b1 100644 --- a/tasktiger_admin/utils.py +++ b/tasktiger_admin/utils.py @@ -20,7 +20,7 @@ @click.option( '--structlog/--no-structlog', default=True, help='Enable/Disable structlog' ) -def run_admin(host, port, db, password, listen, interface, enable_structlog): +def run_admin(host, port, db, password, listen, interface, **kwargs): environ_dsn = os.environ.get('REDIS_URL', None) if environ_dsn: dsn_parsed = dsnparse.parse(environ_dsn) @@ -28,7 +28,7 @@ def run_admin(host, port, db, password, listen, interface, enable_structlog): port = port or dsn_parsed.port password = dsn_parsed.password conn = redis.Redis(host, int(port or 6379), int(db or 0), password) - tiger = TaskTiger(setup_structlog=enable_structlog, connection=conn) + tiger = TaskTiger(setup_structlog=kwargs['structlog'], connection=conn) app = Flask(__name__) admin = Admin(app, url='/') admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger')) From 3dc78d91693b2d3428201bb6c30b370dcb2af5a5 Mon Sep 17 00:00:00 2001 From: Justin Crown Date: Thu, 23 Jan 2020 15:15:46 -0800 Subject: [PATCH 7/7] HACK: Hard-coding disable of structlog --- tasktiger_admin/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tasktiger_admin/utils.py b/tasktiger_admin/utils.py index 24d71b1..c5e1367 100644 --- a/tasktiger_admin/utils.py +++ b/tasktiger_admin/utils.py @@ -28,7 +28,9 @@ def run_admin(host, port, db, password, listen, interface, **kwargs): port = port or dsn_parsed.port password = dsn_parsed.password conn = redis.Redis(host, int(port or 6379), int(db or 0), password) - tiger = TaskTiger(setup_structlog=kwargs['structlog'], connection=conn) + # FIXME - fix --no-structlog flag + # tiger = TaskTiger(setup_structlog=kwargs['structlog'], connection=conn) + tiger = TaskTiger(setup_structlog=False, connection=conn) app = Flask(__name__) admin = Admin(app, url='/') admin.add_view(TaskTigerView(tiger, name='TaskTiger', endpoint='tasktiger'))