Fix introduced issues
Signed-off-by: Dominic Schabel <dominic.schabel@bosch.io>
This commit is contained in:
@@ -61,6 +61,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
@Validated
|
@Validated
|
||||||
public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, SystemManagement {
|
public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, SystemManagement {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(JpaSystemManagement.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(JpaSystemManagement.class);
|
||||||
|
|
||||||
private static final int MAX_TENANTS_QUERY = 1000;
|
private static final int MAX_TENANTS_QUERY = 1000;
|
||||||
@@ -125,16 +126,28 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ArtifactRepository artifactRepository;
|
private ArtifactRepository artifactRepository;
|
||||||
|
|
||||||
@Autowired
|
private final String countArtifactQuery;
|
||||||
private JpaProperties properties;
|
private final String countSoftwareModulesQuery;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param properties
|
||||||
|
* properties to get the underlying database
|
||||||
|
*/
|
||||||
|
public JpaSystemManagement(final JpaProperties properties) {
|
||||||
|
|
||||||
|
final String isDeleted = isPostgreSql(properties) ? "false" : "0";
|
||||||
|
countArtifactQuery = "SELECT COUNT(a.id) FROM sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = "
|
||||||
|
+ isDeleted;
|
||||||
|
countSoftwareModulesQuery = "select SUM(file_size) from sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = "
|
||||||
|
+ isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SystemUsageReport getSystemUsageStatistics() {
|
public SystemUsageReport getSystemUsageStatistics() {
|
||||||
|
|
||||||
final Number count = (Number) entityManager.createNativeQuery(
|
final Number count = (Number) entityManager.createNativeQuery(countSoftwareModulesQuery).getSingleResult();
|
||||||
"select SUM(file_size) from sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = "
|
|
||||||
+ (isPostgreSql(properties) ? "false" : "0"))
|
|
||||||
.getSingleResult();
|
|
||||||
|
|
||||||
long sumOfArtifacts = 0;
|
long sumOfArtifacts = 0;
|
||||||
if (count != null) {
|
if (count != null) {
|
||||||
@@ -146,10 +159,8 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst
|
|||||||
final long targets = ((Number) entityManager.createNativeQuery("SELECT COUNT(id) FROM sp_target")
|
final long targets = ((Number) entityManager.createNativeQuery("SELECT COUNT(id) FROM sp_target")
|
||||||
.getSingleResult()).longValue();
|
.getSingleResult()).longValue();
|
||||||
|
|
||||||
final long artifacts = ((Number) entityManager.createNativeQuery(
|
final long artifacts = ((Number) entityManager.createNativeQuery(countArtifactQuery).getSingleResult())
|
||||||
"SELECT COUNT(a.id) FROM sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = "
|
.longValue();
|
||||||
+ (isPostgreSql(properties) ? "false" : "0"))
|
|
||||||
.getSingleResult()).longValue();
|
|
||||||
|
|
||||||
final long actions = ((Number) entityManager.createNativeQuery("SELECT COUNT(id) FROM sp_action")
|
final long actions = ((Number) entityManager.createNativeQuery("SELECT COUNT(id) FROM sp_action")
|
||||||
.getSingleResult()).longValue();
|
.getSingleResult()).longValue();
|
||||||
@@ -159,7 +170,7 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isPostgreSql(final JpaProperties properties) {
|
private static boolean isPostgreSql(final JpaProperties properties) {
|
||||||
return Database.POSTGRESQL.equals(properties.getDatabase());
|
return Database.POSTGRESQL == properties.getDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import java.util.concurrent.ScheduledExecutorService;
|
|||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
import org.eclipse.hawkbit.artifact.repository.ArtifactRepository;
|
import org.eclipse.hawkbit.artifact.repository.ArtifactRepository;
|
||||||
import org.eclipse.hawkbit.repository.ArtifactManagement;
|
import org.eclipse.hawkbit.repository.ArtifactManagement;
|
||||||
import org.eclipse.hawkbit.repository.ControllerManagement;
|
import org.eclipse.hawkbit.repository.ControllerManagement;
|
||||||
@@ -124,8 +126,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|||||||
import org.springframework.transaction.jta.JtaTransactionManager;
|
import org.springframework.transaction.jta.JtaTransactionManager;
|
||||||
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
|
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* General configuration for hawkBit's Repository.
|
* General configuration for hawkBit's Repository.
|
||||||
*
|
*
|
||||||
@@ -426,8 +426,8 @@ public class RepositoryApplicationConfiguration extends JpaBaseConfiguration {
|
|||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
SystemManagement systemManagement() {
|
SystemManagement systemManagement(final JpaProperties properties) {
|
||||||
return new JpaSystemManagement();
|
return new JpaSystemManagement(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -760,8 +760,8 @@ public class RepositoryApplicationConfiguration extends JpaBaseConfiguration {
|
|||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
AutoAssignExecutor autoAssignExecutor(final TargetFilterQueryManagement targetFilterQueryManagement,
|
AutoAssignExecutor autoAssignExecutor(final TargetFilterQueryManagement targetFilterQueryManagement,
|
||||||
final TargetManagement targetManagement, final DeploymentManagement deploymentManagement,
|
final TargetManagement targetManagement, final DeploymentManagement deploymentManagement,
|
||||||
final PlatformTransactionManager transactionManager) {
|
final PlatformTransactionManager transactionManager) {
|
||||||
return new AutoAssignChecker(targetFilterQueryManagement, targetManagement, deploymentManagement,
|
return new AutoAssignChecker(targetFilterQueryManagement, targetManagement, deploymentManagement,
|
||||||
transactionManager);
|
transactionManager);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user