[sdc] update code of sdc
[sdc.git] / openecomp-be / tools / zusammen-tools / src / main / java / org / openecomp / core / tools / Commands / ResetOldVersion.java
1 package org.openecomp.core.tools.Commands;
2
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.ItemCassandraDao;
6 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
7 import org.openecomp.core.tools.loaders.VersionInfoCassandraLoader;
8 import org.openecomp.core.tools.loaders.zusammen.VspGeneralLoader;
9 import org.openecomp.core.tools.store.ElementHandler;
10 import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer;
11 import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
12 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
13 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
14 import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
15
16 import java.util.ArrayList;
17 import java.util.Collection;
18 import java.util.HashMap;
19 import java.util.List;
20 import java.util.Map;
21
22 public class ResetOldVersion {
23
24
25   public static Map<String, List<String>> itemVersionMap = new HashMap<>();
26
27   public static void reset(SessionContext context, String oldVersion) {
28
29
30
31     CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
32
33     loadItemVersionInfo(context);
34
35     Map<String, ElementEntity> generalElementMap =
36         VspGeneralLoader.load(context,
37              itemVersionMap);
38
39     generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,oldVersion));
40
41
42     itemVersionMap.entrySet().forEach(entry->entry.getValue().stream().filter
43         (version->generalElementMap.containsKey(context.getUser().getUserName()+"_"+entry.getKey()
44             +"_"+version)).forEach(version->ElementHandler.update(context,
45         entry.getKey(),version,generalElementMap.get(context.getUser().getUserName()+"_"+entry.getKey()
46             +"_"+version))));
47   }
48
49   private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion) {
50     elementEntity.getInfo().addProperty("oldVersion",oldVersion);
51   }
52
53
54   private static void loadItemVersionInfo(SessionContext context) {
55
56     List<String> items = new ArrayList<>();
57     System.setProperty("cassandra.dox.keystore", "dox");
58     VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
59     Collection<VersionInfoEntity> versions =
60         versionInfoCassandraLoader.list();
61
62     versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType().equals
63         (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
64         (versionInfoEntity
65             -> items.add(versionInfoEntity.getEntityId()));
66     System.setProperty("cassandra.dox.keystore", "zusammen_dox");
67     VersionCassandraDao versionCassandraDao = new VersionCassandraDao();
68
69     items
70         .forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(), new Id
71             (itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));
72
73   }
74
75   private static void addItemVersion(String itemId, Id versionId) {
76     if (!itemVersionMap.containsKey(itemId)) {
77       itemVersionMap.put(itemId, new ArrayList<>());
78     }
79     itemVersionMap.get(itemId).add(versionId.getValue());
80   }
81 }