Implement TargetFilterQueryManagement with AbstractJpaRepositoryManagement (#2587)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-08-05 09:53:24 +03:00
committed by GitHub
parent 1824839a6f
commit 7b24981a1d
36 changed files with 736 additions and 1482 deletions

View File

@@ -66,6 +66,7 @@ import org.eclipse.hawkbit.repository.model.RepositoryModelConstants;
import org.eclipse.hawkbit.repository.model.SoftwareModule;
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
import org.eclipse.hawkbit.repository.model.Target;
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
import org.eclipse.hawkbit.repository.model.TargetTag;
import org.eclipse.hawkbit.repository.model.TargetType;
import org.eclipse.hawkbit.repository.test.TestConfiguration;
@@ -144,7 +145,7 @@ public abstract class AbstractIntegrationTest {
@Autowired
protected TargetTypeManagement<? extends TargetType> targetTypeManagement;
@Autowired
protected TargetFilterQueryManagement targetFilterQueryManagement;
protected TargetFilterQueryManagement<? extends TargetFilterQuery> targetFilterQueryManagement;
@Autowired
protected TargetTagManagement<? extends TargetTag> targetTagManagement;
@Autowired
@@ -316,34 +317,33 @@ public abstract class AbstractIntegrationTest {
return assignDistributionSet(dsID, controllerId, ActionType.FORCED);
}
protected DistributionSetAssignmentResult assignDistributionSet(final long dsID, final String controllerId,
final ActionType actionType) {
protected DistributionSetAssignmentResult assignDistributionSet(
final long dsID, final String controllerId, final ActionType actionType) {
return assignDistributionSet(dsID, Collections.singletonList(controllerId), actionType);
}
protected DistributionSetAssignmentResult assignDistributionSet(final long dsID, final String controllerId,
final ActionType actionType, final long forcedTime) {
return assignDistributionSet(dsID, Collections.singletonList(controllerId), actionType, forcedTime);
protected DistributionSetAssignmentResult assignDistributionSet(
final long dsId, final String controllerId, final ActionType actionType, final long forcedTime) {
return assignDistributionSet(dsId, Collections.singletonList(controllerId), actionType, forcedTime);
}
protected DistributionSetAssignmentResult assignDistributionSet(final long dsID, final List<String> controllerIds,
final ActionType actionType) {
return assignDistributionSet(dsID, controllerIds, actionType, RepositoryModelConstants.NO_FORCE_TIME);
protected DistributionSetAssignmentResult assignDistributionSet(
final long dsId, final List<String> controllerIds, final ActionType actionType) {
return assignDistributionSet(dsId, controllerIds, actionType, RepositoryModelConstants.NO_FORCE_TIME);
}
protected DistributionSetAssignmentResult assignDistributionSet(final long dsID, final List<String> controllerIds,
final ActionType actionType, final long forcedTime) {
protected DistributionSetAssignmentResult assignDistributionSet(
final long dsID, final List<String> controllerIds, final ActionType actionType, final long forcedTime) {
return assignDistributionSet(dsID, controllerIds, actionType, forcedTime, null);
}
protected DistributionSetAssignmentResult assignDistributionSet(
final long dsID, final List<String> controllerIds,
final ActionType actionType, final long forcedTime, final Integer weight) {
final long dsId, final List<String> controllerIds, final ActionType actionType, final long forcedTime, final Integer weight) {
final boolean confirmationFlowActive = isConfirmationFlowActive();
final List<DeploymentRequest> deploymentRequests = controllerIds.stream()
.map(id -> DeploymentManagement.deploymentRequest(id, dsID).setActionType(actionType)
.setForceTime(forcedTime).setWeight(weight).setConfirmationRequired(confirmationFlowActive)
.map(id -> DeploymentManagement.deploymentRequest(id, dsId)
.setActionType(actionType).setForceTime(forcedTime).setWeight(weight).setConfirmationRequired(confirmationFlowActive)
.build())
.toList();
final List<DistributionSetAssignmentResult> results = deploymentManagement.assignDistributionSets(deploymentRequests);
@@ -358,19 +358,15 @@ public abstract class AbstractIntegrationTest {
}
protected DistributionSetAssignmentResult assignDistributionSet(final DistributionSet ds, final List<Target> targets) {
final List<String> targetIds = targets.stream().map(Target::getControllerId).toList();
return assignDistributionSet(ds.getId(), targetIds, ActionType.FORCED);
return assignDistributionSet(ds.getId(), targets.stream().map(Target::getControllerId).toList(), ActionType.FORCED);
}
protected DistributionSetAssignmentResult assignDistributionSet(final Long dsId, final List<String> targetIds,
final int weight) {
return assignDistributionSet(dsId, targetIds, ActionType.FORCED, RepositoryModelConstants.NO_FORCE_TIME,
weight);
protected DistributionSetAssignmentResult assignDistributionSet(final Long dsId, final List<String> targetIds, final int weight) {
return assignDistributionSet(dsId, targetIds, ActionType.FORCED, RepositoryModelConstants.NO_FORCE_TIME, weight);
}
protected DistributionSetAssignmentResult makeAssignment(final DeploymentRequest request) {
final List<DistributionSetAssignmentResult> results = deploymentManagement
.assignDistributionSets(Collections.singletonList(request));
final List<DistributionSetAssignmentResult> results = deploymentManagement.assignDistributionSets(Collections.singletonList(request));
assertThat(results).hasSize(1);
return results.get(0);
}

View File

@@ -45,6 +45,7 @@ import org.eclipse.hawkbit.repository.RolloutManagement;
import org.eclipse.hawkbit.repository.SoftwareModuleManagement;
import org.eclipse.hawkbit.repository.SoftwareModuleTypeManagement;
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement.AutoAssignDistributionSetUpdate;
import org.eclipse.hawkbit.repository.TargetManagement;
import org.eclipse.hawkbit.repository.TargetTagManagement;
import org.eclipse.hawkbit.repository.TargetTypeManagement;
@@ -154,7 +155,7 @@ public class TestdataFactory {
private final DistributionSetTypeManagement<?> distributionSetTypeManagement;
private final DistributionSetInvalidationManagement distributionSetInvalidationManagement;
private final TargetManagement targetManagement;
private final TargetFilterQueryManagement targetFilterQueryManagement;
private final TargetFilterQueryManagement<? extends TargetFilterQuery> targetFilterQueryManagement;
private final TargetTypeManagement<? extends TargetType> targetTypeManagement;
private final TargetTagManagement<? extends TargetTag> targetTagManagement;
private final DeploymentManagement deploymentManagement;
@@ -966,9 +967,9 @@ public class TestdataFactory {
public TargetFilterQuery createTargetFilterWithTargetsAndActiveAutoAssignment() {
createTargets(quotaManagement.getMaxTargetsPerAutoAssignment());
final TargetFilterQuery targetFilterQuery = targetFilterQueryManagement
.create(entityFactory.targetFilterQuery().create().name("testName").query("id==*"));
return targetFilterQueryManagement.updateAutoAssignDS(entityFactory.targetFilterQuery()
.updateAutoAssign(targetFilterQuery.getId()).ds(createDistributionSet().getId()));
.create(TargetFilterQueryManagement.Create.builder().name("testName").query("id==*").build());
return targetFilterQueryManagement.updateAutoAssignDS(
new AutoAssignDistributionSetUpdate(targetFilterQuery.getId()).ds(createDistributionSet().getId()));
}
/**
@@ -1230,7 +1231,7 @@ public class TestdataFactory {
final DistributionSet distributionSet = createDistributionSet();
distributionSetInvalidationManagement.invalidateDistributionSet(
new DistributionSetInvalidation(List.of(distributionSet.getId()), CancelationType.NONE, false));
return distributionSet;
return distributionSetManagement.get(distributionSet.getId()).orElseThrow();
}
/**