TargetManagement over RepositoryManagement (#2599)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -85,7 +85,7 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi {
|
||||
private final DistributionSetManagement<? extends DistributionSet> distributionSetManagement;
|
||||
private final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement;
|
||||
private final DistributionSetInvalidationManagement distributionSetInvalidationManagement;
|
||||
private final TargetManagement targetManagement;
|
||||
private final TargetManagement<? extends Target> targetManagement;
|
||||
private final TargetFilterQueryManagement<? extends TargetFilterQuery> targetFilterQueryManagement;
|
||||
private final DeploymentManagement deployManagement;
|
||||
private final SystemManagement systemManagement;
|
||||
@@ -99,7 +99,8 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi {
|
||||
final DistributionSetManagement<? extends DistributionSet> distributionSetManagement,
|
||||
final DistributionSetTypeManagement<? extends DistributionSetType> distributionSetTypeManagement,
|
||||
final DistributionSetInvalidationManagement distributionSetInvalidationManagement,
|
||||
final TargetManagement targetManagement, final TargetFilterQueryManagement<? extends TargetFilterQuery> targetFilterQueryManagement,
|
||||
final TargetManagement<? extends Target> targetManagement,
|
||||
final TargetFilterQueryManagement<? extends TargetFilterQuery> targetFilterQueryManagement,
|
||||
final DeploymentManagement deployManagement, final TenantConfigurationManagement tenantConfigurationManagement,
|
||||
final MgmtDistributionSetMapper mgmtDistributionSetMapper,
|
||||
final SystemManagement systemManagement, final SystemSecurityContext systemSecurityContext) {
|
||||
@@ -120,18 +121,15 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi {
|
||||
public ResponseEntity<PagedList<MgmtDistributionSet>> getDistributionSets(
|
||||
final String rsqlParam, final int pagingOffsetParam, final int pagingLimitParam, final String sortParam) {
|
||||
final Pageable pageable = PagingUtility.toPageable(pagingOffsetParam, pagingLimitParam, sanitizeDistributionSetSortParam(sortParam));
|
||||
final Slice<? extends DistributionSet> findDsPage;
|
||||
final long countModulesAll;
|
||||
final Page<? extends DistributionSet> findDsPage;
|
||||
if (rsqlParam != null) {
|
||||
findDsPage = distributionSetManagement.findByRsql(rsqlParam, pageable);
|
||||
countModulesAll = ((Page<? extends DistributionSet>) findDsPage).getTotalElements();
|
||||
} else {
|
||||
findDsPage = distributionSetManagement.findAll(pageable);
|
||||
countModulesAll = distributionSetManagement.count();
|
||||
}
|
||||
|
||||
final List<MgmtDistributionSet> rest = MgmtDistributionSetMapper.toResponseFromDsList(findDsPage.getContent());
|
||||
return ResponseEntity.ok(new PagedList<>(rest, countModulesAll));
|
||||
return ResponseEntity.ok(new PagedList<>(rest, findDsPage.getTotalElements()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -201,9 +199,9 @@ public class MgmtDistributionSetResource implements MgmtDistributionSetRestApi {
|
||||
final Pageable pageable = PagingUtility.toPageable(pagingOffsetParam, pagingLimitParam, sanitizeDistributionSetSortParam(sortParam));
|
||||
final Page<Target> targetsAssignedDS;
|
||||
if (rsqlParam != null) {
|
||||
targetsAssignedDS = this.targetManagement.findByAssignedDistributionSetAndRsql(distributionSetId, rsqlParam, pageable);
|
||||
targetsAssignedDS = targetManagement.findByAssignedDistributionSetAndRsql(distributionSetId, rsqlParam, pageable);
|
||||
} else {
|
||||
targetsAssignedDS = this.targetManagement.findByAssignedDistributionSet(distributionSetId, pageable);
|
||||
targetsAssignedDS = targetManagement.findByAssignedDistributionSet(distributionSetId, pageable);
|
||||
}
|
||||
|
||||
return ResponseEntity.ok(new PagedList<>(
|
||||
|
||||
@@ -54,8 +54,8 @@ import org.eclipse.hawkbit.mgmt.rest.resource.mapper.MgmtTargetMapper;
|
||||
import org.eclipse.hawkbit.mgmt.rest.resource.util.PagingUtility;
|
||||
import org.eclipse.hawkbit.repository.ConfirmationManagement;
|
||||
import org.eclipse.hawkbit.repository.DeploymentManagement;
|
||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.repository.exception.EntityNotFoundException;
|
||||
import org.eclipse.hawkbit.repository.exception.InvalidConfirmationFeedbackException;
|
||||
@@ -65,6 +65,7 @@ import org.eclipse.hawkbit.repository.model.DeploymentRequest;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSetAssignmentResult;
|
||||
import org.eclipse.hawkbit.repository.model.Target;
|
||||
import org.eclipse.hawkbit.repository.model.TargetTag;
|
||||
import org.eclipse.hawkbit.repository.model.TargetType;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.utils.TenantConfigHelper;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -83,25 +84,25 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
|
||||
|
||||
private static final String ACTION_TARGET_MISSING_ASSIGN_WARN = "given action ({}) is not assigned to given target ({}).";
|
||||
|
||||
private final TargetManagement targetManagement;
|
||||
private final TargetManagement<? extends Target> targetManagement;
|
||||
private final TargetTypeManagement<? extends TargetType> targetTypeManagement;
|
||||
private final ConfirmationManagement confirmationManagement;
|
||||
private final DeploymentManagement deploymentManagement;
|
||||
private final MgmtTargetMapper mgmtTargetMapper;
|
||||
private final MgmtDistributionSetMapper mgmtDistributionSetMapper;
|
||||
private final EntityFactory entityFactory;
|
||||
private final TenantConfigHelper tenantConfigHelper;
|
||||
|
||||
MgmtTargetResource(
|
||||
final TargetManagement targetManagement, final DeploymentManagement deploymentManagement,
|
||||
final ConfirmationManagement confirmationManagement,
|
||||
final MgmtDistributionSetMapper mgmtDistributionSetMapper,
|
||||
final EntityFactory entityFactory,
|
||||
final SystemSecurityContext systemSecurityContext,
|
||||
final TenantConfigurationManagement tenantConfigurationManagement) {
|
||||
final TargetManagement<? extends Target> targetManagement, final TargetTypeManagement<? extends TargetType> targetTypeManagement,
|
||||
final DeploymentManagement deploymentManagement, final ConfirmationManagement confirmationManagement,
|
||||
final MgmtTargetMapper mgmtTargetMapper, final MgmtDistributionSetMapper mgmtDistributionSetMapper,
|
||||
final SystemSecurityContext systemSecurityContext, final TenantConfigurationManagement tenantConfigurationManagement) {
|
||||
this.targetManagement = targetManagement;
|
||||
this.targetTypeManagement = targetTypeManagement;
|
||||
this.deploymentManagement = deploymentManagement;
|
||||
this.confirmationManagement = confirmationManagement;
|
||||
this.mgmtTargetMapper = mgmtTargetMapper;
|
||||
this.mgmtDistributionSetMapper = mgmtDistributionSetMapper;
|
||||
this.entityFactory = entityFactory;
|
||||
this.tenantConfigHelper = TenantConfigHelper.usingContext(systemSecurityContext, tenantConfigurationManagement);
|
||||
}
|
||||
|
||||
@@ -119,24 +120,21 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
|
||||
public ResponseEntity<PagedList<MgmtTarget>> getTargets(
|
||||
final String rsqlParam, final int pagingOffsetParam, final int pagingLimitParam, final String sortParam) {
|
||||
final Pageable pageable = PagingUtility.toPageable(pagingOffsetParam, pagingLimitParam, sanitizeTargetSortParam(sortParam));
|
||||
final Slice<Target> findTargetsAll;
|
||||
final long countTargetsAll;
|
||||
final Page<? extends Target> findTargetsAll;
|
||||
if (rsqlParam != null) {
|
||||
findTargetsAll = targetManagement.findByRsql(rsqlParam, pageable);
|
||||
countTargetsAll = targetManagement.countByRsql(rsqlParam);
|
||||
} else {
|
||||
findTargetsAll = targetManagement.findAll(pageable);
|
||||
countTargetsAll = targetManagement.count();
|
||||
}
|
||||
|
||||
final List<MgmtTarget> rest = MgmtTargetMapper.toResponse(findTargetsAll.getContent(), tenantConfigHelper);
|
||||
return ResponseEntity.ok(new PagedList<>(rest, countTargetsAll));
|
||||
return ResponseEntity.ok(new PagedList<>(rest, findTargetsAll.getTotalElements()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<List<MgmtTarget>> createTargets(final List<MgmtTargetRequestBody> targets) {
|
||||
log.debug("creating {} targets", targets.size());
|
||||
final Collection<Target> createdTargets = this.targetManagement.create(MgmtTargetMapper.fromRequest(entityFactory, targets));
|
||||
final Collection<? extends Target> createdTargets = this.targetManagement.create(mgmtTargetMapper.fromRequest(targets));
|
||||
log.debug("{} targets created, return status {}", targets.size(), HttpStatus.CREATED);
|
||||
return new ResponseEntity<>(MgmtTargetMapper.toResponse(createdTargets, tenantConfigHelper), HttpStatus.CREATED);
|
||||
}
|
||||
@@ -152,22 +150,26 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
|
||||
}
|
||||
}
|
||||
|
||||
final Target updateTarget;
|
||||
if (targetRest.getTargetType() != null && targetRest.getTargetType() == -1L) {
|
||||
// if targetType in request is -1 - unassign targetType from target
|
||||
this.targetManagement.unassignType(targetId);
|
||||
// update target without targetType here ...
|
||||
updateTarget = this.targetManagement.update(entityFactory.target().update(targetId)
|
||||
.name(targetRest.getName()).description(targetRest.getDescription()).address(targetRest.getAddress())
|
||||
.securityToken(targetRest.getSecurityToken()).requestAttributes(targetRest.getRequestAttributes()));
|
||||
} else {
|
||||
updateTarget = this.targetManagement.update(
|
||||
entityFactory.target().update(targetId).name(targetRest.getName()).description(targetRest.getDescription())
|
||||
.address(targetRest.getAddress()).targetType(targetRest.getTargetType())
|
||||
.securityToken(targetRest.getSecurityToken())
|
||||
.requestAttributes(targetRest.getRequestAttributes()));
|
||||
|
||||
}
|
||||
final Target targetToUpdate = targetManagement.getByControllerId(targetId)
|
||||
.orElseThrow(() -> new EntityNotFoundException(Target.class, targetId));
|
||||
final TargetType targetType = Optional.ofNullable(targetRest.getTargetType())
|
||||
.map(targetTypeId -> {
|
||||
if (targetTypeId == -1L) {
|
||||
// if targetType in request is -1 - unassign targetType from target
|
||||
targetManagement.unassignType(targetId);
|
||||
return null;
|
||||
} else {
|
||||
return targetTypeManagement.get(targetRest.getTargetType())
|
||||
.orElseThrow(() -> new EntityNotFoundException(TargetType.class, targetRest.getTargetType()));
|
||||
}
|
||||
})
|
||||
.orElse(null);
|
||||
final Target updateTarget = targetManagement.update(TargetManagement.Update.builder().id(targetToUpdate.getId())
|
||||
.targetType(targetType)
|
||||
.name(targetRest.getName()).description(targetRest.getDescription()).address(targetRest.getAddress())
|
||||
.securityToken(targetRest.getSecurityToken())
|
||||
.requestControllerAttributes(targetRest.getRequestAttributes())
|
||||
.build());
|
||||
|
||||
final MgmtTarget response = MgmtTargetMapper.toResponse(updateTarget, tenantConfigHelper, null);
|
||||
MgmtTargetMapper.addTargetLinks(response);
|
||||
@@ -294,7 +296,7 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
|
||||
log.debug("updateActionConfirmation with data [targetId={}, actionId={}]: {}", targetId, actionId, actionConfirmation);
|
||||
|
||||
return getValidatedAction(targetId, actionId)
|
||||
.<ResponseEntity<Void>>map(action -> {
|
||||
.<ResponseEntity<Void>> map(action -> {
|
||||
try {
|
||||
switch (actionConfirmation.getConfirmation()) {
|
||||
case CONFIRMED:
|
||||
@@ -471,7 +473,7 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
|
||||
}
|
||||
|
||||
private Target findTargetWithExceptionIfNotFound(final String targetId) {
|
||||
return targetManagement.getByControllerID(targetId)
|
||||
return targetManagement.getByControllerId(targetId)
|
||||
.orElseThrow(() -> new EntityNotFoundException(Target.class, targetId));
|
||||
}
|
||||
|
||||
|
||||
@@ -51,11 +51,11 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
public class MgmtTargetTagResource implements MgmtTargetTagRestApi {
|
||||
|
||||
private final TargetTagManagement<? extends TargetTag> tagManagement;
|
||||
private final TargetManagement targetManagement;
|
||||
private final TargetManagement<? extends Target> targetManagement;
|
||||
private final TenantConfigHelper tenantConfigHelper;
|
||||
|
||||
MgmtTargetTagResource(
|
||||
final TargetTagManagement<? extends TargetTag> tagManagement, final TargetManagement targetManagement,
|
||||
final TargetTagManagement<? extends TargetTag> tagManagement, final TargetManagement<? extends Target> targetManagement,
|
||||
final SystemSecurityContext securityContext, final TenantConfigurationManagement configurationManagement) {
|
||||
this.tagManagement = tagManagement;
|
||||
this.targetManagement = targetManagement;
|
||||
@@ -172,7 +172,7 @@ public class MgmtTargetTagResource implements MgmtTargetTagRestApi {
|
||||
@AuditLog(entity = "TargetTag", type = AuditLog.Type.UPDATE, description = "Unassign Target From Target Tag")
|
||||
public ResponseEntity<Void> unassignTarget(final Long targetTagId, final String controllerId) {
|
||||
log.debug("Unassign target {} for target tag {}", controllerId, targetTagId);
|
||||
this.targetManagement.unassignTag(List.of(controllerId), targetTagId);
|
||||
targetManagement.unassignTag(List.of(controllerId), targetTagId);
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
@@ -182,10 +182,10 @@ public class MgmtTargetTagResource implements MgmtTargetTagRestApi {
|
||||
final Long targetTagId, final OnNotFoundPolicy onNotFoundPolicy, final List<String> controllerIds) {
|
||||
log.debug("Unassign {} targets for target tag {}", controllerIds.size(), targetTagId);
|
||||
if (onNotFoundPolicy == OnNotFoundPolicy.FAIL) {
|
||||
this.targetManagement.unassignTag(controllerIds, targetTagId);
|
||||
targetManagement.unassignTag(controllerIds, targetTagId);
|
||||
} else {
|
||||
final AtomicReference<Collection<String>> notFound = new AtomicReference<>();
|
||||
this.targetManagement.unassignTag(controllerIds, targetTagId, notFound::set);
|
||||
targetManagement.unassignTag(controllerIds, targetTagId, notFound::set);
|
||||
if (notFound.get() != null && onNotFoundPolicy == OnNotFoundPolicy.ON_WHAT_FOUND_AND_FAIL) {
|
||||
// has not found and ON_WHAT_FOUND_AND_FAIL
|
||||
throw new EntityNotFoundException(Target.class, notFound.get());
|
||||
|
||||
@@ -13,17 +13,18 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
|
||||
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.hawkbit.mgmt.json.model.MgmtMaintenanceWindow;
|
||||
import org.eclipse.hawkbit.mgmt.json.model.MgmtMetadata;
|
||||
import org.eclipse.hawkbit.mgmt.json.model.MgmtPollStatus;
|
||||
@@ -41,8 +42,9 @@ import org.eclipse.hawkbit.mgmt.rest.api.SortDirection;
|
||||
import org.eclipse.hawkbit.repository.ActionFields;
|
||||
import org.eclipse.hawkbit.repository.ActionStatusFields;
|
||||
import org.eclipse.hawkbit.repository.DeploymentManagement;
|
||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||
import org.eclipse.hawkbit.repository.builder.TargetCreate;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement;
|
||||
import org.eclipse.hawkbit.repository.exception.EntityNotFoundException;
|
||||
import org.eclipse.hawkbit.repository.model.Action;
|
||||
import org.eclipse.hawkbit.repository.model.Action.ActionType;
|
||||
import org.eclipse.hawkbit.repository.model.ActionStatus;
|
||||
@@ -51,18 +53,27 @@ import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.PollStatus;
|
||||
import org.eclipse.hawkbit.repository.model.Rollout;
|
||||
import org.eclipse.hawkbit.repository.model.Target;
|
||||
import org.eclipse.hawkbit.repository.model.TargetType;
|
||||
import org.eclipse.hawkbit.rest.json.model.ResponseList;
|
||||
import org.eclipse.hawkbit.util.IpUtil;
|
||||
import org.eclipse.hawkbit.utils.TenantConfigHelper;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
/**
|
||||
* A mapper which maps repository model to RESTful model representation and back.
|
||||
*/
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
@Slf4j
|
||||
@Service
|
||||
public final class MgmtTargetMapper {
|
||||
|
||||
private final TargetTypeManagement<? extends TargetType> targetTypeManagement;
|
||||
|
||||
MgmtTargetMapper(final TargetTypeManagement<? extends TargetType> targetTypeManagement) {
|
||||
this.targetTypeManagement = targetTypeManagement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add links to a target response.
|
||||
*
|
||||
@@ -114,7 +125,7 @@ public final class MgmtTargetMapper {
|
||||
* @param targets list of targets
|
||||
* @return the response
|
||||
*/
|
||||
public static List<MgmtTarget> toResponse(final Collection<Target> targets, final TenantConfigHelper configHelper) {
|
||||
public static List<MgmtTarget> toResponse(final Collection<? extends Target> targets, final TenantConfigHelper configHelper) {
|
||||
if (targets == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
@@ -142,12 +153,17 @@ public final class MgmtTargetMapper {
|
||||
targetRest.setUpdateStatus(target.getUpdateStatus().name().toLowerCase());
|
||||
targetRest.setGroup(target.getGroup());
|
||||
|
||||
final URI address = target.getAddress();
|
||||
final String address = target.getAddress();
|
||||
if (address != null) {
|
||||
if (IpUtil.isIpAddresKnown(address)) {
|
||||
targetRest.setIpAddress(address.getHost());
|
||||
try {
|
||||
final URI addressURI = new URI(address);
|
||||
if (IpUtil.isIpAddresKnown(addressURI)) {
|
||||
targetRest.setIpAddress(addressURI.getHost());
|
||||
}
|
||||
} catch (final URISyntaxException e) {
|
||||
log.warn("Fail to parse address to URI: {}", e.getMessage());
|
||||
}
|
||||
targetRest.setAddress(address.toString());
|
||||
targetRest.setAddress(address);
|
||||
}
|
||||
|
||||
targetRest.setCreatedBy(target.getCreatedBy());
|
||||
@@ -184,12 +200,12 @@ public final class MgmtTargetMapper {
|
||||
return targetRest;
|
||||
}
|
||||
|
||||
public static List<TargetCreate> fromRequest(final EntityFactory entityFactory, final Collection<MgmtTargetRequestBody> targetsRest) {
|
||||
public List<Create> fromRequest(final Collection<MgmtTargetRequestBody> targetsRest) {
|
||||
if (targetsRest == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return targetsRest.stream().map(targetRest -> fromRequest(entityFactory, targetRest)).toList();
|
||||
return targetsRest.stream().map(this::fromRequest).toList();
|
||||
}
|
||||
|
||||
public static Map<String, String> fromRequestMetadata(final List<MgmtMetadata> metadata) {
|
||||
@@ -207,7 +223,7 @@ public final class MgmtTargetMapper {
|
||||
return actionStatus.stream()
|
||||
.map(status -> toResponse(status,
|
||||
deploymentManagement.findMessagesByActionStatusId(
|
||||
status.getId(), PageRequest.of(0, MgmtRestConstants.REQUEST_PARAMETER_PAGING_MAX_LIMIT))
|
||||
status.getId(), PageRequest.of(0, MgmtRestConstants.REQUEST_PARAMETER_PAGING_MAX_LIMIT))
|
||||
.getContent()))
|
||||
.toList();
|
||||
}
|
||||
@@ -323,10 +339,18 @@ public final class MgmtTargetMapper {
|
||||
}
|
||||
}
|
||||
|
||||
private static TargetCreate fromRequest(final EntityFactory entityFactory, final MgmtTargetRequestBody targetRest) {
|
||||
return entityFactory.target().create().controllerId(targetRest.getControllerId()).name(targetRest.getName())
|
||||
private Create fromRequest(final MgmtTargetRequestBody targetRest) {
|
||||
return Create.builder()
|
||||
.controllerId(targetRest.getControllerId()).name(targetRest.getName())
|
||||
.description(targetRest.getDescription()).securityToken(targetRest.getSecurityToken())
|
||||
.address(targetRest.getAddress()).targetType(targetRest.getTargetType()).group(targetRest.getGroup());
|
||||
.address(targetRest.getAddress())
|
||||
.targetType(Optional.ofNullable(targetRest.getTargetType())
|
||||
.map(targetTypeId -> targetTypeManagement.get(targetTypeId)
|
||||
.orElseThrow(() -> new EntityNotFoundException(TargetType.class, targetTypeId)))
|
||||
.map(TargetType.class::cast)
|
||||
.orElse(null))
|
||||
.group(targetRest.getGroup())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static String getType(final Action action) {
|
||||
|
||||
@@ -17,6 +17,8 @@ import java.util.Map;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.model.RolloutGroup;
|
||||
import org.eclipse.hawkbit.repository.model.RolloutGroupConditionBuilder;
|
||||
import org.eclipse.hawkbit.repository.model.RolloutGroupConditions;
|
||||
@@ -33,22 +35,22 @@ import org.springframework.util.CollectionUtils;
|
||||
@Slf4j
|
||||
class JsonBuilder {
|
||||
|
||||
static String targets(final List<Target> targets, final boolean withToken) throws JSONException {
|
||||
static String targets(final List<Create> creates, final boolean withToken) throws JSONException {
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append("[");
|
||||
int i = 0;
|
||||
for (final Target target : targets) {
|
||||
final String address = target.getAddress() != null ? target.getAddress().toString() : null;
|
||||
final String targetType = target.getTargetType() != null ? target.getTargetType().getId().toString() : null;
|
||||
final String token = withToken ? target.getSecurityToken() : null;
|
||||
for (final Create create : creates) {
|
||||
final String address = create.getAddress() != null ? create.getAddress() : null;
|
||||
final String targetType = create.getTargetType() != null ? create.getTargetType().getId().toString() : null;
|
||||
final String token = withToken ? create.getSecurityToken() : null;
|
||||
|
||||
builder.append(new JSONObject().put("controllerId", target.getControllerId())
|
||||
.put("description", target.getDescription()).put("name", target.getName()).put("createdAt", "0")
|
||||
builder.append(new JSONObject().put("controllerId", create.getControllerId())
|
||||
.put("description", create.getDescription()).put("name", create.getName()).put("createdAt", "0")
|
||||
.put("updatedAt", "0").put("createdBy", "systemtest").put("updatedBy", "systemtest")
|
||||
.put("address", address).put("securityToken", token).put("targetType", targetType).toString());
|
||||
|
||||
if (++i < targets.size()) {
|
||||
if (++i < creates.size()) {
|
||||
builder.append(",");
|
||||
}
|
||||
}
|
||||
@@ -58,21 +60,21 @@ class JsonBuilder {
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
static String targets(final List<Target> targets, final boolean withToken, final long targetTypeId) throws JSONException {
|
||||
static String targets(final List<Create> creates, final boolean withToken, final long targetTypeId) throws JSONException {
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append("[");
|
||||
int i = 0;
|
||||
for (final Target target : targets) {
|
||||
final String address = target.getAddress() != null ? target.getAddress().toString() : null;
|
||||
final String token = withToken ? target.getSecurityToken() : null;
|
||||
for (final Create create : creates) {
|
||||
final String address = create.getAddress() != null ? create.getAddress() : null;
|
||||
final String token = withToken ? create.getSecurityToken() : null;
|
||||
|
||||
builder.append(new JSONObject().put("controllerId", target.getControllerId())
|
||||
.put("description", target.getDescription()).put("name", target.getName()).put("createdAt", "0")
|
||||
builder.append(new JSONObject().put("controllerId", create.getControllerId())
|
||||
.put("description", create.getDescription()).put("name", create.getName()).put("createdAt", "0")
|
||||
.put("updatedAt", "0").put("createdBy", "fghdfkjghdfkjh").put("updatedBy", "fghdfkjghdfkjh")
|
||||
.put("address", address).put("securityToken", token).put("targetType", targetTypeId).toString());
|
||||
|
||||
if (++i < targets.size()) {
|
||||
if (++i < creates.size()) {
|
||||
builder.append(",");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants;
|
||||
import org.eclipse.hawkbit.mgmt.rest.resource.util.ResourceUtility;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.exception.AssignmentQuotaExceededException;
|
||||
import org.eclipse.hawkbit.repository.exception.EntityNotFoundException;
|
||||
import org.eclipse.hawkbit.repository.jpa.repository.ActionRepository;
|
||||
@@ -1374,8 +1375,7 @@ class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegrationTe
|
||||
// prepare targets
|
||||
final Collection<String> knownTargetIds = Arrays.asList("1", "2", "3", "4", "5");
|
||||
|
||||
knownTargetIds.forEach(
|
||||
controllerId -> targetManagement.create(entityFactory.target().create().controllerId(controllerId)));
|
||||
knownTargetIds.forEach(controllerId -> targetManagement.create(TargetManagement.Create.builder().controllerId(controllerId).build()));
|
||||
|
||||
// assign already one target to DS
|
||||
assignDistributionSet(createdDs.getId(), knownTargetIds.iterator().next());
|
||||
|
||||
@@ -18,6 +18,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.eclipse.hawkbit.repository.TargetManagement.Create.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
||||
@@ -32,9 +33,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
void shouldRetrieveDistinctTargetGroups() throws Exception {
|
||||
|
||||
final List<String> expectedGroups = List.of("Europe", "Asia");
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("Asia"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("Asia").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("Europe").build());
|
||||
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -45,9 +46,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldRetrieveTargetsFilteredByGroupAndParentGroupCorrectly() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe/West"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("Europe/East"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe/West").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("Europe/East").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("Europe").build());
|
||||
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/assigned")
|
||||
.param("group", "Europe/East")
|
||||
@@ -69,9 +70,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldGetAssignedTargetsToSpecificGroup() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("US"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("US").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("Europe").build());
|
||||
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/Europe/assigned")
|
||||
.param(MgmtRestConstants.REQUEST_PARAMETER_SORTING, "ID:ASC"))
|
||||
@@ -83,9 +84,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldAssignListOfTargetsToASpecificGroup() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("Europe").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/newGroup/assigned")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
@@ -113,9 +114,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldAssignListOfTargetsToProvidedGroupWithSubgroup() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("US"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("US").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/assigned")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
@@ -143,9 +144,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldAssignTargetsToProvidedGroupByRsql() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("A"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("shouldNotAssign").group("B"));
|
||||
targetManagement.create(builder().controllerId("target1").group("A").build());
|
||||
targetManagement.create(builder().controllerId("target2").build());
|
||||
targetManagement.create(builder().controllerId("shouldNotAssign").group("B").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/C")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
@@ -164,8 +165,8 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldUnassignTargetsFromGroup() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("Europe").build());
|
||||
|
||||
mvc.perform(delete(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING + "/assigned")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
@@ -188,9 +189,9 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldUnassignTargetsFromGroupByRsqlFilter() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("nonMatchingTarget").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("nonMatchingTarget").group("Europe").build());
|
||||
|
||||
mvc.perform(delete(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
@@ -208,11 +209,11 @@ public class MgmtTargetGroupResourceTest extends AbstractManagementApiIntegratio
|
||||
|
||||
@Test
|
||||
void shouldUpdateTargetGroupsOfTargetsMatchingTheRsqlFilter() throws Exception {
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target2").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target3").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("shouldNotBeUpdated1").group("Europe"));
|
||||
targetManagement.create(entityFactory.target().create().controllerId("shouldNotBeUpdated2").group("Europe"));
|
||||
targetManagement.create(builder().controllerId("target1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target2").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("target3").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("shouldNotBeUpdated1").group("Europe").build());
|
||||
targetManagement.create(builder().controllerId("shouldNotBeUpdated2").group("Europe").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_GROUP_V1_REQUEST_MAPPING)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
|
||||
@@ -31,7 +31,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
@@ -55,7 +54,8 @@ import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants;
|
||||
import org.eclipse.hawkbit.mgmt.rest.resource.util.ResourceUtility;
|
||||
import org.eclipse.hawkbit.repository.ActionFields;
|
||||
import org.eclipse.hawkbit.repository.Identifiable;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement;
|
||||
import org.eclipse.hawkbit.repository.builder.ActionStatusCreate;
|
||||
import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException;
|
||||
import org.eclipse.hawkbit.repository.jpa.model.JpaAction;
|
||||
@@ -89,6 +89,7 @@ import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Slice;
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
@@ -153,13 +154,14 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final String knownNameNotModify = "controllerName";
|
||||
final Long unassignTargetTypeValue = -1L;
|
||||
|
||||
final TargetType targetType = targetTypeManagement.create(Create.builder().name("targettype1").description("targettypedes1").build());
|
||||
final TargetType targetType = targetTypeManagement.create(
|
||||
TargetTypeManagement.Create.builder().name("targettype1").description("targettypedes1").build());
|
||||
|
||||
final String body = new JSONObject().put("targetType", unassignTargetTypeValue).toString();
|
||||
|
||||
// create a target with the created TargetType
|
||||
targetManagement.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.address(knownNewAddress).targetType(targetType.getId()));
|
||||
targetManagement.create(Create.builder().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.address(knownNewAddress).targetType(targetType).build());
|
||||
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -192,15 +194,16 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final Long unassignTargetTypeValue = -1L;
|
||||
final String controllerNewName = "controllerNewName";
|
||||
|
||||
final TargetType targetType = targetTypeManagement.create(Create.builder().name("targettype1").description("targettypedes1").build());
|
||||
final TargetType targetType = targetTypeManagement.create(
|
||||
TargetTypeManagement.Create.builder().name("targettype1").description("targettypedes1").build());
|
||||
|
||||
final String body = new JSONObject()
|
||||
.put("targetType", unassignTargetTypeValue).put("name", "controllerNewName")
|
||||
.toString();
|
||||
|
||||
// create a target with the created TargetType
|
||||
targetManagement.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.address(knownNewAddress).targetType(targetType.getId()));
|
||||
targetManagement.create(Create.builder().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.address(knownNewAddress).targetType(targetType).build());
|
||||
|
||||
mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -616,7 +619,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
mvc.perform(delete(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
assertThat(targetManagement.getByControllerID(knownControllerId)).isNotPresent();
|
||||
assertThat(targetManagement.getByControllerId(knownControllerId)).isNotPresent();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -653,8 +656,8 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final String body = new JSONObject().put("description", knownNewDescription).toString();
|
||||
|
||||
// prepare
|
||||
targetManagement.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.description("old description"));
|
||||
targetManagement.create(
|
||||
Create.builder().controllerId(knownControllerId).name(knownNameNotModify).description("old description").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -664,7 +667,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("$.description", equalTo(knownNewDescription)))
|
||||
.andExpect(jsonPath("$.name", equalTo(knownNameNotModify)));
|
||||
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerID(knownControllerId).get();
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerId(knownControllerId).get();
|
||||
assertThat(findTargetByControllerID.getDescription()).isEqualTo(knownNewDescription);
|
||||
assertThat(findTargetByControllerID.getName()).isEqualTo(knownNameNotModify);
|
||||
}
|
||||
@@ -680,15 +683,15 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final String body = new JSONObject().put("description", knownNewDescription).toString();
|
||||
|
||||
// prepare
|
||||
targetManagement.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.description("old description"));
|
||||
targetManagement.create(
|
||||
Create.builder().controllerId(knownControllerId).name(knownNameNotModify).description("old description").build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
.andExpect(status().isBadRequest());
|
||||
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerID(knownControllerId).get();
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerId(knownControllerId).get();
|
||||
assertThat(findTargetByControllerID.getDescription()).isEqualTo("old description");
|
||||
}
|
||||
|
||||
@@ -703,8 +706,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final String body = new JSONObject().put("securityToken", knownNewToken).toString();
|
||||
|
||||
// prepare
|
||||
targetManagement
|
||||
.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify));
|
||||
targetManagement.create(Create.builder().controllerId(knownControllerId).name(knownNameNotModify).build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -714,7 +716,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("$.securityToken", equalTo(knownNewToken)))
|
||||
.andExpect(jsonPath("$.name", equalTo(knownNameNotModify)));
|
||||
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerID(knownControllerId).get();
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerId(knownControllerId).get();
|
||||
assertThat(findTargetByControllerID.getSecurityToken()).isEqualTo(knownNewToken);
|
||||
assertThat(findTargetByControllerID.getName()).isEqualTo(knownNameNotModify);
|
||||
}
|
||||
@@ -730,8 +732,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final String body = new JSONObject().put("address", knownNewAddress).toString();
|
||||
|
||||
// prepare
|
||||
targetManagement.create(entityFactory.target().create().controllerId(knownControllerId).name(knownNameNotModify)
|
||||
.address(knownNewAddress));
|
||||
targetManagement.create(Create.builder().controllerId(knownControllerId).name(knownNameNotModify).address(knownNewAddress).build());
|
||||
|
||||
mvc.perform(put(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownControllerId).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
@@ -741,7 +742,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("$.address", equalTo(knownNewAddress)))
|
||||
.andExpect(jsonPath("$.name", equalTo(knownNameNotModify)));
|
||||
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerID(knownControllerId).get();
|
||||
final Target findTargetByControllerID = targetManagement.getByControllerId(knownControllerId).get();
|
||||
assertThat(findTargetByControllerID.getAddress()).hasToString(knownNewAddress);
|
||||
assertThat(findTargetByControllerID.getName()).isEqualTo(knownNameNotModify);
|
||||
}
|
||||
@@ -1014,7 +1015,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
void createTargetWithEmptyNameAndLongControllerId() throws Exception {
|
||||
final String randomString = randomString(JpaTarget.CONTROLLER_ID_MAX_SIZE);
|
||||
|
||||
final Target target = entityFactory.target().create().controllerId(randomString).build();
|
||||
final Create target = Create.builder().controllerId(randomString).build();
|
||||
|
||||
final String targetList = JsonBuilder.targets(List.of(target), false);
|
||||
|
||||
@@ -1026,7 +1027,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("[0].controllerId", equalTo(randomString)))
|
||||
.andExpect(jsonPath("[0].name", equalTo(expectedTargetName)));
|
||||
|
||||
assertThat(targetManagement.getByControllerID(randomString).get().getName()).isEqualTo(expectedTargetName);
|
||||
assertThat(targetManagement.getByControllerId(randomString).get().getName()).isEqualTo(expectedTargetName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1099,12 +1100,11 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
*/
|
||||
@Test
|
||||
void createTargetWithInvalidPropertyBadRequest() throws Exception {
|
||||
final Target test1 = entityFactory.target().create().controllerId("id1")
|
||||
.name(randomString(NamedEntity.NAME_MAX_SIZE + 1)).build();
|
||||
final Create test1 = Create.builder().controllerId("id1").name(randomString(NamedEntity.NAME_MAX_SIZE + 1)).build();
|
||||
|
||||
final MvcResult mvcResult = mvc
|
||||
.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING)
|
||||
.content(JsonBuilder.targets(Collections.singletonList(test1), true))
|
||||
.content(JsonBuilder.targets(List.of(test1), true))
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
.andExpect(status().isBadRequest())
|
||||
@@ -1124,14 +1124,14 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
*/
|
||||
@Test
|
||||
void createTargetsListReturnsSuccessful() throws Exception {
|
||||
final Target test1 = entityFactory.target().create().controllerId("id1").name("testname1")
|
||||
final Create test1 = Create.builder().controllerId("id1").name("testname1")
|
||||
.securityToken("token").address("amqp://test123/foobar").description("testid1").build();
|
||||
final Target test2 = entityFactory.target().create().controllerId("id2").name("testname2")
|
||||
final Create test2 = Create.builder().controllerId("id2").name("testname2")
|
||||
.description("testid2").build();
|
||||
final Target test3 = entityFactory.target().create().controllerId("id3").name("testname3")
|
||||
final Create test3 = Create.builder().controllerId("id3").name("testname3")
|
||||
.description("testid3").build();
|
||||
|
||||
final List<Target> targets = Arrays.asList(test1, test2, test3);
|
||||
final List<Create> targets = List.of(test1, test2, test3);
|
||||
|
||||
final MvcResult mvcResult = mvc
|
||||
.perform(post("/rest/v1/targets").content(JsonBuilder.targets(targets, true))
|
||||
@@ -1189,7 +1189,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
.andExpect(status().is2xxSuccessful());
|
||||
|
||||
final Slice<Target> findTargetsAll = targetManagement.findAll(PageRequest.of(0, 100));
|
||||
final Page<? extends Target> findTargetsAll = targetManagement.findAll(PageRequest.of(0, 100));
|
||||
final Target target = findTargetsAll.getContent().get(0);
|
||||
assertThat(targetManagement.count()).isEqualTo(1);
|
||||
assertThat(target.getControllerId()).isEqualTo(knownControllerId);
|
||||
@@ -1639,7 +1639,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
implicitLock(set);
|
||||
|
||||
assertThat(deploymentManagement.getAssignedDistributionSet(target.getControllerId()).get()).isEqualTo(set);
|
||||
target = targetManagement.getByControllerID(target.getControllerId()).get();
|
||||
target = targetManagement.getByControllerId(target.getControllerId()).get();
|
||||
|
||||
// repeating DS assignment leads again to OK
|
||||
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + target.getControllerId() + "/assignedDS")
|
||||
@@ -1651,7 +1651,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("total", equalTo(1)));
|
||||
|
||||
// ...but does not change the target
|
||||
assertThat(targetManagement.getByControllerID(target.getControllerId()).get()).isEqualTo(target);
|
||||
assertThat(targetManagement.getByControllerId(target.getControllerId()).get()).isEqualTo(target);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1743,7 +1743,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
|
||||
assertThat(deploymentManagement.getAssignedDistributionSet(target.getControllerId()).get()).isEqualTo(set);
|
||||
assertThat(deploymentManagement.getInstalledDistributionSet(target.getControllerId()).get()).isEqualTo(set);
|
||||
target = targetManagement.getByControllerID(target.getControllerId()).get();
|
||||
target = targetManagement.getByControllerId(target.getControllerId()).get();
|
||||
assertThat(target.getUpdateStatus()).isEqualTo(TargetUpdateStatus.IN_SYNC);
|
||||
|
||||
// repeating DS assignment leads again to OK
|
||||
@@ -1757,7 +1757,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("total", equalTo(1)));
|
||||
|
||||
// ...but does not change the target
|
||||
assertThat(targetManagement.getByControllerID(target.getControllerId()).get()).isEqualTo(target);
|
||||
assertThat(targetManagement.getByControllerId(target.getControllerId()).get()).isEqualTo(target);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -2460,15 +2460,15 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final TargetType type1 = testdataFactory.createTargetType("typeWithDs", Set.of(standardDsType));
|
||||
final TargetType type2 = testdataFactory.createTargetType("typeWithOutDs", Set.of(standardDsType));
|
||||
|
||||
final Target test1 = entityFactory.target().create().controllerId("id1").name("targetWithoutType")
|
||||
final Create test1 = Create.builder().controllerId("id1").name("targetWithoutType")
|
||||
.securityToken("token").address("amqp://test123/foobar").description("testid1").build();
|
||||
final Target test2 = entityFactory.target().create().controllerId("id2").name("targetOfType1")
|
||||
.targetType(type1.getId()).description("testid2").build();
|
||||
final Target test3 = entityFactory.target().create().controllerId("id3").name("targetOfType2")
|
||||
.targetType(type2.getId()).description("testid3").build();
|
||||
final Create test2 = Create.builder().controllerId("id2").name("targetOfType1")
|
||||
.targetType(type1).description("testid2").build();
|
||||
final Create test3 = Create.builder().controllerId("id3").name("targetOfType2")
|
||||
.targetType(type2).description("testid3").build();
|
||||
final String hrefType1 = "http://localhost/rest/v1/targettypes/" + type1.getId();
|
||||
|
||||
final List<Target> targets = Arrays.asList(test1, test2, test3);
|
||||
final List<Create> targets = List.of(test1, test2, test3);
|
||||
|
||||
mvc
|
||||
.perform(post("/rest/v1/targets").content(JsonBuilder.targets(targets, true))
|
||||
@@ -2530,10 +2530,9 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
final List<? extends TargetType> targetTypes = testdataFactory.createTargetTypes("targettype", 1);
|
||||
assertThat(targetTypes).hasSize(1);
|
||||
|
||||
final Target target = entityFactory.target().create().controllerId("targetcontroller").name("testtarget")
|
||||
.targetType(targetTypes.get(0).getId()).build();
|
||||
final Create target = Create.builder().controllerId("targetcontroller").name("testtarget").targetType(targetTypes.get(0)).build();
|
||||
|
||||
final String targetList = JsonBuilder.targets(Collections.singletonList(target), false);
|
||||
final String targetList = JsonBuilder.targets(List.of(target), false);
|
||||
|
||||
// test query target over rest resource
|
||||
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING).content(targetList)
|
||||
@@ -2542,7 +2541,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andExpect(jsonPath("[0].controllerId", equalTo("targetcontroller")))
|
||||
.andExpect(jsonPath("[0].targetType", equalTo(targetTypes.get(0).getId().intValue())));
|
||||
|
||||
assertThat(targetManagement.getByControllerID("targetcontroller").get().getTargetType().getId())
|
||||
assertThat(targetManagement.getByControllerId("targetcontroller").get().getTargetType().getId())
|
||||
.isEqualTo(targetTypes.get(0).getId());
|
||||
}
|
||||
|
||||
@@ -2556,7 +2555,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
assertThat(targetTypes).hasSize(2);
|
||||
|
||||
final String controllerId = "targetcontroller";
|
||||
final Target target = testdataFactory.createTarget(controllerId, "testtarget", targetTypes.get(0).getId());
|
||||
final Target target = testdataFactory.createTarget(controllerId, "testtarget", targetTypes.get(0));
|
||||
|
||||
assertThat(target).isNotNull();
|
||||
assertThat(target.getTargetType().getId()).isEqualTo(targetTypes.get(0).getId());
|
||||
@@ -2583,13 +2582,12 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
assertThat(targetType).isNotPresent();
|
||||
|
||||
final String controllerId = "targetcontroller";
|
||||
final Target target = entityFactory.target().create().controllerId(controllerId).name("testtarget").build();
|
||||
final Create target = Create.builder().controllerId(controllerId).name("testtarget").build();
|
||||
|
||||
final String targetList = JsonBuilder.targets(Collections.singletonList(target), false, unknownTargetTypeId);
|
||||
final String targetList = JsonBuilder.targets(List.of(target), false, unknownTargetTypeId);
|
||||
|
||||
// post target over rest resource
|
||||
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING).content(targetList)
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING).content(targetList).contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isNotFound())
|
||||
.andExpect(jsonPath("message", Matchers.containsString(errorMsg)));
|
||||
}
|
||||
@@ -2614,7 +2612,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
.andExpect(status().isOk());
|
||||
|
||||
assertThat(targetManagement.getByControllerID(targetControllerId).get().getTargetType().getId())
|
||||
assertThat(targetManagement.getByControllerId(targetControllerId).get().getTargetType().getId())
|
||||
.isEqualTo(targetType.getId());
|
||||
}
|
||||
|
||||
@@ -2663,8 +2661,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
assertThat(targetTypes).hasSize(1);
|
||||
|
||||
final String targetControllerId = "targetcontroller";
|
||||
final Target target = testdataFactory.createTarget(targetControllerId, "testtarget",
|
||||
targetTypes.get(0).getId());
|
||||
final Target target = testdataFactory.createTarget(targetControllerId, "testtarget", targetTypes.get(0));
|
||||
|
||||
assertThat(target).isNotNull();
|
||||
assertThat(target.getTargetType().getId()).isEqualTo(targetTypes.get(0).getId());
|
||||
@@ -2674,7 +2671,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
assertThat(targetManagement.getByControllerID(targetControllerId).get().getTargetType()).isNull();
|
||||
assertThat(targetManagement.getByControllerId(targetControllerId).get().getTargetType()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -2874,12 +2871,11 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
}
|
||||
|
||||
private void createTarget(final String controllerId) {
|
||||
targetManagement.create(entityFactory.target().create().controllerId(controllerId)
|
||||
.address(IpUtil.createHttpUri("127.0.0.1").toString()));
|
||||
targetManagement.create(Create.builder().controllerId(controllerId).address(IpUtil.createHttpUri("127.0.0.1").toString()).build());
|
||||
}
|
||||
|
||||
private Target assertTarget(final String controllerId, final String name, final String description) {
|
||||
final Optional<Target> target1 = targetManagement.getByControllerID(controllerId);
|
||||
final Optional<Target> target1 = targetManagement.getByControllerId(controllerId);
|
||||
assertThat(target1).isPresent();
|
||||
final Target t = target1.get();
|
||||
assertThat(t.getName()).isEqualTo(name);
|
||||
@@ -3020,7 +3016,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
}
|
||||
|
||||
private Target createSingleTarget(final String controllerId, final String name) {
|
||||
targetManagement.create(entityFactory.target().create().controllerId(controllerId).name(name).description(TARGET_DESCRIPTION_TEST));
|
||||
targetManagement.create(Create.builder().controllerId(controllerId).name(name).description(TARGET_DESCRIPTION_TEST).build());
|
||||
return controllerManagement.findOrRegisterTargetIfItDoesNotExist(controllerId, LOCALHOST);
|
||||
}
|
||||
|
||||
@@ -3034,7 +3030,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
char character = 'a';
|
||||
for (int index = 0; index < amount; index++) {
|
||||
final String str = String.valueOf(character);
|
||||
targetManagement.create(entityFactory.target().create().controllerId(str).name(str).description(str));
|
||||
targetManagement.create(Create.builder().controllerId(str).name(str).description(str).build());
|
||||
controllerManagement.findOrRegisterTargetIfItDoesNotExist(str, LOCALHOST);
|
||||
character++;
|
||||
}
|
||||
@@ -3054,7 +3050,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
// verify active action
|
||||
final Slice<Action> actionsByTarget = deploymentManagement.findActionsByTarget(tA.getControllerId(), PAGE);
|
||||
assertThat(actionsByTarget.getContent()).hasSize(1);
|
||||
return targetManagement.getByControllerID(tA.getControllerId()).get();
|
||||
return targetManagement.getByControllerId(tA.getControllerId()).get();
|
||||
}
|
||||
|
||||
private void setupTargetWithMetadata(final String knownControllerId, final String knownKey, final String knownValue) {
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.eclipse.hawkbit.exception.SpServerError;
|
||||
import org.eclipse.hawkbit.im.authentication.SpPermission;
|
||||
import org.eclipse.hawkbit.mgmt.json.model.MgmtId;
|
||||
import org.eclipse.hawkbit.mgmt.rest.api.MgmtRestConstants;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement.Create;
|
||||
import org.eclipse.hawkbit.repository.TargetTypeManagement.Update;
|
||||
import org.eclipse.hawkbit.repository.exception.AssignmentQuotaExceededException;
|
||||
@@ -458,8 +459,8 @@ class MgmtTargetTypeResourceTest extends AbstractManagementApiIntegrationTest {
|
||||
String typeName = "TestTypeUsedDelete";
|
||||
final TargetType testType = createTestTargetTypeInDB(typeName);
|
||||
|
||||
targetManagement.create(entityFactory.target().create().controllerId("target").name("TargetOfTestType")
|
||||
.description("target description").targetType(testType.getId()));
|
||||
targetManagement.create(TargetManagement.Create.builder()
|
||||
.controllerId("target").name("TargetOfTestType").description("target description").targetType(testType).build());
|
||||
|
||||
assertThat(targetTypeManagement.count()).isEqualTo(1);
|
||||
assertThat(targetManagement.count()).isEqualTo(1);
|
||||
|
||||
Reference in New Issue
Block a user