diff options
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java')
-rw-r--r-- | openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java index 9eea182609..710b731f8b 100644 --- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java +++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java @@ -1,9 +1,11 @@ package org.openecomp.core.tools.Commands.exportdata; +import com.amdocs.zusammen.datatypes.Id; import com.amdocs.zusammen.datatypes.SessionContext; import com.amdocs.zusammen.datatypes.item.Item; import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDao; import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDaoFactory; +import com.google.common.base.Strings; import org.openecomp.core.tools.Commands.ExportDataCommand; import org.openecomp.core.utilities.json.JsonUtil; import org.openecomp.sdc.logging.api.Logger; @@ -13,11 +15,14 @@ import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import java.util.Set; -import static java.nio.file.Files.*; import static java.io.File.separator; -import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*; +import static java.nio.file.Files.*; +import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.JSON_POSTFIX; public class ItemHandler { private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class); @@ -27,21 +32,42 @@ public class ItemHandler { ImportProperties.initParams(); } - public void createItemsData(SessionContext context, String filteredItem) throws URISyntaxException, IOException { + public void createItemsData(SessionContext context, Set<String> filteredItem) throws URISyntaxException, IOException { + final List<Item> items = new ArrayList<>(); + if (filteredItem.isEmpty()) { + items.addAll(getItemDao(context).list(context)); + } else { + Optional<Item> item = addItem(context, filteredItem.iterator().next(), items); + item.ifPresent(foundedItem -> { + Object vendorId = foundedItem.getInfo().getProperty("vendorId"); + if (vendorId != null) { + String vendorIdStr = vendorId.toString(); + addItem(context, vendorIdStr, items); + filteredItem.add(vendorIdStr); + } + }); + } + + items.parallelStream().forEach(item -> createItemDirectoryAndFiles(item, filteredItem)); + + } + - List<Item> items = getItemDao(context).list(context); - items.parallelStream().forEach(item -> createItemDirectoryAndFiles(item,filteredItem)); + private Optional<Item> addItem(SessionContext context, String filteredItem, List<Item> items) { + Optional<Item> item = getItemDao(context).get(context, new Id(filteredItem)); + item.ifPresent(itemData -> items.add(itemData)); + return item; } - private final void createItemDirectoryAndFiles(Item item,String filteredItem) { + private final void createItemDirectoryAndFiles(Item item, Set<String> filteredItem) { try { String itemId = item.getId().getValue(); - if (filteredItem != null && !itemId.contains(filteredItem)){ + if (!filteredItem.isEmpty() && !filteredItem.contains(itemId)) { return; } - Path itemPath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator + itemId); - Path itemFilePath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator + + Path itemPath = Paths.get(ImportProperties.ROOT_DIRECTORY + separator + itemId); + Path itemFilePath = Paths.get(ImportProperties.ROOT_DIRECTORY + separator + itemId + separator + itemId + JSON_POSTFIX); if (notExists(itemPath)) { createDirectories(itemPath); |