c9212f91cad9da4d2c70c296fb44f2fa57bee93e
[sdc.git] /
1 package org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel;
2
3 import fj.Function;
4 import fj.data.Either;
5 import org.openecomp.sdc.asdctool.impl.migration.v1707.MigrationUtils;
6 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.FulfilledCapabilitiesMigrationService;
7 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.FulfilledRequirementsMigrationService;
8 import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.relations.RequirementsCapabilitiesMigrationService;
9 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
10 import org.openecomp.sdc.be.model.Component;
11 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
12 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
15
16 import javax.annotation.Resource;
17
18 import static org.openecomp.sdc.asdctool.impl.migration.v1707.MigrationUtils.handleError;
19
20 public abstract class ComponentMigration <T extends Component> extends JsonModelMigration<T> {
21
22     private static Logger LOGGER = LoggerFactory.getLogger(ComponentMigration.class);
23
24     @Resource(name = "tosca-operation-facade")
25     private ToscaOperationFacade toscaOperations;
26
27     @Resource(name = "req-cap-mig-service")
28     RequirementsCapabilitiesMigrationService<T> requirementsCapabilitiesMigrationService;
29
30     @Override
31     Either<T, StorageOperationStatus> save(T element) {
32         LOGGER.debug(String.format("creating component %s in new graph", element.getName()));
33         return toscaOperations.createToscaComponent(element).right().map(err -> handleError(err, String.format("failed to create component %s.", element.getName())));
34
35     }
36
37     @Override
38     Either<T, StorageOperationStatus> getElementFromNewGraph(T element) {
39         LOGGER.debug(String.format("checking if component %s already exists on new graph", element.getName()));
40         return toscaOperations.getToscaElement(element.getUniqueId(), JsonParseFlagEnum.ParseMetadata);
41     }
42
43     @Override
44     public StorageOperationStatus getNotFoundErrorStatus() {
45         return StorageOperationStatus.NOT_FOUND;
46     }
47
48 }