e8e703bff0e0875e35944cb144eee7252783ec7b
[sdc.git] /
1 package org.openecomp.core.tools.Commands.exportdata;
2
3 import org.openecomp.core.tools.Commands.ExportDataCommand;
4 import org.openecomp.core.tools.store.VersionInfoCassandraLoader;
5 import org.openecomp.core.tools.store.VersionCassandraLoader;
6
7 import org.openecomp.core.tools.store.zusammen.datatypes.VersionEntity;
8 import org.openecomp.core.utilities.json.JsonUtil;
9 import org.openecomp.sdc.logging.api.Logger;
10 import org.openecomp.sdc.logging.api.LoggerFactory;
11 import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
12
13 import static java.io.File.separator;
14 import static java.nio.file.Files.*;
15 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
16 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.ROOT_DIRECTORY;
17
18 import java.nio.file.Path;
19 import java.nio.file.Paths;
20 import java.util.Set;
21
22 public class VersionHandler {
23     private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class);
24
25     public VersionHandler() {
26     }
27
28     public void loadVersions(Set<String> filteredItem) {
29         VersionCassandraLoader versionCassandraLoader = new VersionCassandraLoader();
30         versionCassandraLoader.list().forEach(versionEntity -> handleVersionEntity(versionEntity,filteredItem));
31         VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
32         versionInfoCassandraLoader.list().forEach(versionInfoEntity ->  handleVersionInfo(versionInfoEntity,filteredItem));
33     }
34
35     private void handleVersionEntity(VersionEntity versionEntity, Set<String> filteredItem) {
36         try {
37             String itemId = versionEntity.getItemId();
38             if (!filteredItem.isEmpty()  && !filteredItem.contains(itemId)){
39                 return;
40             }
41             String versionId = versionEntity.getVersionId();
42             String space = versionEntity.getSpace();
43             Path versionDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
44                     + separator + versionId + separator + space);
45             Path versionFilePath = Paths.get(versionDirectoryPath.toString() + separator + VERSION_FILE_PREFIX
46                     + versionId + JSON_POSTFIX);
47             if (notExists(versionDirectoryPath)) {
48                 createDirectories(versionDirectoryPath);
49             }
50             String versionJson = JsonUtil.object2Json(versionEntity);
51             write(versionFilePath, versionJson.getBytes());
52         } catch (Exception ex) {
53             logger.error(ex.getMessage(), ex);
54             ex.printStackTrace();
55         }
56
57     }
58
59     private void handleVersionInfo(VersionInfoEntity versionInfoEntity, Set<String> filteredItem) {
60         try {
61             String itemId = versionInfoEntity.getEntityId();
62             Path itemDirectory = Paths.get( ROOT_DIRECTORY + separator + itemId);
63             Path versionInfoFilePath = Paths.get(itemDirectory.toString() + separator + VERSION_INFO_FILE_PREFIX
64                     + itemId + JSON_POSTFIX);
65             if (exists(itemDirectory)) {
66                 String versionJson = JsonUtil.object2Json(versionInfoEntity);
67                 write(versionInfoFilePath, versionJson.getBytes());
68             }
69         } catch (Exception ex) {
70             logger.error(ex.getMessage(), ex);
71             ex.printStackTrace();
72         }
73
74     }
75 }