Files
django-q2/django_q/management/commands/qinfo.py
T
2020-02-18 18:47:05 +01:00

52 lines
1.5 KiB
Python

from django.core.management.base import BaseCommand
from django.utils.translation import gettext as _
from django_q import VERSION
from django_q.conf import Conf
from django_q.monitor import info, get_ids
class Command(BaseCommand):
# Translators: help text for qinfo management command
help = _("General information over all clusters.")
def add_arguments(self, parser):
parser.add_argument(
"--config",
action="store_true",
dest="config",
default=False,
help="Print current configuration.",
)
parser.add_argument(
"--ids",
action="store_true",
dest="ids",
default=False,
help="Print cluster task ID(s) (PIDs).",
)
def handle(self, *args, **options):
if options.get("ids", True):
get_ids()
elif options.get("config", False):
hide = [
"conf",
"IDLE",
"STOPPING",
"STARTING",
"WORKING",
"SIGNAL_NAMES",
"STOPPED",
]
settings = [
a for a in dir(Conf) if not a.startswith("__") and a not in hide
]
self.stdout.write(f"VERSION: {'.'.join(str(v) for v in VERSION)}")
for setting in settings:
value = getattr(Conf, setting)
if value is not None:
self.stdout.write(f"{setting}: {value}")
else:
info()