Alternative less expensive stats service. (#549)
* Alternative less expensive stats service. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Fix NEP. Address is optional. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * revert null check, Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Specified return object. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Add tenant count overall. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -30,6 +30,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSetType;
|
||||
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||
import org.eclipse.hawkbit.repository.model.TenantMetaData;
|
||||
import org.eclipse.hawkbit.repository.report.model.SystemUsageReport;
|
||||
import org.eclipse.hawkbit.repository.report.model.SystemUsageReportWithTenants;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.tenancy.TenantAware;
|
||||
import org.eclipse.persistence.config.PersistenceUnitProperties;
|
||||
@@ -145,15 +146,20 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst
|
||||
final Long actions = (Long) entityManager.createNativeQuery("SELECT COUNT(id) FROM sp_action")
|
||||
.getSingleResult();
|
||||
|
||||
final SystemUsageReport result = new SystemUsageReport(targets, artifacts, actions,
|
||||
sumOfArtifacts.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
|
||||
return new SystemUsageReportWithTenants(targets, artifacts, actions,
|
||||
sumOfArtifacts.setScale(0, BigDecimal.ROUND_HALF_UP).longValue(), tenantMetaDataRepository.count());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemUsageReportWithTenants getSystemUsageStatisticsWithTenants() {
|
||||
final SystemUsageReportWithTenants result = (SystemUsageReportWithTenants) getSystemUsageStatistics();
|
||||
|
||||
usageStatsPerTenant(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void usageStatsPerTenant(final SystemUsageReport report) {
|
||||
private void usageStatsPerTenant(final SystemUsageReportWithTenants report) {
|
||||
final List<String> tenants = findTenants(new PageRequest(0, MAX_TENANTS_QUERY)).getContent();
|
||||
|
||||
tenants.forEach(tenant -> tenantAware.runAsTenant(tenant, () -> {
|
||||
|
||||
@@ -51,7 +51,7 @@ public class SystemManagementTest extends AbstractJpaIntegrationTest {
|
||||
assertThat(systemManagement.getSystemUsageStatistics().getOverallArtifactVolumeInBytes()).isEqualTo(1234 * 2);
|
||||
|
||||
// per tenant data
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatistics().getTenants();
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatisticsWithTenants().getTenants();
|
||||
assertThat(tenants).hasSize(3);
|
||||
assertThat(tenants).containsOnly(new TenantUsage("default"),
|
||||
new TenantUsage("tenant0").setArtifacts(1).setOverallArtifactVolumeInBytes(1234),
|
||||
@@ -69,10 +69,11 @@ public class SystemManagementTest extends AbstractJpaIntegrationTest {
|
||||
assertThat(systemManagement.getSystemUsageStatistics().getOverallActions()).isEqualTo(0);
|
||||
|
||||
// per tenant data
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatistics().getTenants();
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatisticsWithTenants().getTenants();
|
||||
assertThat(tenants).hasSize(3);
|
||||
assertThat(tenants).containsOnly(new TenantUsage("default"), new TenantUsage("tenant0").setTargets(100),
|
||||
new TenantUsage("tenant1").setTargets(100));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -85,7 +86,7 @@ public class SystemManagementTest extends AbstractJpaIntegrationTest {
|
||||
assertThat(systemManagement.getSystemUsageStatistics().getOverallActions()).isEqualTo(400);
|
||||
|
||||
// per tenant data
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatistics().getTenants();
|
||||
final List<TenantUsage> tenants = systemManagement.getSystemUsageStatisticsWithTenants().getTenants();
|
||||
assertThat(tenants).hasSize(3);
|
||||
assertThat(tenants).containsOnly(new TenantUsage("default"),
|
||||
new TenantUsage("tenant0").setTargets(100).setActions(200),
|
||||
|
||||
Reference in New Issue
Block a user