Prioritisation of assignments via mgmt-API (#895)
* Updating the schema for targetfilterquery and rollout * Updating the weight validation logic and tests * Make weight optional * Fix existing multi assignment tests by adding weight, remove weight from TargetFilterQuery * Add weight validation tests, fix tests * Add mgmt api tests for assignment and getting action with weight * Add management layer validation and tests for creating rollouts with weight * Fix amqp test, add repo level validation to resource tests * Add weight to rollout mgmt-api and tests * Add weight to mgmt api target Filter create and update * Add target filter auto assign weight. disable enforcement of setting a weight in multiassign mode * Remove ignored tests, fix api doc * Fix minor findings * Fix findings * Remove hardcoded min weight * Add docu text, fix findings * Fix api documentation * Expose weight via DMF * Expose actions according to weight via ddi * Fix documentation * Add method to get actions ordered by weight to deploymentManagement * Updating the schema for targetfilterquery and rollout * Updated the indentation * Updated the helper class, fixed the randomUID in test factory * Updated the class name with prefix JPA * Adding the missing License for WeightValidationHelper class * Adding documentation to the dmf api on weight * Removed the merger markers * Updated the class name * Removed the redundant method * Addressed final PR comments * Updated the missing testcase with latest default weight value * Reverting the default value of weight back to 1000 and updated tests Signed-off-by: Shruthi Manavalli Ramanna <shruthimanavalli.ramanna@bosch-si.com> Signed-off-by: Stefan Klotz <stefan.klotz@bosch-si.com>
This commit is contained in:
committed by
Stefan Behl
parent
09f2d8a481
commit
9cb5d31396
@@ -10,6 +10,7 @@ package org.eclipse.hawkbit.ui.filtermanagement;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.exception.EntityNotFoundException;
|
||||
@@ -54,6 +55,7 @@ public class DistributionSetSelectWindow implements CommonDialogWindow.SaveDialo
|
||||
private final EventBus.UIEventBus eventBus;
|
||||
private final TargetManagement targetManagement;
|
||||
private final TargetFilterQueryManagement targetFilterQueryManagement;
|
||||
private final EntityFactory entityFactory;
|
||||
|
||||
private CheckBox checkBox;
|
||||
private ActionTypeOptionGroupAutoAssignmentLayout actionTypeOptionGroupLayout;
|
||||
@@ -62,12 +64,13 @@ public class DistributionSetSelectWindow implements CommonDialogWindow.SaveDialo
|
||||
|
||||
DistributionSetSelectWindow(final VaadinMessageSource i18n, final UIEventBus eventBus,
|
||||
final UINotification notification, final TargetManagement targetManagement,
|
||||
final TargetFilterQueryManagement targetFilterQueryManagement) {
|
||||
final TargetFilterQueryManagement targetFilterQueryManagement, final EntityFactory entityFactory) {
|
||||
this.i18n = i18n;
|
||||
this.notification = notification;
|
||||
this.eventBus = eventBus;
|
||||
this.targetManagement = targetManagement;
|
||||
this.targetFilterQueryManagement = targetFilterQueryManagement;
|
||||
this.entityFactory = entityFactory;
|
||||
}
|
||||
|
||||
private VerticalLayout initView() {
|
||||
@@ -197,7 +200,8 @@ public class DistributionSetSelectWindow implements CommonDialogWindow.SaveDialo
|
||||
if (dsId != null) {
|
||||
confirmWithConsequencesDialog(tfq, dsId, actionType);
|
||||
} else {
|
||||
targetFilterQueryManagement.updateAutoAssignDS(targetFilterQueryId, null);
|
||||
targetFilterQueryManagement.updateAutoAssignDS(
|
||||
entityFactory.targetFilterQuery().updateAutoAssign(targetFilterQueryId).ds(null));
|
||||
eventBus.publish(this, CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY);
|
||||
}
|
||||
}
|
||||
@@ -206,7 +210,8 @@ public class DistributionSetSelectWindow implements CommonDialogWindow.SaveDialo
|
||||
final ActionType actionType) {
|
||||
final ConfirmConsequencesDialog dialog = new ConfirmConsequencesDialog(tfq, dsId, accepted -> {
|
||||
if (accepted) {
|
||||
targetFilterQueryManagement.updateAutoAssignDSWithActionType(tfq.getId(), dsId, actionType);
|
||||
targetFilterQueryManagement.updateAutoAssignDS(entityFactory.targetFilterQuery()
|
||||
.updateAutoAssign(tfq.getId()).ds(dsId).actionType(actionType));
|
||||
eventBus.publish(this, CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -70,7 +70,7 @@ public class FilterManagementView extends VerticalLayout implements View {
|
||||
final AutoCompleteTextFieldComponent queryTextField, final TargetManagement targetManagement) {
|
||||
this.targetFilterHeader = new TargetFilterHeader(eventBus, filterManagementUIState, permissionChecker, i18n);
|
||||
this.targetFilterTable = new TargetFilterTable(i18n, notification, eventBus, filterManagementUIState,
|
||||
targetFilterQueryManagement, targetManagement, permissionChecker);
|
||||
targetFilterQueryManagement, targetManagement, permissionChecker, entityFactory);
|
||||
this.createNewFilterHeader = new CreateOrUpdateFilterHeader(i18n, eventBus, filterManagementUIState,
|
||||
targetFilterQueryManagement, permissionChecker, notification, uiProperties, entityFactory,
|
||||
queryTextField);
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.hawkbit.im.authentication.SpPermission;
|
||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.model.Action.ActionType;
|
||||
@@ -80,7 +81,7 @@ public class TargetFilterTable extends Table {
|
||||
public TargetFilterTable(final VaadinMessageSource i18n, final UINotification notification,
|
||||
final UIEventBus eventBus, final FilterManagementUIState filterManagementUIState,
|
||||
final TargetFilterQueryManagement targetFilterQueryManagement, final TargetManagement targetManagement,
|
||||
final SpPermissionChecker permChecker) {
|
||||
final SpPermissionChecker permChecker, final EntityFactory entityFactory) {
|
||||
this.i18n = i18n;
|
||||
this.notification = notification;
|
||||
this.eventBus = eventBus;
|
||||
@@ -89,7 +90,7 @@ public class TargetFilterTable extends Table {
|
||||
this.permChecker = permChecker;
|
||||
|
||||
this.dsSelectWindow = new DistributionSetSelectWindow(i18n, eventBus, notification, targetManagement,
|
||||
targetFilterQueryManagement);
|
||||
targetFilterQueryManagement, entityFactory);
|
||||
|
||||
setStyleName("sp-table");
|
||||
setSizeFull();
|
||||
|
||||
@@ -105,7 +105,7 @@ public final class TargetAssignmentOperations {
|
||||
final String maintenanceTimeZone = maintenanceWindowLayout.getMaintenanceTimeZone();
|
||||
|
||||
final Set<Long> dsIds = distributionSets.stream().map(DistributionSet::getId).collect(Collectors.toSet());
|
||||
final List<DeploymentRequest> deploymentRequests = new ArrayList<>();
|
||||
final List<DeploymentRequest> deploymentRequests = new ArrayList<>();
|
||||
dsIds.forEach(dsId -> targets.forEach(t -> {
|
||||
final DeploymentRequestBuilder request = DeploymentManagement.deploymentRequest(t.getControllerId(), dsId)
|
||||
.setActionType(actionType).setForceTime(forcedTimeStamp);
|
||||
|
||||
Reference in New Issue
Block a user