From 2623c8402a57e2035db69a9d92d2851050916801 Mon Sep 17 00:00:00 2001 From: shrikantawachar Date: Mon, 20 May 2019 12:11:54 +0530 Subject: Upgrade SDC from Titan to Janus Graph Upgrade SDC from Titan to Janus Graph Change-Id: I67fb8b8e60cc6751697bc5ff2f06754c92803786 Issue-ID: SDC-2296 Signed-off-by: shrikantawachar --- .../model/operations/impl/UserAdminOperation.java | 82 ++++++++++++---------- 1 file changed, 45 insertions(+), 37 deletions(-) (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java') diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java index 72c370ffe6..bea9df9639 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java @@ -20,7 +20,7 @@ package org.openecomp.sdc.be.model.operations.impl; -import com.thinkaurelius.titan.core.TitanVertex; +import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import org.apache.commons.lang3.BooleanUtils; import org.apache.tinkerpop.gremlin.structure.Direction; @@ -28,10 +28,10 @@ import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.VertexProperty; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.titan.TitanGenericDao; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.dao.utils.UserStatusEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -52,11 +52,12 @@ import static org.apache.commons.collections.CollectionUtils.isEmpty; @Component("user-operation") public class UserAdminOperation implements IUserAdminOperation { - private TitanGenericDao titanGenericDao; + private JanusGraphGenericDao janusGraphGenericDao; - public UserAdminOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) { + public UserAdminOperation(@Qualifier("janusgraph-generic-dao") + JanusGraphGenericDao janusGraphGenericDao) { super(); - this.titanGenericDao = titanGenericDao; + this.janusGraphGenericDao = janusGraphGenericDao; } @@ -93,7 +94,7 @@ public class UserAdminOperation implements IUserAdminOperation { return resultWrapper.getInnerElement(); } finally { if (!inTransaction) { - titanGenericDao.commit(); + janusGraphGenericDao.commit(); } log.debug("getUserData - end"); } @@ -127,7 +128,8 @@ public class UserAdminOperation implements IUserAdminOperation { return; } id = id.toLowerCase(); - Either either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); + Either either = janusGraphGenericDao + .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); if (either.isRight()) { resultWrapper.setInnerElement(getUserNotFoundError(id, either.right().value())); @@ -138,10 +140,10 @@ public class UserAdminOperation implements IUserAdminOperation { @Override public Either saveUserData(User user) { - Either result = null; + Either result = null; try { UserData userData = convertToUserData(user); - result = titanGenericDao.createNode(userData, UserData.class); + result = janusGraphGenericDao.createNode(userData, UserData.class); if (result.isRight()) { log.debug("Problem while saving User {}. Reason - {}", userData.getUserId(), result.right().value()); return Either.right(StorageOperationStatus.GENERAL_ERROR); @@ -153,21 +155,21 @@ public class UserAdminOperation implements IUserAdminOperation { if (result == null || result.isRight()) { log.error("saveUserData - Failed"); - titanGenericDao.rollback(); + janusGraphGenericDao.rollback(); } else { log.debug("saveUserData - end"); - titanGenericDao.commit(); + janusGraphGenericDao.commit(); } } } @Override public Either updateUserData(User user) { - Either result = null; + Either result = null; try { log.debug("updateUserData - start"); UserData userData = convertToUserData(user); - result = titanGenericDao.updateNode(userData, UserData.class); + result = janusGraphGenericDao.updateNode(userData, UserData.class); if (result.isRight()) { if (log.isDebugEnabled()) { log.debug("Problem while updating User {}. Reason - {}", userData.toString(), result.right().value()); @@ -181,10 +183,10 @@ public class UserAdminOperation implements IUserAdminOperation { if (result == null || result.isRight()) { log.error("updateUserData - Failed"); - titanGenericDao.rollback(); + janusGraphGenericDao.rollback(); } else { log.debug("updateUserData - end"); - titanGenericDao.commit(); + janusGraphGenericDao.commit(); } } @@ -206,10 +208,11 @@ public class UserAdminOperation implements IUserAdminOperation { @Override public Either deleteUserData(String id) { Either result; - Either eitherGet = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); + Either eitherGet = janusGraphGenericDao + .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class); if (eitherGet.isRight()) { log.debug("Problem while retriving user with userId {}",id); - if (eitherGet.right().value() == TitanOperationStatus.NOT_FOUND) { + if (eitherGet.right().value() == JanusGraphOperationStatus.NOT_FOUND) { result = Either.right(ActionStatus.USER_NOT_FOUND); } else { result = Either.right(ActionStatus.GENERAL_ERROR); @@ -228,13 +231,14 @@ public class UserAdminOperation implements IUserAdminOperation { deleteUser(resultWrapper, userData); } } finally { - titanGenericDao.commit(); + janusGraphGenericDao.commit(); } return resultWrapper.getInnerElement(); } private void deleteUser(Wrapper> resultWrapper, UserData userData) { - Either eitherDelete = titanGenericDao.deleteNode(userData, UserData.class); + Either eitherDelete = janusGraphGenericDao + .deleteNode(userData, UserData.class); if (eitherDelete.isRight()) { if (log.isDebugEnabled()) { log.debug("Problem while deleting User {}. Reason - {}", userData.toString(), eitherDelete.right().value()); @@ -249,7 +253,8 @@ public class UserAdminOperation implements IUserAdminOperation { private void validateUserHasNoConnections(Wrapper> resultWrapper, UserData userData) { if (resultWrapper.isEmpty()) { - Either, TitanOperationStatus> edgesForNode = titanGenericDao.getEdgesForNode(userData, Direction.BOTH); + Either, JanusGraphOperationStatus> edgesForNode = janusGraphGenericDao + .getEdgesForNode(userData, Direction.BOTH); if (edgesForNode.isRight()) { if (log.isDebugEnabled()) { log.debug("Problem while deleting User {}. Reason - {}", userData.getUserId(), edgesForNode.right().value()); @@ -266,21 +271,23 @@ public class UserAdminOperation implements IUserAdminOperation { public Either, StorageOperationStatus> getUserPendingTasksList(User user, Map properties) { - Either vertexUser = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId()); + Either vertexUser = janusGraphGenericDao + .getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId()); if (vertexUser.isRight()) { - TitanOperationStatus tos = vertexUser.right().value(); + JanusGraphOperationStatus tos = vertexUser.right().value(); log.debug("Failed to get User {} from graph while retrieving pending tasks. Reason - {}", user.getUserId(), tos); - return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(tos)); + return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(tos)); } List pendingTasks = new ArrayList<>(); - Either, TitanOperationStatus> edges = titanGenericDao.getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties); + Either, JanusGraphOperationStatus> edges = janusGraphGenericDao + .getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties); if (edges.isRight() || edges.left().value() == null) { - TitanOperationStatus tos = edges.right().value(); - if (tos == TitanOperationStatus.NOT_FOUND) { + JanusGraphOperationStatus tos = edges.right().value(); + if (tos == JanusGraphOperationStatus.NOT_FOUND) { return Either.left(pendingTasks); } else { log.debug("Failed while retrieving pending tasks for user {} . Reason - {}", user.getUserId(), tos); - return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(tos)); + return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(tos)); } } for (Edge edge : edges.left().value()) { @@ -322,21 +329,22 @@ public class UserAdminOperation implements IUserAdminOperation { propertiesToMatch.put(GraphPropertiesDictionary.USER_STATUS.getProperty(), status); } - Either, TitanOperationStatus> userNodes = titanGenericDao.getByCriteria(NodeTypeEnum.User, propertiesToMatch, UserData.class); + Either, JanusGraphOperationStatus> userNodes = janusGraphGenericDao + .getByCriteria(NodeTypeEnum.User, propertiesToMatch, UserData.class); - titanGenericDao.commit(); + janusGraphGenericDao.commit(); return convertToUsers(role, userNodes); } finally { - titanGenericDao.commit(); + janusGraphGenericDao.commit(); } } - private Either, ActionStatus> convertToUsers(String role, Either, TitanOperationStatus> userNodes) { + private Either, ActionStatus> convertToUsers(String role, Either, JanusGraphOperationStatus> userNodes) { if (userNodes.isRight()) { - // in case of NOT_FOUND from Titan return empty list - TitanOperationStatus tos = userNodes.right().value(); - if (tos.equals(TitanOperationStatus.NOT_FOUND)) { + // in case of NOT_FOUND from JanusGraph return empty list + JanusGraphOperationStatus tos = userNodes.right().value(); + if (tos.equals(JanusGraphOperationStatus.NOT_FOUND)) { return Either.left(Collections.emptyList()); } else { log.error("Problem while getting all users with role {}. Reason - {}", role, tos); @@ -361,8 +369,8 @@ public class UserAdminOperation implements IUserAdminOperation { return result; } - private Either getUserNotFoundError(String uid, TitanOperationStatus status) { - if (status == TitanOperationStatus.NOT_FOUND) { + private Either getUserNotFoundError(String uid, JanusGraphOperationStatus status) { + if (status == JanusGraphOperationStatus.NOT_FOUND) { log.debug("User with userId {} not found", uid); return Either.right(ActionStatus.USER_NOT_FOUND); } else { -- cgit 1.2.3-korg