docker.images/ansible.awx/awx-17.1.0/awx/main/management/commands/stats.py

34 lines
985 B
Python

# Copyright (c) 2015 Ansible, Inc.
# All Rights Reserved
# Django
from django.core.management.base import BaseCommand
# AWX
from awx.main.models import UnifiedJob
class Command(BaseCommand):
'''
Emits some simple statistics suitable for external monitoring
'''
help = 'Display some simple statistics'
def add_arguments(self, parser):
parser.add_argument('--stat',
action='store',
dest='stat',
type=str,
default="jobs_running",
help='Select which stat to get information for')
def job_stats(self, state):
return UnifiedJob.objects.filter(status=state).count()
def handle(self, *args, **options):
if options['stat'].startswith("jobs_"):
self.stdout.write(str(self.job_stats(options['stat'][5:])))
else:
self.stdout.write("Supported stats: jobs_{state}")