summaryrefslogtreecommitdiffstats
path: root/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
blob: 185e80030f646ce018afa5d297a82d46750cb917 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package org.openecomp.core.tools.Commands;

import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.ItemCassandraDao;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
import org.openecomp.core.tools.loaders.VersionInfoCassandraLoader;
import org.openecomp.core.tools.loaders.zusammen.VspGeneralLoader;
import org.openecomp.core.tools.store.ElementHandler;
import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer;
import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ResetOldVersion {


  public static Map<String, List<String>> itemVersionMap = new HashMap<>();

  public static void reset(SessionContext context, String oldVersion) {



    CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();

    loadItemVersionInfo(context);

    Map<String, ElementEntity> generalElementMap =
        VspGeneralLoader.load(context,
             itemVersionMap);

    generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,oldVersion));


    itemVersionMap.entrySet().forEach(entry->entry.getValue().stream().filter
        (version->generalElementMap.containsKey(context.getUser().getUserName()+"_"+entry.getKey()
            +"_"+version)).forEach(version->ElementHandler.update(context,
        entry.getKey(),version,generalElementMap.get(context.getUser().getUserName()+"_"+entry.getKey()
            +"_"+version))));
  }

  private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion) {
    elementEntity.getInfo().addProperty("oldVersion",oldVersion);
  }


  private static void loadItemVersionInfo(SessionContext context) {

    List<String> items = new ArrayList<>();
    System.setProperty("cassandra.dox.keystore", "dox");
    VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
    Collection<VersionInfoEntity> versions =
        versionInfoCassandraLoader.list();

    versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType().equals
        (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
        (versionInfoEntity
            -> items.add(versionInfoEntity.getEntityId()));
    System.setProperty("cassandra.dox.keystore", "zusammen_dox");
    VersionCassandraDao versionCassandraDao = new VersionCassandraDao();

    items
        .forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(), new Id
            (itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));

  }

  private static void addItemVersion(String itemId, Id versionId) {
    if (!itemVersionMap.containsKey(itemId)) {
      itemVersionMap.put(itemId, new ArrayList<>());
    }
    itemVersionMap.get(itemId).add(versionId.getValue());
  }
}