[tools] testbot/web: Query the VMs table only once for the main page.

Francois Gouget fgouget at codeweavers.com
Tue Jun 7 11:49:28 CDT 2022


Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/web/index.pl | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/testbot/web/index.pl b/testbot/web/index.pl
index 21ee5fea4..1083d3b57 100644
--- a/testbot/web/index.pl
+++ b/testbot/web/index.pl
@@ -264,14 +264,15 @@ sub GenerateBody($)
     print "<div class='GeneralStatusItemText'><a href='#jobs'>Engine appears to be dead and is not processing jobs</a></div>";
   }
   print "</div>\n";
-  
-  my $OfflineVMs = CreateVMs();
-  $OfflineVMs->FilterEnabledRole();
-  $OfflineVMs->AddFilter("Status", ["offline"]);
-  my $MaintenanceVMs = CreateVMs();
-  $MaintenanceVMs->FilterEnabledRole();
-  $MaintenanceVMs->AddFilter("Status", ["maintenance"]);
-  if ($OfflineVMs->IsEmpty() and $MaintenanceVMs->IsEmpty())
+
+  my $VMs = CreateVMs();
+  my ($OfflineVMs, $MaintenanceVMs);
+  foreach my $VM (@{$VMs->GetItems()})
+  {
+    $OfflineVMs++ if ($VM->Status eq "offline");
+    $MaintenanceVMs++ if ($VM->Status eq "maintenance");
+  }
+  if (!$OfflineVMs and !$MaintenanceVMs)
   {
     print "<div class='GeneralStatusItem'>";
     $self->OutputDot("green");
@@ -280,18 +281,18 @@ sub GenerateBody($)
   }
   else
   {
-    if (!$OfflineVMs->IsEmpty())
+    if ($OfflineVMs)
     {
       print "<div class='GeneralStatusItem'>";
       $self->OutputDot("red");
-      print "<div class='GeneralStatusItemText'><a href='#vms'>One or more VMs are offline</a></div>";
+      print "<div class='GeneralStatusItemText'><a href='#vms'>$OfflineVMs VMs are offline</a></div>";
       print "</div>\n";
     }
-    if (!$MaintenanceVMs->IsEmpty())
+    if ($MaintenanceVMs)
     {
       print "<div class='GeneralStatusItem'>";
       $self->OutputDot("red");
-      print "<div class='GeneralStatusItemText'><a href='#vms'>One or more VMs are undergoing maintenance</a></div>";
+      print "<div class='GeneralStatusItemText'><a href='#vms'>$MaintenanceVMs VMs are undergoing maintenance</a></div>";
       print "</div>\n";
     }
   }
@@ -343,7 +344,7 @@ sub GenerateBody($)
 EOF
 
   print "<h2><a name='vms'></a>VMs</h2>\n";
-  my $VMsCollectionBlock = new VMStatusBlock(CreateVMs(), $self);
+  my $VMsCollectionBlock = new VMStatusBlock($VMs, $self);
   $VMsCollectionBlock->SetReadWrite(0);
   $VMsCollectionBlock->GenerateList();
   print "</div>\n";
-- 
2.30.2



More information about the wine-devel mailing list