aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java
diff options
context:
space:
mode:
authorandre.schmid <andre.schmid@est.tech>2022-04-13 11:21:15 +0100
committerMichael Morris <michael.morris@est.tech>2022-04-21 09:48:05 +0000
commit30ff812c65389f5ca4c91d9774d425e81ef62049 (patch)
treeb7d293c23621df6c1084b9ff7dbde9c7d7d888ac /openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java
parent225dabdf0812d1a3d9eb3a96740507744bb2b807 (diff)
Check if VLM is used before deleting
Checks if the VLM is in use by any VSP before allowing to delete it. Add unit tests for the delete method, considering the restriction. Applies minor refactors with related code. Change-Id: I4ff6ddf3959a4ca92ab68b29c8913fc6f0ebdb3c Issue-ID: SDC-3966 Signed-off-by: andre.schmid <andre.schmid@est.tech>
Diffstat (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java')
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java
new file mode 100644
index 0000000000..330a2dd4d1
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/exception/VendorLicenseModelExceptionSupplier.java
@@ -0,0 +1,87 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdcrests.vendorlicense.rest.exception;
+
+import static org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes.VLM_IS_CERTIFIED_DELETE_ERROR;
+import static org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes.VLM_IS_IN_USE_DELETE_ERROR;
+
+import java.util.List;
+import java.util.function.Supplier;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.common.errors.ErrorCode.ErrorCodeBuilder;
+import org.openecomp.sdc.vendorlicense.errors.VendorLicenseModelNotFoundErrorBuilder;
+
+/**
+ * Supplies exceptions happened for a Vendor License Model operation .
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class VendorLicenseModelExceptionSupplier {
+
+ /**
+ * Provides a could not find Vendor License Model exception.
+ *
+ * @param vlmId the Vendor License Model id
+ * @return a Supplier for the exception
+ */
+ public static Supplier<CoreException> couldNotFindVlm(final String vlmId) {
+ final ErrorCode errorCode = new VendorLicenseModelNotFoundErrorBuilder(vlmId).build();
+ return () -> new CoreException((errorCode));
+ }
+
+ /**
+ * Provides a cannot delete used Vendor License Model exception.
+ *
+ * @param vmlId the Vendor License Model id
+ * @param vspNameList the list of VSP names that uses the VLM
+ * @return a Supplier for the exception
+ */
+ public static Supplier<CoreException> cantDeleteUsedVlm(final String vmlId, final List<String> vspNameList) {
+ final String errorMsg = String.format(
+ "Vendor License Model '%s' is in use by %s Vendor Software Product(s) and cannot be deleted.",
+ vmlId, String.join(", ", vspNameList)
+ );
+ final ErrorCode errorCode = new ErrorCodeBuilder()
+ .withId(VLM_IS_IN_USE_DELETE_ERROR)
+ .withMessage(errorMsg)
+ .build();
+ return () -> new CoreException((errorCode));
+ }
+
+ /**
+ * Provides a cannot delete certified Vendor License Model exception.
+ *
+ * @param vmlId the Vendor License Model id
+ * @return a Supplier for the exception
+ */
+ public static Supplier<CoreException> cantDeleteCertifiedVlm(final String vmlId) {
+ final String errorMsg = String.format("Vendor License Model '%s' has been certified and cannot be deleted.", vmlId);
+ final ErrorCode errorCode = new ErrorCodeBuilder()
+ .withId(VLM_IS_CERTIFIED_DELETE_ERROR)
+ .withMessage(errorMsg)
+ .build();
+ return () -> new CoreException((errorCode));
+ }
+
+}