/** * Creates a {@link DistributionSet}. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * @param type * {@link DistributionSet#getType()} * @param modules * {@link DistributionSet#getModules()} * * @return the created {@link DistributionSet} */ public DistributionSet createDistributionSet(final String name, final String version, final DistributionSetType type, final Collection<SoftwareModule> modules) { return distributionSetManagement.create( entityFactory.distributionSet().create().name(name).version(version).description(LOREM.words(10)) .type(type).modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList()))); }
/** * Creates a {@link DistributionSet}. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * @param type * {@link DistributionSet#getType()} * @param modules * {@link DistributionSet#getModules()} * * @return the created {@link DistributionSet} */ public DistributionSet createDistributionSet(final String name, final String version, final DistributionSetType type, final Collection<SoftwareModule> modules) { return distributionSetManagement.create( entityFactory.distributionSet().create().name(name).version(version).description(LOREM.words(10)) .type(type).modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList()))); }
/** * Generates {@link DistributionSet} object without persisting it. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * @param type * {@link DistributionSet#getType()} * @param modules * {@link DistributionSet#getModules()} * @param requiredMigrationStep * {@link DistributionSet#isRequiredMigrationStep()} * * @return the created {@link DistributionSet} */ public DistributionSet generateDistributionSet(final String name, final String version, final DistributionSetType type, final Collection<SoftwareModule> modules, final boolean requiredMigrationStep) { return entityFactory.distributionSet().create().name(name).version(version).description(LOREM.words(10)) .type(type).modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList())) .requiredMigrationStep(requiredMigrationStep).build(); }
/** * Generates {@link DistributionSet} object without persisting it. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * @param type * {@link DistributionSet#getType()} * @param modules * {@link DistributionSet#getModules()} * @param requiredMigrationStep * {@link DistributionSet#isRequiredMigrationStep()} * * @return the created {@link DistributionSet} */ public DistributionSet generateDistributionSet(final String name, final String version, final DistributionSetType type, final Collection<SoftwareModule> modules, final boolean requiredMigrationStep) { return entityFactory.distributionSet().create().name(name).version(version).description(LOREM.words(10)) .type(type).modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList())) .requiredMigrationStep(requiredMigrationStep).build(); }
/** * Creates {@link DistributionSet} in repository. * * @param prefix * for {@link SoftwareModule}s and {@link DistributionSet}s name, * vendor and description. * @param version * {@link DistributionSet#getVersion()} and * {@link SoftwareModule#getVersion()} extended by a random * number. * @param isRequiredMigrationStep * for {@link DistributionSet#isRequiredMigrationStep()} * @param modules * for {@link DistributionSet#getModules()} * * @return {@link DistributionSet} entity. */ public DistributionSet createDistributionSet(final String prefix, final String version, final boolean isRequiredMigrationStep, final Collection<SoftwareModule> modules) { return distributionSetManagement.create( entityFactory.distributionSet().create().name(prefix != null && prefix.length() > 0 ? prefix : "DS") .version(version).description(LOREM.words(10)).type(findOrCreateDefaultTestDsType()) .modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList())) .requiredMigrationStep(isRequiredMigrationStep)); }
/** * Create a list of {@link DistributionSet}s without modules, i.e. * incomplete. * * @param number * of {@link DistributionSet}s to create * @return {@link List} of {@link DistributionSet} entities */ public List<DistributionSet> createDistributionSetsWithoutModules(final int number) { final List<DistributionSet> sets = Lists.newArrayListWithExpectedSize(number); for (int i = 0; i < number; i++) { sets.add(distributionSetManagement .create(entityFactory.distributionSet().create().name("DS" + i).version(DEFAULT_VERSION + "." + i) .description(LOREM.words(10)).type(findOrCreateDefaultTestDsType()))); } return sets; }
/** * Creates {@link DistributionSet} in repository. * * @param prefix * for {@link SoftwareModule}s and {@link DistributionSet}s name, * vendor and description. * @param version * {@link DistributionSet#getVersion()} and * {@link SoftwareModule#getVersion()} extended by a random * number. * @param isRequiredMigrationStep * for {@link DistributionSet#isRequiredMigrationStep()} * @param modules * for {@link DistributionSet#getModules()} * * @return {@link DistributionSet} entity. */ public DistributionSet createDistributionSet(final String prefix, final String version, final boolean isRequiredMigrationStep, final Collection<SoftwareModule> modules) { return distributionSetManagement.create( entityFactory.distributionSet().create().name(prefix != null && prefix.length() > 0 ? prefix : "DS") .version(version).description(LOREM.words(10)).type(findOrCreateDefaultTestDsType()) .modules(modules.stream().map(SoftwareModule::getId).collect(Collectors.toList())) .requiredMigrationStep(isRequiredMigrationStep)); }
@Override public ResponseEntity<MgmtDistributionSet> updateDistributionSet( @PathVariable("distributionSetId") final Long distributionSetId, @RequestBody final MgmtDistributionSetRequestBodyPut toUpdate) { final DistributionSet updated = distributionSetManagement.update(entityFactory.distributionSet() .update(distributionSetId).name(toUpdate.getName()).description(toUpdate.getDescription()) .version(toUpdate.getVersion()).requiredMigrationStep(toUpdate.isRequiredMigrationStep())); final MgmtDistributionSet response = MgmtDistributionSetMapper.toResponse(updated); MgmtDistributionSetMapper.addLinks(updated, response); return ResponseEntity.ok(response); }
/** * Create a list of {@link DistributionSet}s without modules, i.e. * incomplete. * * @param number * of {@link DistributionSet}s to create * @return {@link List} of {@link DistributionSet} entities */ public List<DistributionSet> createDistributionSetsWithoutModules(final int number) { final List<DistributionSet> sets = Lists.newArrayListWithExpectedSize(number); for (int i = 0; i < number; i++) { sets.add(distributionSetManagement .create(entityFactory.distributionSet().create().name("DS" + i).version(DEFAULT_VERSION + "." + i) .description(LOREM.words(10)).type(findOrCreateDefaultTestDsType()))); } return sets; }
/** * Creates {@link DistributionSet}s in repository with * {@link #DEFAULT_DESCRIPTION} and * {@link DistributionSet#isRequiredMigrationStep()} <code>false</code>. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * * @return {@link DistributionSet} entity */ public DistributionSet createDistributionSetWithNoSoftwareModules(final String name, final String version) { return distributionSetManagement.create(entityFactory.distributionSet().create().name(name).version(version) .description(DEFAULT_DESCRIPTION).type(findOrCreateDefaultTestDsType())); }
/** * Creates {@link DistributionSet}s in repository with * {@link #DEFAULT_DESCRIPTION} and * {@link DistributionSet#isRequiredMigrationStep()} <code>false</code>. * * @param name * {@link DistributionSet#getName()} * @param version * {@link DistributionSet#getVersion()} * * @return {@link DistributionSet} entity */ public DistributionSet createDistributionSetWithNoSoftwareModules(final String name, final String version) { return distributionSetManagement.create(entityFactory.distributionSet().create().name(name).version(version) .description(DEFAULT_DESCRIPTION).type(findOrCreateDefaultTestDsType())); }
/** * Creates {@link DistributionSet}s in repository including three * {@link SoftwareModule}s of types {@link #SM_TYPE_OS}, {@link #SM_TYPE_RT} * , {@link #SM_TYPE_APP} with {@link #DEFAULT_VERSION} followed by an * iterative number and {@link DistributionSet#isRequiredMigrationStep()} * <code>false</code>. * * In addition it updates the created {@link DistributionSet}s and * {@link SoftwareModule}s to ensure that * {@link BaseEntity#getLastModifiedAt()} and * {@link BaseEntity#getLastModifiedBy()} is filled. * * @return persisted {@link DistributionSet}. */ public DistributionSet createUpdatedDistributionSet() { DistributionSet set = createDistributionSet(""); set = distributionSetManagement.update( entityFactory.distributionSet().update(set.getId()).description("Updated " + DEFAULT_DESCRIPTION)); set.getModules().forEach(module -> softwareModuleManagement.update( entityFactory.softwareModule().update(module.getId()).description("Updated " + DEFAULT_DESCRIPTION))); // load also lazy stuff return distributionSetManagement.getWithDetails(set.getId()).get(); }
/** * Creates {@link DistributionSet}s in repository including three * {@link SoftwareModule}s of types {@link #SM_TYPE_OS}, {@link #SM_TYPE_RT} * , {@link #SM_TYPE_APP} with {@link #DEFAULT_VERSION} followed by an * iterative number and {@link DistributionSet#isRequiredMigrationStep()} * <code>false</code>. * * In addition it updates the created {@link DistributionSet}s and * {@link SoftwareModule}s to ensure that * {@link BaseEntity#getLastModifiedAt()} and * {@link BaseEntity#getLastModifiedBy()} is filled. * * @return persisted {@link DistributionSet}. */ public DistributionSet createUpdatedDistributionSet() { DistributionSet set = createDistributionSet(""); set = distributionSetManagement.update( entityFactory.distributionSet().update(set.getId()).description("Updated " + DEFAULT_DESCRIPTION)); set.getModules().forEach(module -> softwareModuleManagement.update( entityFactory.softwareModule().update(module.getId()).description("Updated " + DEFAULT_DESCRIPTION))); // load also lazy stuff return distributionSetManagement.getWithDetails(set.getId()).get(); }
protected DistributionSet createDistributionSet() { DistributionSet distributionSet = testdataFactory.createDistributionSet(""); distributionSet = distributionSetManagement.update(entityFactory.distributionSet() .update(distributionSet.getId()).description("The descption of the distribution set.")); distributionSet.getModules().forEach(module -> { final byte[] random = RandomStringUtils.random(5).getBytes(); artifactManagement .create(new ArtifactUpload(new ByteArrayInputStream(random), module.getId(), "file1", false, 0)); softwareModuleManagement.update(entityFactory.softwareModule().update(module.getId()) .description("Description of the software module")); }); return distributionSet; }
@Override public void saveOrUpdate() { final String name = distNameTextField.getValue(); final String version = distVersionTextField.getValue(); final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue(); final String desc = descTextArea.getValue(); final boolean isMigStepReq = reqMigStepCheckbox.getValue(); final DistributionSetType distributionSetType = distributionSetTypeManagement.get(distSetTypeId) .orElseThrow(() -> new EntityNotFoundException(DistributionSetType.class, distSetTypeId)); final DistributionSet newDist = distributionSetManagement .create(entityFactory.distributionSet().create().name(name).version(version).description(desc) .type(distributionSetType).requiredMigrationStep(isMigStepReq)); eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.ADD_ENTITY, newDist)); notificationMessage.displaySuccess(i18n.getMessage("message.new.dist.save.success", new Object[] { newDist.getName(), newDist.getVersion() })); distributionSetTable.setValue(Sets.newHashSet(newDist.getId())); }
@Override public void saveOrUpdate() { if (isDuplicate(editDistId)) { return; } final boolean isMigStepReq = reqMigStepCheckbox.getValue(); final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue(); distributionSetTypeManagement.get(distSetTypeId).ifPresent(type -> { final DistributionSet currentDS = distributionSetManagement.update(entityFactory.distributionSet() .update(editDistId).name(distNameTextField.getValue()).description(descTextArea.getValue()) .version(distVersionTextField.getValue()).requiredMigrationStep(isMigStepReq)); notificationMessage.displaySuccess(i18n.getMessage("message.new.dist.save.success", new Object[] { currentDS.getName(), currentDS.getVersion() })); // update table row+details layout eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); }); }
@Override public void saveOrUpdate() { final String name = distNameTextField.getValue(); final String version = distVersionTextField.getValue(); final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue(); final String desc = descTextArea.getValue(); final boolean isMigStepReq = reqMigStepCheckbox.getValue(); final DistributionSetType distributionSetType = distributionSetTypeManagement.get(distSetTypeId) .orElseThrow(() -> new EntityNotFoundException(DistributionSetType.class, distSetTypeId)); final DistributionSet newDist = distributionSetManagement .create(entityFactory.distributionSet().create().name(name).version(version).description(desc) .type(distributionSetType).requiredMigrationStep(isMigStepReq)); eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.ADD_ENTITY, newDist)); notificationMessage.displaySuccess( i18n.getMessage("message.new.dist.save.success", newDist.getName(), newDist.getVersion())); distributionSetTable.setValue(Sets.newHashSet(newDist.getId())); }
@Override public void saveOrUpdate() { if (isDuplicate(editDistId)) { return; } final boolean isMigStepReq = reqMigStepCheckbox.getValue(); final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue(); distributionSetTypeManagement.get(distSetTypeId).ifPresent(type -> { final DistributionSet currentDS = distributionSetManagement.update(entityFactory.distributionSet() .update(editDistId).name(distNameTextField.getValue()).description(descTextArea.getValue()) .version(distVersionTextField.getValue()).requiredMigrationStep(isMigStepReq)); notificationMessage.displaySuccess(i18n.getMessage("message.new.dist.save.success", new Object[] { currentDS.getName(), currentDS.getVersion() })); // update table row+details layout eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.UPDATED_ENTITY, currentDS)); }); }
@Test @Description("Get paged list of Distribution Sets with given page size and offset including sorting by name descending and filter down to all sets which name starts with 'testDs'. Required Permission: " + SpPermission.READ_REPOSITORY) public void getDistributionSetsWithParameters() throws Exception { final List<DistributionSet> sets = testdataFactory.createDistributionSets("testDS", 3); sets.forEach(set -> distributionSetManagement .update(entityFactory.distributionSet().update(set.getId()).description("updated description"))); mockMvc.perform( get(MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING).param("offset", "1").param("limit", "2") .param("sort", "version:DESC").param("q", "name==testDS*").accept(MediaType.APPLICATION_JSON)) .andDo(MockMvcResultPrinter.print()).andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andDo(this.document.document(getFilterRequestParamter())); }
@Test @Description("Handles the UPDATE request for a single Distribution Set within SP. Required Permission: " + SpPermission.UPDATE_REPOSITORY) public void updateDistributionSet() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); final DistributionSet update = entityFactory.distributionSet().create().name("another Name") .version("another Version").description("a new description").requiredMigrationStep(true).build(); mockMvc.perform(put(MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING + "/{distributionSetId}", set.getId()) .content(JsonBuilder.distributionSetUpdateValidFieldsOnly(update)) .contentType(MediaType.APPLICATION_JSON_UTF8).accept(MediaType.APPLICATION_JSON)) .andDo(MockMvcResultPrinter.print()).andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andDo(this.document.document( pathParameters( parameterWithName("distributionSetId").description(ApiModelPropertiesGeneric.ITEM_ID)), requestFields(optionalRequestFieldWithPath("name").description(ApiModelPropertiesGeneric.NAME), optionalRequestFieldWithPath("version").description(MgmtApiModelProperties.VERSION), optionalRequestFieldWithPath("description") .description(ApiModelPropertiesGeneric.DESCRPTION), optionalRequestFieldWithPath("requiredMigrationStep") .description(MgmtApiModelProperties.DS_REQUIRED_STEP)), getResponseFieldsDistributionSet(false))); }