b8d82958c97a6330ba5ddbb577d4b97c3c6547cf
[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
21 public class VersionHandler {
22     private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class);
23
24     public VersionHandler() {
25     }
26
27     public void loadVersions(String filteredItem) {
28         VersionCassandraLoader versionCassandraLoader = new VersionCassandraLoader();
29         versionCassandraLoader.list().forEach(versionEntity -> handleVersionEntity(versionEntity,filteredItem));
30         VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
31         versionInfoCassandraLoader.list().forEach(versionInfoEntity ->  handleVersionInfo(versionInfoEntity,filteredItem));
32     }
33
34     private void handleVersionEntity(VersionEntity versionEntity, String filteredItem) {
35         try {
36             String itemId = versionEntity.getItemId();
37             if (filteredItem != null && !itemId.contains(filteredItem)){
38                 return;
39             }
40             String versionId = versionEntity.getVersionId();
41             String space = versionEntity.getSpace();
42             Path versionDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
43                     + separator + versionId + separator + space);
44             Path versionFilePath = Paths.get(versionDirectoryPath.toString() + separator + VERSION_FILE_PREFIX
45                     + versionId + JSON_POSTFIX);
46             if (notExists(versionDirectoryPath)) {
47                 createDirectories(versionDirectoryPath);
48             }
49             String versionJson = JsonUtil.object2Json(versionEntity);
50             write(versionFilePath, versionJson.getBytes());
51         } catch (Exception ex) {
52             logger.error(ex.getMessage(), ex);
53             ex.printStackTrace();
54         }
55
56     }
57
58     private void handleVersionInfo(VersionInfoEntity versionInfoEntity, String filteredItem) {
59         try {
60             String itemId = versionInfoEntity.getEntityId();
61             Path itemDirectory = Paths.get( ROOT_DIRECTORY + separator + itemId);
62             Path versionInfoFilePath = Paths.get(itemDirectory.toString() + separator + VERSION_INFO_FILE_PREFIX
63                     + itemId + JSON_POSTFIX);
64             if (exists(itemDirectory)) {
65                 String versionJson = JsonUtil.object2Json(versionInfoEntity);
66                 write(versionInfoFilePath, versionJson.getBytes());
67             }
68         } catch (Exception ex) {
69             logger.error(ex.getMessage(), ex);
70             ex.printStackTrace();
71         }
72
73     }
74 }