diff options
author | KrupaNagabhushan <krupa.nagabhushan@est.tech> | 2022-04-21 18:19:55 +0100 |
---|---|---|
committer | KrupaNagabhushan <krupa.nagabhushan@est.tech> | 2022-04-22 12:53:08 +0100 |
commit | 8a00bcdaa12cf68de158c7fd79929ec95e96c53f (patch) | |
tree | 96c7ca84409653c05b7be9143106159882cd743c | |
parent | a472f40284a862079edbef78cb5a5bd055edbb63 (diff) |
Delete VFC - restrict deletion of system deployed VFCs
Issue-ID: SDC-3981
Signed-off-by: KrupaNagabhushan <krupa.nagabhushan@est.tech>
Change-Id: Ib475bb4abbaabc072180a4f1ae85c7427bbbf771
3 files changed, 20 insertions, 1 deletions
diff --git a/catalog-be/src/main/docker/backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml b/catalog-be/src/main/docker/backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml index af517c5563..10cc6f6712 100644 --- a/catalog-be/src/main/docker/backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml +++ b/catalog-be/src/main/docker/backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml @@ -2633,4 +2633,13 @@ errors: code: 409, message: "Artifact type '%1' already exist.", messageId: "SVC4163" + } + + #---------SVC4164----------------------------- + # %1 - componentType + # %2 - component name + CANNOT_DELETE_SYSTEM_DEPLOYED_RESOURCES: { + code: 409, + message: "System deployed '%1' cannot be deleted '%2'", + messageId: "SVC4164" }
\ No newline at end of file diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java index 86d4e0aea1..f4952b6c0d 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java @@ -4223,6 +4223,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic { return componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(resourceStatus.right().value()), ""); } Resource resource = resourceStatus.left().value(); + if (isComponentSystemDeployed(resource)) { + throw new ByActionStatusComponentException(ActionStatus.CANNOT_DELETE_SYSTEM_DEPLOYED_RESOURCES, ComponentTypeEnum.RESOURCE.getValue(), + resource.getName()); + } StorageOperationStatus result = StorageOperationStatus.OK; lockComponent(resourceId, resource, "Mark resource to delete"); try { @@ -4244,6 +4248,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic { } } + private boolean isComponentSystemDeployed(Resource resource) { + return resource.getComponentMetadataDefinition().getMetadataDataDefinition().isNormative(); + } + public ResponseFormat deleteResourceByNameAndVersion(String resourceName, String version, User user) { ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NO_CONTENT); validateUserExists(user); diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java index 1862f85a47..922853e8f0 100644 --- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java @@ -129,5 +129,7 @@ public enum ActionStatus { //ArtifactType ARTIFACT_TYPE_ALREADY_EXIST, FAILED_CREATE_ARTIFACTS_TYPES, //TOSCA node types - INVALID_NODE_TYPES_YAML + INVALID_NODE_TYPES_YAML, + //system deployed resources + CANNOT_DELETE_SYSTEM_DEPLOYED_RESOURCES } |