aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java327
1 files changed, 139 insertions, 188 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
index 1e547d33ce..c4245d742d 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.vendorsoftwareproduct.impl;
-
+import java.util.Collection;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.common.errors.CoreException;
@@ -44,215 +44,166 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTempl
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
-import java.util.Collection;
-import java.util.stream.Collectors;
-
public class ImageManagerImpl implements ImageManager {
- private final VendorSoftwareProductInfoDao vspInfoDao;
- private final ImageDao imageDao;
- private final CompositionEntityDataManager compositionEntityDataManager;
- public ImageManagerImpl(VendorSoftwareProductInfoDao vspInfoDao,
- ImageDao imageDao,
- CompositionEntityDataManager compositionEntityDataManager) {
- this.vspInfoDao = vspInfoDao;
- this.imageDao = imageDao;
- this.compositionEntityDataManager = compositionEntityDataManager;
- }
+ private final VendorSoftwareProductInfoDao vspInfoDao;
+ private final ImageDao imageDao;
+ private final CompositionEntityDataManager compositionEntityDataManager;
- @Override
- public ImageEntity createImage(ImageEntity imageEntity) {
- boolean isManual = vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion());
- if (!isManual) {
- ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder
- .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
- throw new CoreException(errorCode);
+ public ImageManagerImpl(VendorSoftwareProductInfoDao vspInfoDao, ImageDao imageDao, CompositionEntityDataManager compositionEntityDataManager) {
+ this.vspInfoDao = vspInfoDao;
+ this.imageDao = imageDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
}
- compositionEntityDataManager.createImage(imageEntity);
- return imageEntity;
- }
-
- @Override
- public Collection<ImageEntity> listImages(String vspId, Version version, String componentId) {
- return imageDao.list(new ImageEntity(vspId, version, componentId, null));
- }
-
- @Override
- public CompositionEntityResponse<Image> getImageSchema(String vspId) {
- CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
- ImageCompositionSchemaInput inputSchema = new ImageCompositionSchemaInput();
- Image image = new Image();
- inputSchema.setImage(image);
- response.setSchema(getImageCompositionSchema(inputSchema));
- return response;
- }
- @Override
- public CompositionEntityResponse<Image> getImage(String vspId, Version version, String
- componentId, String imageId) {
- ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
-
- Image image = imageEntity.getImageCompositionData();
-
- ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
- schemaInput.setImage(image);
-
- CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
- response.setId(imageId);
- response.setData(image);
- response.setSchema(getImageCompositionSchema(schemaInput));
- return response;
- }
-
- @Override
- public QuestionnaireResponse getImageQuestionnaire(String vspId, Version version, String
- componentId, String imageId) {
- QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
-
- ImageEntity retrieved = imageDao.getQuestionnaireData(vspId, version, componentId, imageId);
- VersioningUtil.validateEntityExistence(retrieved, new ImageEntity(vspId, version, componentId,
- imageId), ComponentEntity.ENTITY_TYPE);
- questionnaireResponse.setData(retrieved.getQuestionnaireData());
- questionnaireResponse.setSchema(getImageQuestionnaireSchema(null));
- return questionnaireResponse;
- }
-
- @Override
- public void deleteImage(String vspId, Version version, String componentId, String imageId) {
- ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
- if (!vspInfoDao.isManual(vspId, version)) {
- final ErrorCode deleteImageErrorBuilder =
- NotSupportedHeatOnboardMethodErrorBuilder
- .getDelImageNotSupportedHeatOnboardMethodErrorBuilder();
- throw new CoreException(deleteImageErrorBuilder);
+ @Override
+ public ImageEntity createImage(ImageEntity imageEntity) {
+ boolean isManual = vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion());
+ if (!isManual) {
+ ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder.getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
+ throw new CoreException(errorCode);
+ }
+ compositionEntityDataManager.createImage(imageEntity);
+ return imageEntity;
}
- if (imageEntity != null) {
- imageDao.delete(new ImageEntity(vspId, version, componentId, imageId));
- }
- }
- private void validateHeatVspImageUpdate(String name, String value, String retrievedValue) {
- if (value != null && !value.equals(retrievedValue)) {
- final ErrorCode updateHeatImageErrorBuilder =
- ImageErrorBuilder.getImageHeatReadOnlyErrorBuilder(name);
- throw new CoreException(updateHeatImageErrorBuilder);
+ @Override
+ public Collection<ImageEntity> listImages(String vspId, Version version, String componentId) {
+ return imageDao.list(new ImageEntity(vspId, version, componentId, null));
}
- }
-
- @Override
- public CompositionEntityValidationData updateImage(ImageEntity image) {
- boolean isManual = vspInfoDao.isManual(image.getVspId(), image.getVersion());
- ImageEntity retrieved =
- getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(),
- image.getId());
- Collection<ImageEntity> vfcImageList = listImages(image.getVspId(),
- image.getVersion(), image.getComponentId());
-
- //Set to null so that retrieved object is equal to one in list and gets removed.
- retrieved.setQuestionnaireData(null);
- vfcImageList.remove(retrieved);
-
-
- ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
- schemaInput.setManual(isManual);
- schemaInput.setImage(retrieved.getImageCompositionData());
-
- CompositionEntityValidationData validationData = compositionEntityDataManager
- .validateEntity(image, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- imageDao.update(image);
+ @Override
+ public CompositionEntityResponse<Image> getImageSchema(String vspId) {
+ CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
+ ImageCompositionSchemaInput inputSchema = new ImageCompositionSchemaInput();
+ Image image = new Image();
+ inputSchema.setImage(image);
+ response.setSchema(getImageCompositionSchema(inputSchema));
+ return response;
}
- return validationData;
- }
- @Override
- public void updateImageQuestionnaire(String vspId, Version version, String componentId, String
- imageId, String questionnaireData) {
- getImageEntity(vspId, version, componentId, imageId);
-
-
- final ImageDetails image = JsonUtil.json2Object(questionnaireData, ImageDetails.class);
- final String format = image.getFormat();
- try {
- if (format != null) {
- ImageFormat.valueOf(format);
- }
- } catch (IllegalArgumentException exception) {
- ErrorCode errorCode = ImageErrorBuilder.getInvalidImageFormatErrorBuilder();
- throw new CoreException(errorCode, exception);
+ @Override
+ public CompositionEntityResponse<Image> getImage(String vspId, Version version, String componentId, String imageId) {
+ ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
+ Image image = imageEntity.getImageCompositionData();
+ ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
+ schemaInput.setImage(image);
+ CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
+ response.setId(imageId);
+ response.setData(image);
+ response.setSchema(getImageCompositionSchema(schemaInput));
+ return response;
}
- //Validate Format is read only for HEAT Onboarding
- if (!vspInfoDao.isManual(vspId, version)) {
- final QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version,
- componentId, imageId);
- final String data = imageQuestionnaire.getData();
- if (data != null) {
- String retrievedFormat = JsonUtil.json2Object(data, ImageDetails.class).getFormat();
- validateHeatVspImageUpdate("format", format, retrievedFormat);
- }
+ @Override
+ public QuestionnaireResponse getImageQuestionnaire(String vspId, Version version, String componentId, String imageId) {
+ QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
+ ImageEntity retrieved = imageDao.getQuestionnaireData(vspId, version, componentId, imageId);
+ VersioningUtil.validateEntityExistence(retrieved, new ImageEntity(vspId, version, componentId, imageId), ComponentEntity.ENTITY_TYPE);
+ questionnaireResponse.setData(retrieved.getQuestionnaireData());
+ questionnaireResponse.setSchema(getImageQuestionnaireSchema(null));
+ return questionnaireResponse;
}
- if (!isImageVersionUnique(vspId, version, componentId, imageId, image)) {
- ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageVersionErrorBuilder(image
- .getVersion(), componentId);
- throw new CoreException(errorCode);
+ @Override
+ public void deleteImage(String vspId, Version version, String componentId, String imageId) {
+ ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
+ if (!vspInfoDao.isManual(vspId, version)) {
+ final ErrorCode deleteImageErrorBuilder = NotSupportedHeatOnboardMethodErrorBuilder
+ .getDelImageNotSupportedHeatOnboardMethodErrorBuilder();
+ throw new CoreException(deleteImageErrorBuilder);
+ }
+ if (imageEntity != null) {
+ imageDao.delete(new ImageEntity(vspId, version, componentId, imageId));
+ }
}
- imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
- }
-
- private boolean isImageVersionUnique(String vspId, Version version, String componentId,
- String imageId,
- ImageDetails image) {
- boolean isPresent = true;
- if (image != null && image.getVersion() != null) {
- Collection<ImageEntity> imageEntities =
- imageDao.list(new ImageEntity(vspId, version, componentId, null));
- if (CollectionUtils.isNotEmpty(imageEntities)) {
- imageEntities =
- imageEntities.stream().filter(imageEntity -> image.getVersion().trim().equalsIgnoreCase(
- getImageVersion(vspId, version, componentId, imageEntity))
- && !imageEntity.getId().equals(imageId)).collect(Collectors.toList());
-
- isPresent = CollectionUtils.isEmpty(imageEntities);
- }
+ private void validateHeatVspImageUpdate(String name, String value, String retrievedValue) {
+ if (value != null && !value.equals(retrievedValue)) {
+ final ErrorCode updateHeatImageErrorBuilder = ImageErrorBuilder.getImageHeatReadOnlyErrorBuilder(name);
+ throw new CoreException(updateHeatImageErrorBuilder);
+ }
}
- return isPresent;
- }
-
- private String getImageVersion(String vspId, Version version, String componentId,
- ImageEntity imageEntity) {
- QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version,
- componentId, imageEntity.getId());
- ImageDetails imageDetails =
- JsonUtil.json2Object(imageQuestionnaire.getData(), ImageDetails.class);
+ @Override
+ public CompositionEntityValidationData updateImage(ImageEntity image) {
+ boolean isManual = vspInfoDao.isManual(image.getVspId(), image.getVersion());
+ ImageEntity retrieved = getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(), image.getId());
+ Collection<ImageEntity> vfcImageList = listImages(image.getVspId(), image.getVersion(), image.getComponentId());
+ //Set to null so that retrieved object is equal to one in list and gets removed.
+ retrieved.setQuestionnaireData(null);
+ vfcImageList.remove(retrieved);
+ ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
+ schemaInput.setManual(isManual);
+ schemaInput.setImage(retrieved.getImageCompositionData());
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .validateEntity(image, SchemaTemplateContext.composition, schemaInput);
+ if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ imageDao.update(image);
+ }
+ return validationData;
+ }
- return imageDetails == null ? null
- : imageDetails.getVersion() != null ? imageDetails.getVersion().trim() : null;
- }
+ @Override
+ public void updateImageQuestionnaire(String vspId, Version version, String componentId, String imageId, String questionnaireData) {
+ getImageEntity(vspId, version, componentId, imageId);
+ final ImageDetails image = JsonUtil.json2Object(questionnaireData, ImageDetails.class);
+ final String format = image.getFormat();
+ try {
+ if (format != null) {
+ ImageFormat.valueOf(format);
+ }
+ } catch (IllegalArgumentException exception) {
+ ErrorCode errorCode = ImageErrorBuilder.getInvalidImageFormatErrorBuilder();
+ throw new CoreException(errorCode, exception);
+ }
+ //Validate Format is read only for HEAT Onboarding
+ if (!vspInfoDao.isManual(vspId, version)) {
+ final QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version, componentId, imageId);
+ final String data = imageQuestionnaire.getData();
+ if (data != null) {
+ String retrievedFormat = JsonUtil.json2Object(data, ImageDetails.class).getFormat();
+ validateHeatVspImageUpdate("format", format, retrievedFormat);
+ }
+ }
+ if (!isImageVersionUnique(vspId, version, componentId, imageId, image)) {
+ ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageVersionErrorBuilder(image.getVersion(), componentId);
+ throw new CoreException(errorCode);
+ }
+ imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
+ }
- private ImageEntity getImageEntity(String vspId, Version version, String componentId,
- String imageId) {
+ private boolean isImageVersionUnique(String vspId, Version version, String componentId, String imageId, ImageDetails image) {
+ boolean isPresent = true;
+ if (image != null && image.getVersion() != null) {
+ Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId, version, componentId, null));
+ if (CollectionUtils.isNotEmpty(imageEntities)) {
+ imageEntities = imageEntities.stream().filter(
+ imageEntity -> image.getVersion().trim().equalsIgnoreCase(getImageVersion(vspId, version, componentId, imageEntity))
+ && !imageEntity.getId().equals(imageId)).collect(Collectors.toList());
+ isPresent = CollectionUtils.isEmpty(imageEntities);
+ }
+ }
+ return isPresent;
+ }
- ImageEntity imageEntity = imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
+ private String getImageVersion(String vspId, Version version, String componentId, ImageEntity imageEntity) {
+ QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version, componentId, imageEntity.getId());
+ ImageDetails imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(), ImageDetails.class);
+ return imageDetails == null ? null : imageDetails.getVersion() != null ? imageDetails.getVersion().trim() : null;
+ }
- VersioningUtil.validateEntityExistence(imageEntity, new ImageEntity(vspId, version, componentId,
- imageId), VspDetails.ENTITY_TYPE);
- return imageEntity;
- }
+ private ImageEntity getImageEntity(String vspId, Version version, String componentId, String imageId) {
+ ImageEntity imageEntity = imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
+ VersioningUtil.validateEntityExistence(imageEntity, new ImageEntity(vspId, version, componentId, imageId), VspDetails.ENTITY_TYPE);
+ return imageEntity;
+ }
- protected String getImageCompositionSchema(SchemaTemplateInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.image,
- schemaInput);
- }
+ protected String getImageCompositionSchema(SchemaTemplateInput schemaInput) {
+ return SchemaGenerator.generate(SchemaTemplateContext.composition, CompositionEntityType.image, schemaInput);
+ }
- protected String getImageQuestionnaireSchema(SchemaTemplateInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image,
- schemaInput);
- }
+ protected String getImageQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ return SchemaGenerator.generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image, schemaInput);
+ }
}