aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest
diff options
context:
space:
mode:
authorayalaben <Ayala.Benzvi@Amdocs.Com>2018-02-11 11:11:00 +0200
committerayalaben <ayala.benzvi@amdocs.com>2018-02-11 15:27:45 +0200
commitda603323ec3cdf4257707ac1cb4d5d657783ae9f (patch)
treea8e65ce8629da0e56d5ac7fa7993b518d360a761 /openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest
parent27fed258bd045e4af8cdc1181ebf3cef8d0822cc (diff)
Delete Item Draft
Change-Id: I13767ab6a7be82ae89f80d50b5857aabe6e55906 Issue-ID: SDC-1014 Signed-off-by: ayalaben <ayala.benzvi@amdocs.com>
Diffstat (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest')
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/VendorSoftwareProducts.java11
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java86
2 files changed, 57 insertions, 40 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/VendorSoftwareProducts.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/VendorSoftwareProducts.java
index d848d41f7c..60c68ef302 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/VendorSoftwareProducts.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/VendorSoftwareProducts.java
@@ -1,9 +1,6 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2018 European Support Limited
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -15,9 +12,9 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END=========================================================
*/
+
package org.openecomp.sdcrests.vsp.rest;
import io.swagger.annotations.Api;
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
index fa6c778995..7d1c5e1289 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2018 European Support Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+
package org.openecomp.sdcrests.vsp.rest.services;
import org.apache.commons.collections4.MapUtils;
@@ -96,6 +97,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.function.Predicate;
@@ -143,15 +145,16 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
try {
onboardingMethod = OnboardingMethod.valueOf(vspRequestDto.getOnboardingMethod());
} catch (IllegalArgumentException e) {
- throwUnknownOnboardingMethodException();
+ LOGGER.error("Error while creating VSP. Message: " + e.getMessage());
+ throwUnknownOnboardingMethodException(e);
}
- ItemCreationDto itemCreationDto = null;
+ ItemCreationDto itemCreationDto = null;
if (onboardingMethod == OnboardingMethod.NetworkPackage
- || onboardingMethod == OnboardingMethod.Manual) {
+ || onboardingMethod == OnboardingMethod.Manual) {
itemCreationDto = getItemCreationDto(vspRequestDto, user, onboardingMethod);
} else {
- throwUnknownOnboardingMethodException();
+ throwUnknownOnboardingMethodException(new IllegalArgumentException("Wrong parameter Onboarding Method"));
}
return Response.ok(itemCreationDto).build();
@@ -173,7 +176,7 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
Version version = versioningManager.create(item.getId(), new Version(), null);
VspDetails vspDetails =
- new MapVspDescriptionDtoToVspDetails().applyMapping(vspRequestDto, VspDetails.class);
+ new MapVspDescriptionDtoToVspDetails().applyMapping(vspRequestDto, VspDetails.class);
vspDetails.setId(item.getId());
vspDetails.setVersion(version);
vspDetails.setOnboardingMethod(vspRequestDto.getOnboardingMethod());
@@ -185,14 +188,14 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
itemCreationDto.setVersion(new MapVersionToDto().applyMapping(version, VersionDto.class));
activityLogManager.logActivity(new ActivityLogEntity(vspDetails.getId(), version,
- ActivityType.Create, user, true, "", ""));
+ ActivityType.Create, user, true, "", ""));
return itemCreationDto;
}
- private void throwUnknownOnboardingMethodException() {
+ private void throwUnknownOnboardingMethodException(IllegalArgumentException e) {
ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
.getInvalidOnboardingMethodErrorBuilder();
- throw new CoreException(onboardingMethodUpdateErrorCode);
+ throw new CoreException(onboardingMethodUpdateErrorCode,e);
}
@Override
@@ -200,12 +203,12 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
Predicate<Item> itemPredicate;
if (VersionStatus.Certified.name().equals(versionStatus)) {
itemPredicate = item -> ItemType.vsp.name().equals(item.getType())
- && item.getVersionStatusCounters().containsKey(VersionStatus.Certified);
+ && item.getVersionStatusCounters().containsKey(VersionStatus.Certified);
} else if (VersionStatus.Draft.name().equals(versionStatus)) {
itemPredicate = item -> ItemType.vsp.name().equals(item.getType())
- && item.getVersionStatusCounters().containsKey(VersionStatus.Draft)
- && userHasPermission(item.getId(), user);
+ && item.getVersionStatusCounters().containsKey(VersionStatus.Draft)
+ && userHasPermission(item.getId(), user);
} else {
itemPredicate = item -> ItemType.vsp.name().equals(item.getType());
@@ -282,9 +285,21 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
@Override
public Response deleteVsp(String vspId, String user) {
- vendorSoftwareProductManager.deleteVsp(vspId);
+ Item vsp = itemManager.get(vspId);
- return Response.ok().build();
+ Integer certifiedVersionsCounter = vsp.getVersionStatusCounters().get(VersionStatus.Certified);
+ if (Objects.isNull(certifiedVersionsCounter) || certifiedVersionsCounter == 0) {
+ itemManager.delete(vsp);
+ permissionsManager.deleteItemPermissions(vspId);
+ UniqueValueUtil.deleteUniqueValue(VENDOR_SOFTWARE_PRODUCT_NAME, vsp.getName());
+ notifyUsers(vspId, vsp.getName(), null, "VSP was deleted", user,
+ NotificationEventTypes.DELETE);
+
+ return Response.ok().build();
+ } else {
+ return Response.status(Response.Status.PRECONDITION_FAILED)
+ .entity(new Exception(Messages.DELETE_VSP_ERROR.getErrorMessage())).build();
+ }
}
@Override
@@ -296,20 +311,20 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
if (request.getAction() == VendorSoftwareProductAction.Submit) {
if (!permissionsManager.isAllowed(vspId, user, SUBMIT_ITEM_ACTION)) {
return Response.status(Response.Status.FORBIDDEN)
- .entity(new Exception(Messages.PERMISSIONS_ERROR.getErrorMessage())).build();
+ .entity(new Exception(Messages.PERMISSIONS_ERROR.getErrorMessage())).build();
}
String message = request.getSubmitRequest() == null ? "Submit"
- : request.getSubmitRequest().getMessage();
+ : request.getSubmitRequest().getMessage();
Optional<ValidationResponse> validationResponse = submit(vspId, version, message, user);
if (validationResponse.isPresent()) {
ValidationResponseDto validationResponseDto = new MapValidationResponseToDto()
- .applyMapping(validationResponse.get(), ValidationResponseDto.class);
+ .applyMapping(validationResponse.get(), ValidationResponseDto.class);
return Response.status(Response.Status.EXPECTATION_FAILED).entity(validationResponseDto)
- .build();
+ .build();
}
- notifyUsers(vspId, version, message, user, NotificationEventTypes.SUBMIT);
+ notifyUsers(vspId, null, version, message, user, NotificationEventTypes.SUBMIT);
} else if (request.getAction() == VendorSoftwareProductAction.Create_Package) {
return createPackage(vspId, version);
@@ -337,8 +352,8 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
String validationVspId = itemManager.list(item ->
ItemType.vsp.name().equals(item.getType()) && VALIDATION_VSP_NAME.equals(item.getName()))
.stream().findFirst().orElseThrow(() -> new IllegalStateException("Vsp with name %s "
- + "does not exist even though the name exists according to unique value util"))
- .getId();
+ + "does not exist even though the name exists according to unique value util"))
+ .getId();
Version validationVspVersion = versioningManager.list(validationVspId).iterator().next();
validationVsp = new ItemCreationDto();
@@ -383,12 +398,14 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
public Response getTranslatedFile(String vspId, String versionName, String user) {
List<Version> versions = versioningManager.list(vspId);
Version version;
- if (versionName == null) version = versions.stream().filter(ver -> VersionStatus.Certified == ver.getStatus())
- .max(Comparator.comparingDouble(o -> Double.parseDouble(o.getName())))
- .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build()));
- else {
+ if (versionName == null) {
+ version = versions.stream().filter(ver -> VersionStatus.Certified == ver.getStatus())
+ .max(Comparator.comparingDouble(o -> Double.parseDouble(o.getName())))
+ .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build()));
+ } else {
version = versions.stream().filter(ver -> versionName.equals(ver.getName()))
- .findFirst().orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build()));
+ .findFirst()
+ .orElseThrow(() -> new CoreException(new PackageNotFoundErrorBuilder(vspId).build()));
if (version.getStatus() != VersionStatus.Certified) {
throw new CoreException(new RequestedVersionInvalidErrorBuilder().build());
@@ -498,15 +515,18 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
return Optional.empty();
}
- private void notifyUsers(String itemId, Version version, String message,
+ private void notifyUsers(String itemId, String itemName, Version version, String message,
String userName, NotificationEventTypes eventType) {
Map<String, Object> eventProperties = new HashMap<>();
- eventProperties.put(ITEM_NAME, itemManager.get(itemId).getName());
+ eventProperties.put(ITEM_NAME, itemName == null ? itemManager.get(itemId).getName() : itemName);
eventProperties.put(ITEM_ID, itemId);
- Version ver = versioningManager.get(itemId, version);
- eventProperties.put(VERSION_NAME, ver.getName());
- eventProperties.put(VERSION_ID, ver.getId());
+ if (version != null) {
+ eventProperties.put(VERSION_NAME, version.getName() == null
+ ? versioningManager.get(itemId, version).getName()
+ : version.getName());
+ eventProperties.put(VERSION_ID, version.getId());
+ }
eventProperties.put(SUBMIT_DESCRIPTION, message);
eventProperties.put(PERMISSION_USER, userName);
@@ -526,8 +546,8 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
private final Map<String, Object> attributes;
private final String entityId;
- SyncEvent(String eventType, String originatorId,
- Map<String, Object> attributes, String entityId) {
+ SyncEvent(String eventType, String originatorId,
+ Map<String, Object> attributes, String entityId) {
this.eventType = eventType;
this.originatorId = originatorId;
this.attributes = attributes;