Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -46,44 +46,35 @@ public final class MgmtDistributionSetMapper {
|
||||
/**
|
||||
* {@link MgmtDistributionSetRequestBodyPost}s to {@link DistributionSet}s.
|
||||
*
|
||||
* @param sets
|
||||
* to convert
|
||||
* @param sets to convert
|
||||
* @return converted list of {@link DistributionSet}s
|
||||
*/
|
||||
static List<DistributionSetCreate> dsFromRequest(final Collection<MgmtDistributionSetRequestBodyPost> sets,
|
||||
final EntityFactory entityFactory) {
|
||||
|
||||
return sets.stream().map(dsRest -> fromRequest(dsRest, entityFactory)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link MgmtDistributionSetRequestBodyPost} to {@link DistributionSet}.
|
||||
*
|
||||
* @param dsRest
|
||||
* to convert
|
||||
* @param dsRest to convert
|
||||
* @return converted {@link DistributionSet}
|
||||
*/
|
||||
private static DistributionSetCreate fromRequest(final MgmtDistributionSetRequestBodyPost dsRest,
|
||||
final EntityFactory entityFactory) {
|
||||
|
||||
final List<Long> modules = new ArrayList<>();
|
||||
|
||||
if (dsRest.getOs() != null) {
|
||||
modules.add(dsRest.getOs().getId());
|
||||
}
|
||||
|
||||
if (dsRest.getApplication() != null) {
|
||||
modules.add(dsRest.getApplication().getId());
|
||||
}
|
||||
|
||||
if (dsRest.getRuntime() != null) {
|
||||
modules.add(dsRest.getRuntime().getId());
|
||||
}
|
||||
|
||||
if (dsRest.getModules() != null) {
|
||||
dsRest.getModules().forEach(module -> modules.add(module.getId()));
|
||||
}
|
||||
|
||||
return entityFactory.distributionSet().create().name(dsRest.getName()).version(dsRest.getVersion())
|
||||
.description(dsRest.getDescription()).type(dsRest.getType()).modules(modules)
|
||||
.requiredMigrationStep(dsRest.getRequiredMigrationStep());
|
||||
@@ -103,6 +94,7 @@ public final class MgmtDistributionSetMapper {
|
||||
if (distributionSet == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final MgmtDistributionSet response = new MgmtDistributionSet();
|
||||
MgmtRestModelMapper.mapNamedToNamed(response, distributionSet);
|
||||
|
||||
@@ -180,7 +172,6 @@ public final class MgmtDistributionSetMapper {
|
||||
}
|
||||
|
||||
static List<MgmtMetadata> toResponseDsMetadata(final List<DistributionSetMetadata> metadata) {
|
||||
|
||||
final List<MgmtMetadata> mappedList = new ArrayList<>(metadata.size());
|
||||
for (final DistributionSetMetadata distributionSetMetadata : metadata) {
|
||||
mappedList.add(toResponseDsMetadata(distributionSetMetadata));
|
||||
@@ -195,4 +186,4 @@ public final class MgmtDistributionSetMapper {
|
||||
|
||||
return sets.stream().map(MgmtDistributionSetMapper::toResponse).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,8 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.eclipse.hawkbit.api.ApiType;
|
||||
import org.eclipse.hawkbit.api.ArtifactUrl;
|
||||
import org.eclipse.hawkbit.api.ArtifactUrlHandler;
|
||||
@@ -42,12 +44,9 @@ import org.springframework.hateoas.Link;
|
||||
/**
|
||||
* A mapper which maps repository model to RESTful model representation and
|
||||
* back.
|
||||
*
|
||||
*/
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class MgmtSoftwareModuleMapper {
|
||||
private MgmtSoftwareModuleMapper() {
|
||||
// Utility class
|
||||
}
|
||||
|
||||
private static SoftwareModuleCreate fromRequest(final EntityFactory entityFactory,
|
||||
final MgmtSoftwareModuleRequestBodyPost smsRest) {
|
||||
@@ -157,7 +156,6 @@ public final class MgmtSoftwareModuleMapper {
|
||||
}
|
||||
|
||||
static void addLinks(final Artifact artifact, final MgmtArtifact response) {
|
||||
|
||||
response.add(linkTo(methodOn(MgmtDownloadArtifactResource.class)
|
||||
.downloadArtifact(artifact.getSoftwareModule().getId(), artifact.getId())).withRel("download")
|
||||
.expand());
|
||||
@@ -165,7 +163,6 @@ public final class MgmtSoftwareModuleMapper {
|
||||
|
||||
static void addLinks(final Artifact artifact, final MgmtArtifact response,
|
||||
final ArtifactUrlHandler artifactUrlHandler, final SystemManagement systemManagement) {
|
||||
|
||||
final List<ArtifactUrl> urls = artifactUrlHandler.getUrls(
|
||||
new URLPlaceholder(systemManagement.getTenantMetadata().getTenant(),
|
||||
systemManagement.getTenantMetadata().getId(), null, null,
|
||||
@@ -173,5 +170,4 @@ public final class MgmtSoftwareModuleMapper {
|
||||
artifact.getId(), artifact.getSha1Hash())), ApiType.MGMT, null);
|
||||
urls.forEach(entry -> response.add(Link.of(entry.getRef()).withRel(entry.getRel()).expand()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1071,8 +1071,8 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr
|
||||
assertThat(distributionSetManagement.count()).isEqualTo(1);
|
||||
assertThat(set.isLocked()).as("Created distribution set should not be locked").isFalse();
|
||||
|
||||
// lock
|
||||
final String body = new JSONObject().put("locked", true).toString();
|
||||
|
||||
mvc.perform(put("/rest/v1/distributionsets/{dsId}", set.getId()).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
@@ -1084,8 +1084,8 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr
|
||||
}
|
||||
|
||||
@Test
|
||||
@Description("Tests the unlock. It is verified that the distribution set can't be unmarked as locked through update operation.")
|
||||
void unlockDistributionSetSkippedSilently() throws Exception {
|
||||
@Description("Tests the unlock.")
|
||||
void unlockDistributionSet() throws Exception {
|
||||
// prepare test data
|
||||
assertThat(distributionSetManagement.findByCompleted(PAGE, true)).hasSize(0);
|
||||
|
||||
@@ -1094,19 +1094,19 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr
|
||||
distributionSetManagement.lock(set.getId());
|
||||
assertThat(distributionSetManagement.get(set.getId())
|
||||
.orElseThrow(() -> new EntityNotFoundException(SoftwareModule.class, set.getId())).isLocked())
|
||||
.as("Created software module should not be locked")
|
||||
.as("Distribution set should be locked")
|
||||
.isTrue();
|
||||
|
||||
// unlock
|
||||
final String body = new JSONObject().put("locked", false).toString();
|
||||
|
||||
mvc.perform(put("/rest/v1/distributionsets/{dsId}", set.getId()).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
|
||||
.andDo(MockMvcResultPrinter.print())
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.locked", equalTo(true)));
|
||||
.andExpect(jsonPath("$.locked", equalTo(false)));
|
||||
|
||||
final DistributionSet updatedSet = distributionSetManagement.get(set.getId()).get();
|
||||
assertThat(updatedSet.isLocked()).isEqualTo(true);
|
||||
assertThat(updatedSet.isLocked()).isEqualTo(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -202,6 +202,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes
|
||||
.pollInterval(10L, TimeUnit.MILLISECONDS)
|
||||
.until(() -> sm.getLastModifiedAt() > 0L && sm.getLastModifiedBy() != null);
|
||||
|
||||
// lock
|
||||
final String body = new JSONObject().put("locked", true).toString();
|
||||
final ResultActions resultActions =
|
||||
mvc.perform(put("/rest/v1/softwaremodules/{smId}", sm.getId()).content(body)
|
||||
@@ -221,15 +222,15 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes
|
||||
}
|
||||
|
||||
@Test
|
||||
@Description("Tests the unlock. It is verified that the software module can't be unmarked as locked through update operation.")
|
||||
@Description("Tests the unlock.")
|
||||
@WithUser(principal = "smUpdateTester", allSpPermissions = true)
|
||||
void unlockSoftwareModuleSkippedSilently() throws Exception {
|
||||
void unlockSoftwareModule() throws Exception {
|
||||
final SoftwareModule sm = softwareModuleManagement.create(
|
||||
entityFactory.softwareModule().create().type(osType).name("name1").version("version1"));
|
||||
softwareModuleManagement.lock(sm.getId());
|
||||
assertThat(softwareModuleManagement.get(sm.getId())
|
||||
.orElseThrow(() -> new EntityNotFoundException(SoftwareModule.class, sm.getId())).isLocked())
|
||||
.as("Created software module should not be locked")
|
||||
.as("Software module is locked")
|
||||
.isTrue();
|
||||
// ensures that we are not to fast so that last modified is not set correctly
|
||||
Awaitility.await()
|
||||
@@ -237,6 +238,7 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes
|
||||
.pollInterval(10L, TimeUnit.MILLISECONDS)
|
||||
.until(() -> sm.getLastModifiedAt() > 0L && sm.getLastModifiedBy() != null);
|
||||
|
||||
// unlock
|
||||
final String body = new JSONObject().put("locked", false).toString();
|
||||
final ResultActions resultActions =
|
||||
mvc.perform(put("/rest/v1/softwaremodules/{smId}", sm.getId()).content(body)
|
||||
@@ -244,14 +246,14 @@ class MgmtSoftwareModuleResourceTest extends AbstractManagementApiIntegrationTes
|
||||
|
||||
final SoftwareModule updatedSm = softwareModuleManagement.get(sm.getId()).get();
|
||||
assertThat(updatedSm.getLastModifiedBy()).isEqualTo("smUpdateTester");
|
||||
assertThat(updatedSm.isLocked()).isTrue(); // not unlocked
|
||||
assertThat(updatedSm.isLocked()).isFalse(); // not unlocked
|
||||
|
||||
resultActions
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.id", equalTo(sm.getId().intValue())))
|
||||
.andExpect(jsonPath("$.lastModifiedBy", equalTo("smUpdateTester")))
|
||||
.andExpect(jsonPath("$.lastModifiedAt", equalTo(updatedSm.getLastModifiedAt())))
|
||||
.andExpect(jsonPath("$.locked", equalTo(true)));
|
||||
.andExpect(jsonPath("$.locked", equalTo(false)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user