[SDC] Onboarding 1710 rebase.
[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.VersionCassandraDao;
6 import org.openecomp.core.tools.store.VersionInfoCassandraLoader;
7 import org.openecomp.core.tools.store.VspGeneralLoader;
8 import org.openecomp.core.tools.store.ElementHandler;
9 import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer;
10 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
11 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
12 import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
13
14 import java.util.*;
15
16 public class ResetOldVersion {
17
18
19   public static Map<String, List<String>> itemVersionMap = new HashMap<>();
20
21   public static int count =0;
22   public static void reset(SessionContext context, String oldVersion,String emptyOldVersion) {
23
24
25
26     CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
27
28     loadItemVersionInfo(context);
29
30     Map<String, ElementEntity> generalElementMap =
31         VspGeneralLoader.load(context,
32              itemVersionMap);
33
34     generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,
35         oldVersion,"true".equals(emptyOldVersion)));
36
37
38     itemVersionMap.entrySet().forEach(entry->entry.getValue().stream().filter
39         (version->generalElementMap.containsKey(context.getUser().getUserName()+"_"+entry.getKey()
40             +"_"+version)).forEach(version->ElementHandler.update(context,
41         entry.getKey(),version,generalElementMap.get(context.getUser().getUserName()+"_"+entry.getKey()
42             +"_"+version))));
43
44     System.out.println("nymber of element updated:"+count);
45
46   }
47
48   private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion,
49                                            boolean emptyOldVersion) {
50
51     if(!emptyOldVersion){
52       elementEntity.getInfo().addProperty("oldVersion",oldVersion);
53       count++;
54     }else if(elementEntity.getInfo().getProperty("oldVersion")== null || ""
55         .equals(elementEntity.getInfo().getProperty("oldVersion"))){
56       elementEntity.getInfo().addProperty("oldVersion",oldVersion);
57       count++;
58     }
59
60
61   }
62
63
64   private static void loadItemVersionInfo(SessionContext context) {
65
66     List<String> items = new ArrayList<>();
67     System.setProperty("cassandra.dox.keystore", "dox");
68     VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
69     Collection<VersionInfoEntity> versions =
70         versionInfoCassandraLoader.list();
71
72     versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType().equals
73         (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
74         (versionInfoEntity
75             -> items.add(versionInfoEntity.getEntityId()));
76     System.setProperty("cassandra.dox.keystore", "zusammen_dox");
77     VersionCassandraDao versionCassandraDao = new VersionCassandraDao();
78
79     items
80         .forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(), new Id
81             (itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));
82
83   }
84
85   private static void addItemVersion(String itemId, Id versionId) {
86     if (!itemVersionMap.containsKey(itemId)) {
87       itemVersionMap.put(itemId, new ArrayList<>());
88     }
89     itemVersionMap.get(itemId).add(versionId.getValue());
90   }
91 }