[#1580] Software Module & Distribution Set lock: add lock at mgmt level (2) (#1645)

* Added to management intefaces (+ tests)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-02-15 10:35:25 +02:00
committed by GitHub
parent 23ad6a140f
commit e535420065
6 changed files with 88 additions and 4 deletions

View File

@@ -686,6 +686,18 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
return result;
}
@Override
@Transactional
@Retryable(include = {
ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY))
public void lock(final long id) {
final JpaDistributionSet distributionSet = getById(id);
if (!distributionSet.isLocked()) {
distributionSet.lock();
distributionSetRepository.save(distributionSet);
}
}
@Override
@Transactional
@Retryable(include = {

View File

@@ -616,6 +616,20 @@ public class JpaSoftwareModuleManagement implements SoftwareModuleManagement {
.map(SoftwareModuleMetadata.class::cast);
}
@Override
@Transactional
@Retryable(include = {
ConcurrencyFailureException.class }, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY))
public void lock(final long id) {
final JpaSoftwareModule softwareModule = softwareModuleRepository
.findById(id)
.orElseThrow(() -> new EntityNotFoundException(SoftwareModule.class, id));
if (!softwareModule.isLocked()) {
softwareModule.lock();
softwareModuleRepository.save(softwareModule);
}
}
@Override
@Transactional
@Retryable(include = {