Files
django-q2/django_q/management/commands/qinfo.py
T

42 lines
1.4 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('VERSION: {}'.format('.'.join(str(v) for v in VERSION)))
for setting in settings:
value = getattr(Conf, setting)
if value is not None:
self.stdout.write('{}: {}'.format(setting, value))
else:
info()