diff options
Diffstat (limited to 'catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java')
-rw-r--r-- | catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java | 165 |
1 files changed, 78 insertions, 87 deletions
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java index c5b48d9a2c..81586a09ab 100644 --- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,13 +17,13 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.be.dao.cassandra; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Session; import com.datastax.driver.mapping.MappingManager; import fj.data.Either; +import javax.annotation.PostConstruct; import org.apache.commons.lang3.tuple.ImmutablePair; import org.openecomp.sdc.be.resources.data.DAOArtifactData; import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants; @@ -31,91 +31,82 @@ import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; - @Component("artifact-cassandra-dao") public class ArtifactCassandraDao extends CassandraDao { - private static Logger logger = Logger.getLogger(ArtifactCassandraDao.class.getName()); - private ArtifactAccessor artifactAccessor; - - - @Autowired - public ArtifactCassandraDao(CassandraClient cassandraClient) { - super(cassandraClient); - - } - - @PostConstruct - public void init() { - String keyspace = AuditingTypesConstants.ARTIFACT_KEYSPACE; - if (client.isConnected()) { - Either<ImmutablePair<Session, MappingManager>, CassandraOperationStatus> result = client.connect(keyspace); - if (result.isLeft()) { - session = result.left().value().left; - manager = result.left().value().right; - artifactAccessor = manager.createAccessor(ArtifactAccessor.class); - logger.info("** ArtifactCassandraDao created"); - } else { - logger.info("** ArtifactCassandraDao failed"); - throw new RuntimeException("Artifact keyspace [" + keyspace + "] failed to connect with error : " - + result.right().value()); - } - } else { - logger.info("** Cassandra client isn't connected"); - logger.info("** ArtifactCassandraDao created, but not connected"); - } - } - - public CassandraOperationStatus saveArtifact(DAOArtifactData artifact) { - return client.save(artifact, DAOArtifactData.class, manager); - } - - public Either<DAOArtifactData, CassandraOperationStatus> getArtifact(String artifactId) { - return client.getById(artifactId, DAOArtifactData.class, manager); - } - - public CassandraOperationStatus deleteArtifact(String artifactId) { - return client.delete(artifactId, DAOArtifactData.class, manager); - } - - /** - * ---------for use in JUnit only--------------- the method deletes all the - * tables in the audit keyspace - * - * @return the status of the last failed operation or ok if all the deletes - * were successful - */ - public CassandraOperationStatus deleteAllArtifacts() { - logger.info("cleaning all artifacts."); - String query = "truncate sdcartifact.resources;"; - try { - session.execute(query); - } catch (Exception e) { - logger.debug("Failed to clean artifacts", e); - return CassandraOperationStatus.GENERAL_ERROR; - } - logger.info("cleaning all artifacts finished successfully."); - return CassandraOperationStatus.OK; - } - - /** - * the method checks if the given table is empty in the artifact keyspace - * - * @param tableName - * the name of the table we want to check - * @return true if the table is empty - */ - public Either<Boolean, CassandraOperationStatus> isTableEmpty(String tableName) { - return super.isTableEmpty(tableName); - } - - public Either<Long, CassandraOperationStatus> getCountOfArtifactById(String uniqeId) { - ResultSet artifactCount = artifactAccessor.getNumOfArtifactsById(uniqeId); - if (artifactCount == null) { - return Either.right(CassandraOperationStatus.NOT_FOUND); - } - return Either.left(artifactCount.one().getLong(0)); - } - + private static Logger logger = Logger.getLogger(ArtifactCassandraDao.class.getName()); + private ArtifactAccessor artifactAccessor; + + @Autowired + public ArtifactCassandraDao(CassandraClient cassandraClient) { + super(cassandraClient); + } + + @PostConstruct + public void init() { + String keyspace = AuditingTypesConstants.ARTIFACT_KEYSPACE; + if (client.isConnected()) { + Either<ImmutablePair<Session, MappingManager>, CassandraOperationStatus> result = client.connect(keyspace); + if (result.isLeft()) { + session = result.left().value().left; + manager = result.left().value().right; + artifactAccessor = manager.createAccessor(ArtifactAccessor.class); + logger.info("** ArtifactCassandraDao created"); + } else { + logger.info("** ArtifactCassandraDao failed"); + throw new RuntimeException("Artifact keyspace [" + keyspace + "] failed to connect with error : " + result.right().value()); + } + } else { + logger.info("** Cassandra client isn't connected"); + logger.info("** ArtifactCassandraDao created, but not connected"); + } + } + + public CassandraOperationStatus saveArtifact(DAOArtifactData artifact) { + return client.save(artifact, DAOArtifactData.class, manager); + } + + public Either<DAOArtifactData, CassandraOperationStatus> getArtifact(String artifactId) { + return client.getById(artifactId, DAOArtifactData.class, manager); + } + + public CassandraOperationStatus deleteArtifact(String artifactId) { + return client.delete(artifactId, DAOArtifactData.class, manager); + } + + /** + * ---------for use in JUnit only--------------- the method deletes all the tables in the audit keyspace + * + * @return the status of the last failed operation or ok if all the deletes were successful + */ + public CassandraOperationStatus deleteAllArtifacts() { + logger.info("cleaning all artifacts."); + String query = "truncate sdcartifact.resources;"; + try { + session.execute(query); + } catch (Exception e) { + logger.debug("Failed to clean artifacts", e); + return CassandraOperationStatus.GENERAL_ERROR; + } + logger.info("cleaning all artifacts finished successfully."); + return CassandraOperationStatus.OK; + } + + /** + * the method checks if the given table is empty in the artifact keyspace + * + * @param tableName the name of the table we want to check + * @return true if the table is empty + */ + public Either<Boolean, CassandraOperationStatus> isTableEmpty(String tableName) { + return super.isTableEmpty(tableName); + } + + public Either<Long, CassandraOperationStatus> getCountOfArtifactById(String uniqeId) { + ResultSet artifactCount = artifactAccessor.getNumOfArtifactsById(uniqeId); + if (artifactCount == null) { + return Either.right(CassandraOperationStatus.NOT_FOUND); + } + return Either.left(artifactCount.one().getLong(0)); + } } |