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()