def print_jobs(jobs, exclude_iter_statuses): f = [] f.append(['Job', 'Open Iters', 'Date Added']) f.append(['-','-','-']) for job in jobs: open_iters = get_iterations(job, exclude_iter_statuses) open_iters_str = '-' if len(open_iters) > 0: open_iters_str = [] for open_iter in open_iters: open_iters_str.append("%s #%s" % (str(open_iter.get_status()), int(open_iter.get_id()))) f.append([job.get_name(), open_iters_str, job.date_added]) formatting.pprint_table(sys.stdout, f)
def report_tmsd_status(status_filter, tms_list=None, max_tasks_due_to_run=None): include_statuses = DAEMON_STATUS_FILTER_2_STATUS_LIST[status_filter.lower()] if tms_list == None: matches = tms_models.NorcDaemonStatus.objects.filter() tms_list = matches.all() tabular = [] tabular.append(["ID", "Type", "Region", "Host", "PID", "Running", "Success", "Error", "Status", "Started", "Ended"]) for tds in tms_list: if not include_statuses == None and not tds.get_status() in include_statuses: continue one_row = [] one_row.append(str(tds.id)) one_row.append(tds.get_daemon_type()) one_row.append(tds.get_region().get_name()) one_row.append(tds.host) one_row.append(tds.pid) one_row.append(len(tds.get_task_statuses(only_statuses=TASK_STATUS_FILTER_2_STATUS_LIST['running']))) one_row.append(len(tds.get_task_statuses(only_statuses=TASK_STATUS_FILTER_2_STATUS_LIST['success']))) one_row.append(len(tds.get_task_statuses(only_statuses=TASK_STATUS_FILTER_2_STATUS_LIST['errored']))) one_row.append(tds.get_status()) one_row.append(tds.date_started) if tds.is_done(): one_row.append(tds.date_ended) else: one_row.append("-") tabular.append(one_row) print >>sys.stdout, "Status as of %s" % (time.strftime("%m/%d/%Y %H:%M:%S")) if not max_tasks_due_to_run in (None, 0): # This call is currently super expensive when there's lots of Tasks; limit it! to_run = tms_manage.get_tasks_allowed_to_run(max_to_return=max_tasks_due_to_run) if len(to_run) < max_tasks_due_to_run: print >>sys.stdout, "%s Task(s) due to run.\n" % (len(to_run)) else: print >>sys.stdout, "At least %s Task(s) due to run.\n" % (len(to_run)) if len(tabular) == 1: print >>sys.stdout, "No %s tms daemons" % (status_filter.upper()) else: print >>sys.stdout, "%s %s tms daemon(s):" % (len(tabular)-1, status_filter.upper()) formatting.pprint_table(sys.stdout, tabular) print >>sys.stdout, ""
def report_sqsd_details(status_filter, sqsd): """report details for given sqsd""" include_statuses = TASK_STATUS_FILTER_2_STATUS_LIST[status_filter.lower()] tabular = [] tabular.append(["Task ID", "Status", "Started", "Ended"]) for run_status in sqsd.get_task_statuses(only_statuses=include_statuses): one_row = [] one_row.append(str(run_status.get_task_id())) one_row.append(run_status.get_status()) one_row.append(run_status.date_started) if run_status.date_ended == None: one_row.append("-") else: one_row.append(run_status.date_ended) tabular.append(one_row) if len(tabular) == 1: print >>sys.stdout, "SQS Daemon %s:%s (%s) hasn't run any tasks\n" % (sqsd.get_region().get_name(), sqsd.get_id(), sqsd.get_status()) else: print >>sys.stdout, "SQS Daemon %s:%s (%s) manages %s task(s):\n" % (sqsd.get_region().get_name(), sqsd.get_id(), sqsd.get_status(), len(tabular)-1) formatting.pprint_table(sys.stdout, tabular) print >>sys.stdout, ""
sys.stdout.write("\n") table_data = [] header1 = ["Name", "~ #", "Timeout"] header2 = ["-", "-", "-"] table_data.append(header1) table_data.append(header2) for q in all_queues: try: row = [get_name(q), q.count(), q.get_timeout()] table_data.append(row) except SQSError, sqse: log.error("Internal SQS error (it generates ignorable errors sometimes)" + str(sqse)) if len(table_data) > 2: formatting.pprint_table(sys.stdout, table_data) sys.stdout.write("\n") # # # def main(): parser = OptionParser( "%prog [--create_queue <name> [--visibility_timeout <seconds>]] \ [--clear_queue <name> [--use_api]] [--delete_queue <name>] [--debug]" ) parser.add_option("--create_queue", action="store") parser.add_option("--visibility_timeout", action="store", type="int")