diff options
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store')
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; |