diff --git a/ara/templates/ajax/action.html b/ara/templates/ajax/action.html
index 6d2611c4..629aa6fd 100644
--- a/ara/templates/ajax/action.html
+++ b/ara/templates/ajax/action.html
@@ -1,5 +1,5 @@
-{% if result.task.file -%}
-{{ result.task.action }}
+{% if file -%}
+{{ action }}
{% else -%}
-{{ result.task.action }}
+{{ action }}
{% endif -%}
\ No newline at end of file
diff --git a/ara/templates/ajax/stats.html b/ara/templates/ajax/stats.html
index eef4c812..b7bc8498 100644
--- a/ara/templates/ajax/stats.html
+++ b/ara/templates/ajax/stats.html
@@ -29,4 +29,4 @@
No host facts recorded for this host.
{% endif %}
{% endmacro %}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/ara/templates/ajax/task_name.html b/ara/templates/ajax/task_name.html
index e7f4f81f..d025158c 100644
--- a/ara/templates/ajax/task_name.html
+++ b/ara/templates/ajax/task_name.html
@@ -1,13 +1,13 @@
-{% macro render_tags(result) -%}
+{% macro render_tags(tags) -%}
This task has the following tags:
- {% for tag in result.task.tags | from_json -%}
+ {% for tag in tags | from_json -%}
- {{ tag }}
{% endfor %}
{% endmacro %}
-{% if result.task.tags and result.task.tags | from_json | length > 0 -%}
- {{ result.task.name }}
+{% if tags and tags | from_json | length > 0 -%}
+ {{ name }}
{% else -%}
- {{ result.task.name }}
+ {{ name }}
{% endif -%}
\ No newline at end of file
diff --git a/ara/templates/ajax/task_status.html b/ara/templates/ajax/task_status.html
index bb9fb000..53b28133 100644
--- a/ara/templates/ajax/task_status.html
+++ b/ara/templates/ajax/task_status.html
@@ -1 +1 @@
-{{ result.derived_status | upper }}
\ No newline at end of file
+{{ derived_status | upper }}
\ No newline at end of file
diff --git a/ara/views/reports.py b/ara/views/reports.py
index 32df754e..4512f02e 100644
--- a/ara/views/reports.py
+++ b/ara/views/reports.py
@@ -25,6 +25,8 @@ from flask import redirect
from flask import render_template
from flask import url_for
+YIELD_PER = 100
+
reports = Blueprint('reports', __name__)
@@ -117,7 +119,7 @@ def ajax_parameters(playbook):
@reports.route('/reports/ajax/plays/.txt')
def ajax_plays(playbook):
plays = (models.Play.query
- .filter(models.Play.playbook_id.in_([playbook])))
+ .filter(models.Play.playbook_id == playbook))
if not utils.fast_count(plays):
abort(404)
@@ -128,7 +130,7 @@ def ajax_plays(playbook):
results = dict()
results['data'] = list()
- for play in plays:
+ for play in plays.yield_per(YIELD_PER):
name = u"{0}".format(play.name)
start = date.render(date=play.time_start)
end = date.render(date=play.time_end)
@@ -141,7 +143,7 @@ def ajax_plays(playbook):
@reports.route('/reports/ajax/records/.txt')
def ajax_records(playbook):
records = (models.Data.query
- .filter(models.Data.playbook_id.in_([playbook])))
+ .filter(models.Data.playbook_id == playbook))
if not utils.fast_count(records):
abort(404)
@@ -152,7 +154,7 @@ def ajax_records(playbook):
results = dict()
results['data'] = list()
- for record in records:
+ for record in records.yield_per(YIELD_PER):
key = record_key.render(record=record)
value = record_value.render(record=record)
@@ -165,7 +167,7 @@ def ajax_records(playbook):
def ajax_results(playbook):
task_results = (models.TaskResult.query
.join(models.Task)
- .filter(models.Task.playbook_id.in_([playbook])))
+ .filter(models.Task.playbook_id == playbook))
if not utils.fast_count(task_results):
abort(404)
@@ -178,13 +180,16 @@ def ajax_results(playbook):
results = dict()
results['data'] = list()
- for result in task_results:
- name = name_cell.render(result=result)
+ for result in task_results.yield_per(YIELD_PER):
+ name = name_cell.render(tags=result.task.tags, name=result.task.name)
host = result.host.name
- action = action_link.render(result=result)
+ action = action_link.render(file=result.task.file,
+ lineno=result.task.lineno,
+ action=result.task.action)
elapsed = time.render(time=result.task.offset_from_playbook)
duration = time.render(time=result.duration)
- status = task_status_link.render(result=result)
+ status = task_status_link.render(id=result.id,
+ derived_status=result.derived_status)
results['data'].append([name, host, action, elapsed, duration, status])
return jsonify(results)
@@ -193,7 +198,7 @@ def ajax_results(playbook):
@reports.route('/reports/ajax/stats/.txt')
def ajax_stats(playbook):
stats = (models.Stats.query
- .filter(models.Stats.playbook_id.in_([playbook])))
+ .filter(models.Stats.playbook_id == playbook))
if not utils.fast_count(stats):
abort(404)
@@ -203,8 +208,8 @@ def ajax_stats(playbook):
results = dict()
results['data'] = list()
- for stat in stats:
- host = host_link.render(stat=stat)
+ for stat in stats.yield_per(YIELD_PER):
+ host = host_link.render(host=stat.host)
ok = stat.ok if stat.ok >= 1 else 0
changed = stat.changed if stat.changed >= 1 else 0
failed = stat.failed if stat.failed >= 1 else 0