1 package org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel;
4 import org.openecomp.sdc.be.dao.api.ActionStatus;
5 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
6 import org.openecomp.sdc.be.model.category.CategoryDefinition;
7 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
8 import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
10 import javax.annotation.Resource;
11 import java.util.List;
13 import static org.openecomp.sdc.asdctool.impl.migration.v1707.MigrationUtils.handleError;
15 public class ServiceCategoriesMigration extends JsonModelMigration<CategoryDefinition> {
17 @Resource(name = "element-operation")
18 private IElementOperation elementOperation;
20 @Resource(name = "element-operation-migration")
21 private IElementOperation elementOperationMigration;
25 public String description() {
26 return "migrate services categories";
30 Either<List<CategoryDefinition>, ?> getElementsToMigrate() {
31 return elementOperation.getAllCategories(NodeTypeEnum.ServiceNewCategory, false).left().map(CategoriesUtils::filterOldCategories);
35 Either<CategoryDefinition, ?> getElementFromNewGraph(CategoryDefinition node) {
36 String categoryUid = UniqueIdBuilder.buildCategoryUid(node.getNormalizedName(), NodeTypeEnum.ServiceNewCategory);//in malformed graph there are some categories with different id but same normalized name. so in new graph they same id
37 return elementOperationMigration.getCategory(NodeTypeEnum.ServiceNewCategory, categoryUid);
41 boolean save(CategoryDefinition graphNode) {
42 return elementOperationMigration.createCategory(graphNode, NodeTypeEnum.ServiceNewCategory)
43 .either(savedCategory -> true,
44 err -> handleError(String.format("failed to save category %s. error: %s", graphNode.getName(), err.name())));
48 ActionStatus getNotFoundErrorStatus() {
49 return ActionStatus.COMPONENT_CATEGORY_NOT_FOUND;