diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSystemManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSystemManagement.java index 59ada5c26..859832b78 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSystemManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSystemManagement.java @@ -183,12 +183,7 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst } private void usageStatsPerTenant(final SystemUsageReportWithTenants report) { - final List tenants = findTenants(PageRequest.of(0, MAX_TENANTS_QUERY)).getContent(); - - tenants.forEach(tenant -> tenantAware.runAsTenant(tenant, () -> { - report.addTenantData(systemStatsManagement.getStatsOfTenant()); - return null; - })); + forEachTenant(tenant -> report.addTenantData(systemStatsManagement.getStatsOfTenant())); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/SystemManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/SystemManagementTest.java index 79b4102af..41f672a6b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/SystemManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/SystemManagementTest.java @@ -41,6 +41,16 @@ public class SystemManagementTest extends AbstractJpaIntegrationTest { assertThat(systemManagement.findTenants(PAGE).getContent()).hasSize(3); } + @Test + @Description("Ensures that getSystemUsageStatisticsWithTenants returns the usage of all tenants and not only the first 1000 (max page size).") + public void systemUsageReportCollectsStatisticsOfManyTenants() throws Exception { + // Prepare tenants + createTestTenantsForSystemStatistics(1050, 0, 0, 0); + + final List tenants = systemManagement.getSystemUsageStatisticsWithTenants().getTenants(); + assertThat(tenants).hasSize(1051); // +1 from the setup + } + @Test @Description("Checks that the system report calculates correctly the artifact size of all tenants in the system. It ignores deleted software modules with their artifacts.") public void systemUsageReportCollectsArtifactsOfAllTenants() throws Exception {