aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store')
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java23
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java13
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/HealingHandler.java54
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VersionCassandraLoader.java6
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java21
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/HealingEntity.java78
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/VersionEntity.java4
7 files changed, 168 insertions, 31 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java
index c41b46ea14..fcc67e11d0 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/CassandraElementRepository.java
@@ -34,7 +34,12 @@ import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
import java.lang.reflect.Type;
import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
public class CassandraElementRepository {
@@ -61,18 +66,18 @@ public class CassandraElementRepository {
ElementEntity element) {
Row row = getElementAccessor(context).get(
elementContext.getSpace(),
- elementContext.getItemId().toString(),
+ elementContext.getItemId().getValue(),
getVersionId(elementContext),
- element.getId().toString()).one();
+ element.getId().getValue()).one();
return row == null ? Optional.empty() : Optional.of(getElementEntity(element, row));
}
private String getVersionId(ElementEntityContext elementContext) {
- return elementContext.getChangeRef() == null
- ? elementContext.getVersionId().toString()
- : elementContext.getChangeRef();
+ return elementContext.getRevisionId() == null
+ ? elementContext.getVersionId().getValue()
+ : elementContext.getRevisionId().getValue();
}
@@ -92,7 +97,7 @@ public class CassandraElementRepository {
private void updateElement(SessionContext context, ElementEntityContext elementContext,
ElementEntity element) {
- if (elementContext.getChangeRef() == null) {
+ if (elementContext.getRevisionId() == null) {
getElementAccessor(context).update(
JsonUtil.object2Json(element.getInfo()),
@@ -113,7 +118,7 @@ public class CassandraElementRepository {
element.getVisualization(),
elementContext.getSpace(),
elementContext.getItemId().toString(),
- elementContext.getChangeRef(),
+ elementContext.getRevisionId().getValue(),
element.getId().toString());
}
}
@@ -154,7 +159,7 @@ public class CassandraElementRepository {
getVersionId(elementContext)).one();
return row == null
? new HashSet<>()
- : row.getSet(CassandraElementRepository.VersionElementsField.ELEMENT_IDS, String.class);
+ : row.getSet(VersionElementsField.ELEMENT_IDS, String.class);
}
/*
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
index 5c72c95f49..d8929ea720 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/ElementHandler.java
@@ -2,7 +2,6 @@ package org.openecomp.core.tools.store;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
@@ -11,23 +10,17 @@ public class ElementHandler {
private static final String GLOBAL_USER = "GLOBAL_USER";
public static void update(SessionContext context,
- String itemId, String versionId, String changeRef,
+ String itemId, String versionId, String revisionId,
ElementEntity elementEntity) {
ElementEntityContext elementContext;
CassandraElementRepository cassandraElementRepository = new CassandraElementRepository();
- if (changeRef == null) {
+ if (revisionId == null) {
elementContext = new ElementEntityContext(GLOBAL_USER, new Id(itemId),
- new Id(versionId));
+ new Id(versionId));
- } else {
- elementContext = new ElementEntityContext(GLOBAL_USER, new ElementContext(new Id(itemId),
- new Id(versionId),
- changeRef));
}
- cassandraElementRepository.update(context, elementContext, elementEntity);
-
}
}
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/HealingHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/HealingHandler.java
new file mode 100644
index 0000000000..78bbdf069e
--- /dev/null
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/HealingHandler.java
@@ -0,0 +1,54 @@
+package org.openecomp.core.tools.store;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.core.tools.store.zusammen.datatypes.HealingEntity;
+
+import java.util.ArrayList;
+
+/**
+ * Created by ayalaben on 10/15/2017
+ */
+public class HealingHandler {
+
+ private static NoSqlDb nnoSqlDb = NoSqlDbFactory.getInstance().createInterface();
+ private static HealingAccessor accessor =
+ nnoSqlDb.getMappingManager().createAccessor(HealingAccessor.class);
+
+
+ public void populateHealingTable(ArrayList<HealingEntity> healingEntities) {
+ healingEntities.forEach(healingEntity -> {
+ if (isHealingRecordExist(healingEntity)) {
+ accessor.updateFlag(healingEntity.getHealingFlag(), healingEntity.getSpace(),
+ healingEntity.getItemId(), healingEntity.getVersionId());
+ } else {
+ accessor.create(healingEntity.getSpace(), healingEntity.getItemId(),
+ healingEntity.getVersionId(), healingEntity.getHealingFlag(),
+ healingEntity.getOldVersion());
+ }
+ });
+ }
+
+ private boolean isHealingRecordExist(HealingEntity healingEntity) {
+ return accessor.getFlag(healingEntity.getSpace(), healingEntity.getItemId(),
+ healingEntity.getVersionId()).getAvailableWithoutFetching() == 1;
+ }
+
+ @Accessor
+ interface HealingAccessor {
+
+ @Query("SELECT healing_needed FROM healing WHERE space=? AND item_id=? AND version_id=?")
+ ResultSet getFlag(String space, String itemId, String versionId);
+
+ @Query("Insert into healing (space, item_id, version_id, healing_needed, old_version) " +
+ "values (?,?,?,?,?)")
+ void create(String space, String itemId, String versionId, boolean flag, String oldVersion);
+
+ @Query("UPDATE healing SET healing_needed=? WHERE space=? AND item_id=? AND version_id=?")
+ void updateFlag(boolean flag, String space, String itemId, String versionId);
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VersionCassandraLoader.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VersionCassandraLoader.java
index 851e92dcca..fd9dc25daa 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VersionCassandraLoader.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VersionCassandraLoader.java
@@ -20,6 +20,7 @@
package org.openecomp.core.tools.store;
+import com.datastax.driver.core.ResultSet;
import com.datastax.driver.mapping.Mapper;
import com.datastax.driver.mapping.Result;
import com.datastax.driver.mapping.annotations.Accessor;
@@ -60,6 +61,8 @@ public class VersionCassandraLoader {
return accessor.getAll();
}
+ public ResultSet listItemVersion() { return accessor.getAllItemVersion();}
+
@Accessor
interface VersionAccessor {
@@ -74,5 +77,8 @@ public class VersionCassandraLoader {
@Query("select * from zusammen_dox.version ")
@QueryParameters(fetchSize = 400)
Result<VersionEntity> getAll();
+
+ @Query("select space,item_id,version_id from zusammen_dox.version ")
+ ResultSet getAllItemVersion();
}
}
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
index 1d9d2d9774..b8620b8283 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
@@ -4,14 +4,13 @@ import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.item.Info;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
-import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Objects;
+import java.util.Optional;
public class VspGeneralLoader {
@@ -56,24 +55,24 @@ public class VspGeneralLoader {
for (Map.Entry<String, List<String>> entry : vspItemChangeRefssMap.entrySet()) {
- for (String changeRef : entry.getValue()) {
+ for (String revisionId : entry.getValue()) {
itemId = new Id(entry.getKey());
- entityId = getEntityIdByInfoNameValue(context, itemId, null, changeRef,null, NAME,
+ entityId = getEntityIdByInfoNameValue(context, itemId, null, revisionId,null, NAME,
GENERAL);
if (entityId != null) {
ElementEntityContext elementContext = new ElementEntityContext(
context.getUser().getUserName(),
itemId,
null);
- elementContext.setChangeRef(changeRef);
+ elementContext.setRevisionId(new Id(revisionId));
Optional<ElementEntity> result =
cassandraElementRepository.get(context, elementContext,
new ElementEntity(entityId));
if (result.isPresent()) {
- elementEntityMap.put(buildKey(context, entry, changeRef), result.get());
+ elementEntityMap.put(buildKey(context, entry, revisionId), result.get());
}
}
}
@@ -90,7 +89,7 @@ public class VspGeneralLoader {
private static Id getEntityIdByInfoNameValue(SessionContext context,
Id itemId,
Id versionId,
- String changeRef,
+ String revisionId,
Id elementId,
String name,
String value) {
@@ -100,8 +99,8 @@ public class VspGeneralLoader {
context.getUser().getUserName(),
itemId,
versionId);
- if (changeRef != null) {
- elementContext.setChangeRef(changeRef);
+ if (revisionId != null) {
+ elementContext.setRevisionId(new Id(revisionId));
}
Optional<ElementEntity> result =
cassandraElementRepository.get(context, elementContext,
@@ -113,8 +112,8 @@ public class VspGeneralLoader {
context.getUser().getUserName(),
itemId,
versionId);
- if(changeRef!= null){
- subElementContext.setChangeRef(changeRef);
+ if(revisionId!= null){
+ subElementContext.setRevisionId(new Id(revisionId));
}
Optional<ElementEntity> subElementEntityOptional =
cassandraElementRepository.get(context, subElementContext,
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/HealingEntity.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/HealingEntity.java
new file mode 100644
index 0000000000..8c95f795a6
--- /dev/null
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/HealingEntity.java
@@ -0,0 +1,78 @@
+package org.openecomp.core.tools.store.zusammen.datatypes;
+
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+
+/**
+ * Created by ayalaben on 10/15/2017
+ */
+@Table(keyspace = "dox", name = "healing")
+public class HealingEntity {
+ @Column(name = "space")
+ @PartitionKey(0)
+ private String space;
+
+ @Column(name = "item_id")
+ @PartitionKey(1)
+ private String itemId;
+
+ @Column(name = "version_id")
+ @PartitionKey(2)
+ private String versionId;
+
+ @Column(name = "healing_needed")
+ private boolean healingFlag;
+
+ @Column(name = "old_version")
+ private String old_version;
+
+ public String getSpace() {
+ return space;
+ }
+
+ public void setSpace(String space) {
+ this.space = space;
+ }
+
+ public String getItemId() {
+ return itemId;
+ }
+
+ public void setItemId(String itemId) {
+ this.itemId = itemId;
+ }
+
+ public String getVersionId() {
+ return versionId;
+ }
+
+ public void setVersionId(String versionId) {
+ this.versionId = versionId;
+ }
+
+ public boolean getHealingFlag() {
+ return healingFlag;
+ }
+
+ public void setHealingFlag(boolean healingFlag) {
+ this.healingFlag = healingFlag;
+ }
+
+ public HealingEntity(String space, String itemId, String versionId, boolean healingFlag,String
+ oldVersion) {
+ this.space = space;
+ this.itemId = itemId;
+ this.versionId = versionId;
+ this.healingFlag = healingFlag;
+ this.old_version = oldVersion;
+ }
+
+ public String getOldVersion() {
+ return old_version;
+ }
+
+ public void setOldVersion(String old_version) {
+ this.old_version = old_version;
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/VersionEntity.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/VersionEntity.java
index c7280c8a9d..946c05ef84 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/VersionEntity.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/zusammen/datatypes/VersionEntity.java
@@ -1,6 +1,8 @@
package org.openecomp.core.tools.store.zusammen.datatypes;
-import com.datastax.driver.mapping.annotations.*;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
import java.util.Date;