Delete Item Draft 45/31245/3
authorayalaben <Ayala.Benzvi@Amdocs.Com>
Sun, 11 Feb 2018 09:11:00 +0000 (11:11 +0200)
committerayalaben <ayala.benzvi@amdocs.com>
Sun, 11 Feb 2018 13:27:45 +0000 (15:27 +0200)
Change-Id: I13767ab6a7be82ae89f80d50b5857aabe6e55906
Issue-ID: SDC-1014
Signed-off-by: ayalaben <ayala.benzvi@amdocs.com>
27 files changed:
onboarding/pom.xml
openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/VendorLicenseModels.java
openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/VendorLicenseModelsImpl.java
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
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
openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/ItemPermissionsManager.java
openecomp-be/backend/openecomp-sdc-item-permissions-manager/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsManagerImpl.java
openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java
openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml
openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-api/src/main/java/org/openecomp/sdc/itempermissions/PermissionsServices.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-api/src/main/java/org/openecomp/sdc/itempermissions/dao/ItemPermissionsDao.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/ItemPermissionsDaoImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/java/org/openecomp/sdc/itempermissions/servlet/PermissionsFilter.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/src/main/java/org/openecomp/sdc/itempermissions/impl/PermissionsRulesImpl.java
openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/src/main/java/org/openecomp/sdc/itempermissions/impl/types/PermissionActionTypes.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java
openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/ItemManager.java
openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/dao/ItemDao.java
openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/src/main/java/org/openecomp/sdc/versioning/types/NotificationEventTypes.java
openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/zusammen/ItemZusammenDaoImpl.java
openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/impl/ItemManagerImpl.java
openecomp-be/tools/zusammen-tools/pom.xml

index 5ed5e4b..04624ad 100644 (file)
         <ws.rs.version>2.0.1</ws.rs.version>  <!--  New version 2.0.1 to fix blackduck violation Failing with comiplation issues-->
         <zusammen.version>0.3.0</zusammen.version>
         <zusammen-state-store.version>0.3.0</zusammen-state-store.version>
-        <zusammen-collaboration-store.version>0.3.0</zusammen-collaboration-store.version>
+        <zusammen-collaboration-store.version>0.3.1</zusammen-collaboration-store.version>
         <zusammen-index-store.version>0.3.0</zusammen-index-store.version>
         <pmd.version>5.8.1</pmd.version>
         <build.tools.version>${project.version}</build.tools.version>
