aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java37
1 files changed, 32 insertions, 5 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java
index c836e91b9b..15e9a77b15 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogic.java
@@ -23,12 +23,14 @@ package org.openecomp.sdc.be.components.impl;
import com.google.common.annotations.VisibleForTesting;
import fj.data.Either;
+import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum;
import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
import org.openecomp.sdc.be.components.validation.AccessValidations;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
+import org.openecomp.sdc.be.facade.operations.CatalogOperation;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentParametersView;
@@ -40,10 +42,18 @@ import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
import org.openecomp.sdc.common.log.wrappers.Logger;
+import org.openecomp.sdc.exception.ResponseFormat;
-import java.util.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
+import static org.openecomp.sdc.common.datastructure.FunctionalInterfaces.wrapWithTryCatch;
+
+
@org.springframework.stereotype.Component
public class ArchiveBusinessLogic {
@@ -54,13 +64,16 @@ public class ArchiveBusinessLogic {
private final ArchiveOperation archiveOperation;
private final ToscaOperationFacade toscaOperationFacade;
private final ComponentsUtils componentUtils;
+ private final CatalogOperation catalogOperations;
- public ArchiveBusinessLogic(JanusGraphDao janusGraphDao, AccessValidations accessValidations, ArchiveOperation archiveOperation, ToscaOperationFacade tof, ComponentsUtils componentsUtils) {
+ public ArchiveBusinessLogic(JanusGraphDao janusGraphDao, AccessValidations accessValidations, ArchiveOperation archiveOperation, ToscaOperationFacade tof, ComponentsUtils componentsUtils,
+ CatalogOperation catalogOperations) {
this.janusGraphDao = janusGraphDao;
this.accessValidations = accessValidations;
this.archiveOperation = archiveOperation;
this.toscaOperationFacade = tof;
this.componentUtils = componentsUtils;
+ this.catalogOperations = catalogOperations;
}
public void archiveComponent(String containerComponentType, String userId, String componentId) {
@@ -71,6 +84,8 @@ public class ArchiveBusinessLogic {
throw new ByActionStatusComponentException(result.right().value(), componentId);
}
this.auditAction(ArchiveOperation.Action.ARCHIVE, result.left().value(), user, containerComponentType);
+ // Send Archive Notification To Facade
+ wrapWithTryCatch(() -> sendNotificationToFacade(componentId, ChangeTypeEnum.ARCHIVE));
}
public void restoreComponent(String containerComponentType, String userId, String componentId) {
@@ -80,6 +95,8 @@ public class ArchiveBusinessLogic {
throw new ByActionStatusComponentException(result.right().value(), componentId);
}
this.auditAction(ArchiveOperation.Action.RESTORE, result.left().value(), user, containerComponentType);
+ // Send Archive Notification To Facade
+ wrapWithTryCatch(() -> sendNotificationToFacade(componentId, ChangeTypeEnum.RESTORE));
}
public List<String> onVspArchive(String userId, List<String> csarUuids){
@@ -100,7 +117,7 @@ public class ArchiveBusinessLogic {
for (String csarUuid : csarUuids) {
try {
- if (action.equals(ArchiveOperation.Action.ARCHIVE)) {
+ if (action == ArchiveOperation.Action.ARCHIVE) {
actionStatus = this.archiveOperation.onVspArchived(csarUuid);
} else {
actionStatus = this.archiveOperation.onVspRestored(csarUuid);
@@ -128,8 +145,6 @@ public class ArchiveBusinessLogic {
public Map<String, List<CatalogComponent>> getArchiveComponents(String userId, List<OriginTypeEnum> excludeTypes) {
try {
- accessValidations.validateUserExist(userId, "GET ARCHIVED COMPONENTS");
-
Either<List<CatalogComponent>, StorageOperationStatus> components = toscaOperationFacade.getCatalogOrArchiveComponents(false, excludeTypes);
if (components.isLeft()) {
List<CatalogComponent> comps = components.left().value();
@@ -174,4 +189,16 @@ public class ArchiveBusinessLogic {
}
}
}
+ protected Either<Component, ResponseFormat> sendNotificationToFacade(String componentId,
+ ChangeTypeEnum changeStatus) {
+ log.debug("build {} notification for facade start", changeStatus.name());
+ Either<Component, StorageOperationStatus> toscaElement = toscaOperationFacade.getToscaElement(componentId);
+ Component component = toscaElement.left()
+ .value();
+ ActionStatus status = catalogOperations.updateCatalog(changeStatus, component);
+ if (status != ActionStatus.OK) {
+ return Either.right(componentUtils.getResponseFormat(status));
+ }
+ return Either.left(component);
+ }
}