mirror of
https://github.com/ansible/awx.git
synced 2026-05-19 23:07:42 -02:30
Remove changes to only count unique hostnames. Fixes https://trello.com/c/HN7S4KF3 again.
This commit is contained in:
@@ -282,16 +282,10 @@ class DashboardView(APIView):
|
|||||||
|
|
||||||
user_hosts = get_user_queryset(request.user, Host)
|
user_hosts = get_user_queryset(request.user, Host)
|
||||||
user_hosts_failed = user_hosts.filter(has_active_failures=True)
|
user_hosts_failed = user_hosts.filter(has_active_failures=True)
|
||||||
try:
|
|
||||||
user_hosts_count = user_hosts.distinct('name').count()
|
|
||||||
user_hosts_failed_count = user_hosts_failed.distinct('name').count()
|
|
||||||
except NotImplementedError: # For unit tests only, SQLite doesn't support distinct('name')
|
|
||||||
user_hosts_count = len(set(user_hosts.values_list('name', flat=True)))
|
|
||||||
user_hosts_failed_count = len(set(user_hosts_failed.values_list('name', flat=True)))
|
|
||||||
data['hosts'] = {'url': reverse('api:host_list'),
|
data['hosts'] = {'url': reverse('api:host_list'),
|
||||||
'failures_url': reverse('api:host_list') + "?has_active_failures=True",
|
'failures_url': reverse('api:host_list') + "?has_active_failures=True",
|
||||||
'total': user_hosts_count,
|
'total': user_hosts.count(),
|
||||||
'failed': user_hosts_failed_count}
|
'failed': user_hosts_failed.count()}
|
||||||
|
|
||||||
user_projects = get_user_queryset(request.user, Project)
|
user_projects = get_user_queryset(request.user, Project)
|
||||||
user_projects_failed = user_projects.filter(last_job_failed=True)
|
user_projects_failed = user_projects.filter(last_job_failed=True)
|
||||||
|
|||||||
@@ -1098,35 +1098,36 @@ class InventoryTest(BaseTest):
|
|||||||
self.assertEqual(response['hosts']['total'], 0)
|
self.assertEqual(response['hosts']['total'], 0)
|
||||||
self.assertEqual(response['hosts']['failed'], 0)
|
self.assertEqual(response['hosts']['failed'], 0)
|
||||||
|
|
||||||
# Create hosts with the same name in different inventories.
|
# Create hosts with the same name in different inventories. This host
|
||||||
|
# count should include total hosts, not unique names.
|
||||||
for x in xrange(4):
|
for x in xrange(4):
|
||||||
hostname = 'host-%d' % x
|
hostname = 'host-%d' % x
|
||||||
self.inventory_a.hosts.create(name=hostname)
|
self.inventory_a.hosts.create(name=hostname)
|
||||||
self.inventory_b.hosts.create(name=hostname)
|
self.inventory_b.hosts.create(name=hostname)
|
||||||
with self.current_user(self.super_django_user):
|
with self.current_user(self.super_django_user):
|
||||||
response = self.get(url, expect=200)
|
response = self.get(url, expect=200)
|
||||||
self.assertEqual(response['hosts']['total'], 4)
|
self.assertEqual(response['hosts']['total'], 8)
|
||||||
self.assertEqual(response['hosts']['failed'], 0)
|
self.assertEqual(response['hosts']['failed'], 0)
|
||||||
|
|
||||||
# Mark all hosts in one inventory as failed. Failed count should
|
# Mark all hosts in one inventory as failed. Failed count should
|
||||||
# reflect unique hostnames.
|
# reflect all hosts, not unique hostnames.
|
||||||
for host in self.inventory_a.hosts.all():
|
for host in self.inventory_a.hosts.all():
|
||||||
host.has_active_failures = True
|
host.has_active_failures = True
|
||||||
host.save()
|
host.save()
|
||||||
with self.current_user(self.super_django_user):
|
with self.current_user(self.super_django_user):
|
||||||
response = self.get(url, expect=200)
|
response = self.get(url, expect=200)
|
||||||
self.assertEqual(response['hosts']['total'], 4)
|
self.assertEqual(response['hosts']['total'], 8)
|
||||||
self.assertEqual(response['hosts']['failed'], 4)
|
self.assertEqual(response['hosts']['failed'], 4)
|
||||||
|
|
||||||
# Mark all hosts in the other inventory as failed. Failed count
|
# Mark all hosts in the other inventory as failed. Failed count
|
||||||
# should reflect unique hostnames and never be greater than total.
|
# should reflect all hosts and never be greater than total.
|
||||||
for host in self.inventory_b.hosts.all():
|
for host in self.inventory_b.hosts.all():
|
||||||
host.has_active_failures = True
|
host.has_active_failures = True
|
||||||
host.save()
|
host.save()
|
||||||
with self.current_user(self.super_django_user):
|
with self.current_user(self.super_django_user):
|
||||||
response = self.get(url, expect=200)
|
response = self.get(url, expect=200)
|
||||||
self.assertEqual(response['hosts']['total'], 4)
|
self.assertEqual(response['hosts']['total'], 8)
|
||||||
self.assertEqual(response['hosts']['failed'], 4)
|
self.assertEqual(response['hosts']['failed'], 8)
|
||||||
|
|
||||||
def test_dashboard_inventory_graph_view(self):
|
def test_dashboard_inventory_graph_view(self):
|
||||||
url = reverse('api:dashboard_inventory_graph_view')
|
url = reverse('api:dashboard_inventory_graph_view')
|
||||||
|
|||||||
Reference in New Issue
Block a user