index 9b1c096..dc17b49 100644 (file)
@@ -1,23 +1,20 @@
-/*-
- * ============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
- * 
+ *
  *      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.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdcrests.vendorlicense.rest;
 
 import io.swagger.annotations.Api;
@@ -74,6 +71,14 @@ public interface VendorLicenseModels {
                               @NotNull(message = USER_MISSING_ERROR_MSG)
                               @HeaderParam(RestConstants.USER_ID_HEADER_PARAM) String user);
 
+  @DELETE
+  @Path("/{vlmId}")
+  @ApiOperation(value = "Delete vendor license model")
+  Response deleteLicenseModel(
+            @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+            @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(RestConstants.USER_ID_HEADER_PARAM)
+                    String user);
+
   @PUT
   @Path("/{vlmId}/versions/{versionId}")
   @ApiOperation(value = "Update vendor license model")
@@ -96,15 +101,6 @@ public interface VendorLicenseModels {
       @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(RestConstants.USER_ID_HEADER_PARAM)
           String user);
 
-  @DELETE
-  @Path("/{vlmId}/versions/{versionId}")
-  @ApiOperation(value = "Delete vendor license model")
-  Response deleteLicenseModel(
-      @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
-      @ApiParam(value = "Vendor license model version Id") @PathParam
-          ("versionId") String versionId,
-      @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(RestConstants.USER_ID_HEADER_PARAM)
-          String user);
 
   @PUT
   @Path("/{vlmId}/versions/{versionId}/actions")
index 68b387e..fd89989 100644 (file)
@@ -1,23 +1,20 @@
-/*-
- * ============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
- * 
+ *
  *      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.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdcrests.vendorlicense.rest.services;
 
 import org.openecomp.core.util.UniqueValueUtil;
@@ -68,6 +65,7 @@ import javax.inject.Named;
 import javax.ws.rs.core.Response;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.function.Predicate;
 
@@ -201,9 +199,23 @@ public class VendorLicenseModelsImpl implements VendorLicenseModels {
   }
 
   @Override
-  public Response deleteLicenseModel(String vlmId, String versionId, String user) {
-    vendorLicenseManager.deleteVendorLicenseModel(vlmId, new Version(versionId));
-    return Response.ok().build();
+  public Response deleteLicenseModel(String vlmId, String user) {
+    Item vlm = itemManager.get(vlmId);
+
+    Integer certifiedVersionsCounter = vlm.getVersionStatusCounters().get(VersionStatus.Certified);
+    if (Objects.isNull(certifiedVersionsCounter) || certifiedVersionsCounter == 0) {
+      itemManager.delete(vlm);
+      permissionsManager.deleteItemPermissions(vlmId);
+      UniqueValueUtil
+          .deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, vlm.getName());
+      notifyUsers(vlmId, vlm.getName(), null, "VLM was deleted", user,
+          NotificationEventTypes.DELETE);
+
+      return Response.ok().build();
+    } else {
+      return Response.status(Response.Status.PRECONDITION_FAILED)
+          .entity(new Exception(Messages.DELETE_VLM_ERROR.getErrorMessage())).build();
+    }
   }
 
   @Override
@@ -220,7 +232,7 @@ public class VendorLicenseModelsImpl implements VendorLicenseModels {
           request.getSubmitRequest() == null ? "Submit" : request.getSubmitRequest().getMessage();
       submit(vlmId, version, message, user);
 
-      notifyUsers(vlmId, version, message, user, NotificationEventTypes.SUBMIT);
+      notifyUsers(vlmId, null, version, message, user, NotificationEventTypes.SUBMIT);
 
     }
     return Response.ok().build();
@@ -246,15 +258,18 @@ public class VendorLicenseModelsImpl implements VendorLicenseModels {
     }
   }
 
-  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);
@@ -274,8 +289,8 @@ public class VendorLicenseModelsImpl implements VendorLicenseModels {
     private Map<String, Object> attributes;
     private String entityId;
 
-    public 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;
index d848d41..60c68ef 100644 (file)
@@ -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;
index fa6c778..7d1c5e1 100644 (file)
@@ -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;
index 726695b..838530a 100644 (file)
@@ -134,6 +134,11 @@ public class ItemPermissionsManagerImpl implements ItemPermissionsManager {
     return permissionsServices.getUserItemPermiission(itemId, userId);
   }
 
+  @Override
+  public void deleteItemPermissions(String itemId) {
+    permissionsServices.deleteItemPermissions(itemId);
+  }
+
   private class PermissionEvent implements Event {
 
     private String eventType;
index f994652..9948438 100644 (file)
@@ -42,6 +42,9 @@ public enum Messages {
   PERMISSIONS_ERROR("Permissions Error. The user does not have permission to perform this action."),
   PERMISSIONS_OWNER_ERROR("Permissions Error. Only one owner is allowed."),
 
+  DELETE_VSP_ERROR("VSP is in use and cannot be deleted."),
+  DELETE_VLM_ERROR("VLM is in use and cannot be deleted."),
+
   ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"),
   VES_ZIP_SHOULD_CONTAIN_YML_ONLY(
       "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML files" +
index d90c9a3..2c9fb4a 100644 (file)
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>com.amdocs.zusammen.plugin</groupId>
             <artifactId>zusammen-collaboration-cassandra-plugin</artifactId>
-            <version>${zusammen.version}</version>
+            <version>${zusammen-collaboration-store.version}</version>
             <scope>runtime</scope>
             <exclusions>
                 <exclusion>
index 7525a64..83bbc5b 100644 (file)
@@ -108,6 +108,15 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
     return response.getValue();
   }
 
+  @Override
+  public void deleteItem(SessionContext context, Id itemId){
+    Response<Void> response = itemAdaptorFactory.createInterface(context).delete(context, itemId);
+    if (!response.isSuccessful()) {
+      throw new SdcRuntimeException(
+          "Failed to delete Item. message:" + response.getReturnCode().toString());
+    }
+  }
+
   @Override
   public void updateItem(SessionContext context, Id itemId, Info info) {
     Response<Void> response =
index cd49ca3..968ff28 100644 (file)
@@ -190,6 +190,11 @@ public class ZusammenAdaptorImpl implements ZusammenAdaptor {
     return connector.createItem(context, info);
   }
 
+  @Override
+  public void deleteItem(SessionContext context, Id itemId){
+    connector.deleteItem(context,itemId);
+  }
+
   @Override
   public void updateItem(SessionContext context, Id itemId, Info info) {
     connector.updateItem(context, itemId, info);
index e1a9d1c..8c62aa0 100644 (file)
@@ -38,7 +38,7 @@ public class ItemPermissionsDaoImpl implements ItemPermissionsDao {
   }
 
   @Override
-  public String getUserItemPermiission(String itemId, String userId) {
+  public String getUserItemPermission(String itemId, String userId) {
 
     ResultSet result =  accessor.getUserItemPermission(itemId,userId);
     if (result.getAvailableWithoutFetching() < 1) {
@@ -47,6 +47,11 @@ public class ItemPermissionsDaoImpl implements ItemPermissionsDao {
     return result.one().getString(0);
   }
 
+  @Override
+  public void deleteItemPermissions(String itemId) {
+   accessor.deleteItemPermissions(itemId);
+  }
+
 
   @Accessor
   interface ItemPermissionsAccessor {
@@ -62,5 +67,9 @@ public class ItemPermissionsDaoImpl implements ItemPermissionsDao {
     @Query("insert into dox.item_permissions (item_id,user_id,permission) values (?,?,?)")
     void addPermission(String itemId,String userId, String permission);
 
+    @Query("delete from dox.item_permissions where item_id=?")
+    void deleteItemPermissions(String itemId);
+
+
   }
 }
index ae40ea8..08b51ee 100644 (file)
@@ -53,7 +53,7 @@ public class PermissionsServicesImpl implements PermissionsServices {
   @Override
   public boolean isAllowed(String itemId,String userId,String action) {
 
-    String userPermission = permissionsDao.getUserItemPermiission(itemId,userId);
+    String userPermission = permissionsDao.getUserItemPermission(itemId,userId);
     return permissionsRules.isAllowed(userPermission,action);
   }
 
@@ -64,7 +64,12 @@ public class PermissionsServicesImpl implements PermissionsServices {
 
   @Override
   public String getUserItemPermiission(String itemId, String userId) {
-    return permissionsDao.getUserItemPermiission(itemId,userId);
+    return permissionsDao.getUserItemPermission(itemId,userId);
+  }
+
+  @Override
+  public void deleteItemPermissions(String itemId) {
+    permissionsDao.deleteItemPermissions(itemId);
   }
 
 }
index 4a8f446..baafb4a 100644 (file)
@@ -27,6 +27,7 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.HttpMethod;
 import java.io.IOException;
 
 /**
@@ -63,7 +64,7 @@ public class PermissionsFilter implements Filter {
 
 
     String method = servletRequest.getMethod();
-    if (method.equals("POST") || method.equals("PUT")) {
+    if (method.equals(HttpMethod.POST) || method.equals(HttpMethod.PUT) || method.equals(HttpMethod.DELETE)) {
 
       String userId = servletRequest.getHeader("USER_ID");
       String itemId = parseItemIdFromPath(servletRequest.getPathInfo());
index 1f56c10..f80379a 100644 (file)
@@ -19,109 +19,115 @@ import static org.openecomp.sdc.itempermissions.errors.PermissionsErrorMessages.
 public class PermissionsRulesImpl implements PermissionsRules {
 
 
-  @Override
-  public boolean isAllowed(String permission, String action) {
+    @Override
+    public boolean isAllowed(String permission, String action) {
 
-    if (permission == null) {
-      return false;
-    }
-    try {
-      PermissionTypes.valueOf(permission);
-    } catch (IllegalArgumentException ex) {
-      throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
-    }
+        if (permission == null) {
+            return false;
+        }
+        try {
+            PermissionTypes.valueOf(permission);
+        } catch (IllegalArgumentException ex) {
+            throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
+        }
 
-    try {
-      switch (PermissionActionTypes.valueOf(action)) {
-        case Create_Item:
-          return true;
-
-        case Edit_Item:
-          if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
-              (PermissionTypes.Owner.name())) {
-            return true;
-          }
-          break;
-        case Commit_Item:
-          if (permission.equals(PermissionTypes.Contributor.name()) ||  permission.equals
-              (PermissionTypes.Owner.name())) {
-          return true;
+        try {
+            switch (PermissionActionTypes.valueOf(action)) {
+                case Create_Item:
+                    return true;
+
+                case Edit_Item:
+                    if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
+                            (PermissionTypes.Owner.name())) {
+                        return true;
+                    }
+                    break;
+                case Commit_Item:
+                    if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
+                            (PermissionTypes.Owner.name())) {
+                        return true;
+                    }
+                    break;
+                case Delete_Item:
+                    if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
+                            (PermissionTypes.Owner.name())) {
+                        return true;
+                    }
+                    break;
+
+                case Change_Item_Permissions:
+                    if (permission.equals(PermissionTypes.Owner.name())) {
+                        return true;
+                    }
+                    break;
+
+                case Submit_Item:
+                    if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
+                            (PermissionTypes.Owner.name())) {
+                        return true;
+                    }
+                    break;
+
+                default:
+                    return false;
+            }
+        } catch (IllegalArgumentException ex) {
+            throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
         }
-          break;
-
-        case Change_Item_Permissions:
-          if (permission.equals(PermissionTypes.Owner.name())) {
-            return true;
-          }
-          break;
-
-        case Submit_Item:
-          if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
-              (PermissionTypes.Owner.name())) {
-            return true;
-          }
-          break;
-
-        default:
-          return false;
-      }
-    } catch (IllegalArgumentException ex) {
-      throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
-    }
 
-    return false;
-  }
+        return false;
+    }
 
-  @Override
-  public void executeAction(String itemId, String userId, String action) {
-    try {
-      switch (PermissionActionTypes.valueOf(action)) {
-        case Create_Item:
-          caseCreateItem(userId,itemId);
-          break;
+    @Override
+    public void executeAction(String itemId, String userId, String action) {
+        try {
+            switch (PermissionActionTypes.valueOf(action)) {
+                case Create_Item:
+                    caseCreateItem(userId, itemId);
+                    break;
 
-        case Change_Item_Permissions:
-          break;
+                case Change_Item_Permissions:
+                    break;
 
-        case Edit_Item:
-          break;
+                case Edit_Item:
+                    break;
 
-        case Submit_Item:
-          break;
+                case Submit_Item:
+                    break;
 
-        default:
-      }
-    } catch (IllegalArgumentException ex) {
-      throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
-    }
-  }
-
-  @Override
-  public void updatePermission(String itemId,String currentUserId, String permission, Set<String>
-      addedUsersIds,Set<String> removedUsersIds) {
-    try {
-      PermissionTypes.valueOf(permission);
-    } catch (IllegalArgumentException ex) {
-      throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
+                default:
+            }
+        } catch (IllegalArgumentException ex) {
+            throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
+        }
     }
 
-    if (permission.equals(PermissionTypes.Owner.name())) {
+    @Override
+    public void updatePermission(String itemId, String currentUserId, String permission, Set<String>
+            addedUsersIds, Set<String> removedUsersIds) {
+        try {
+            PermissionTypes.valueOf(permission);
+        } catch (IllegalArgumentException ex) {
+            throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
+        }
+
+        if (permission.equals(PermissionTypes.Owner.name())) {
 
-      HashSet<String> currentOwner = new HashSet<String>();
-      currentOwner.add(currentUserId);
+            HashSet<String> currentOwner = new HashSet<>();
+            currentOwner.add(currentUserId);
+
+            PermissionsServicesFactory.getInstance().createInterface()
+                    .updateItemPermissions(itemId, PermissionTypes.Contributor.name(),
+                            currentOwner, new HashSet<String>());
+        }
+    }
 
-      PermissionsServicesFactory.getInstance().createInterface()
-          .updateItemPermissions(itemId,PermissionTypes.Contributor.name(),
-          currentOwner,new HashSet<String>());
+    protected void caseCreateItem(String userId, String itemId) {
+        HashSet<String> ownerId = new HashSet<>();
+        ownerId.add(userId);
+        PermissionsServicesFactory.getInstance().createInterface()
+                .updateItemPermissions(itemId, PermissionTypes.Owner.name(), ownerId,
+                        new HashSet<String>());
     }
-  }
-
-  protected void caseCreateItem(String userId,String itemId) {
-    HashSet<String> ownerId = new HashSet<String>();
-    ownerId.add(userId);
-    PermissionsServicesFactory.getInstance().createInterface()
-        .updateItemPermissions(itemId, PermissionTypes.Owner.name(), ownerId,
-            new HashSet<String>());
-  }
 
 }
index e96f8e2..1d7d66e 100644 (file)
@@ -22,7 +22,7 @@
         <dependency>
             <groupId>com.amdocs.zusammen.plugin</groupId>
             <artifactId>zusammen-collaboration-cassandra-plugin</artifactId>
-            <version>${zusammen.version}</version>
+            <version>${zusammen-collaboration-store.version}</version>
         </dependency>
         <dependency>
             <groupId>org.openecomp.sdc</groupId>