From b8e2faf476202b6ffe61bc3a9a37df1304881d40 Mon Sep 17 00:00:00 2001 From: Avi Ziv Date: Tue, 18 Jul 2017 19:45:38 +0300 Subject: [SDC] Onboarding 1710 rebase. Change-Id: If3b6b81d221fde13908f1e8160db6f7d9433c535 Signed-off-by: Avi Ziv --- .../impl/cassandra/CassandraNoSqlDbImpl.java | 133 +++++++++++---------- .../impl/cassandra/CassandraSessionFactory.java | 6 +- 2 files changed, 76 insertions(+), 63 deletions(-) (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl') diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java index bcac5f8d79..4ecc26879a 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java @@ -20,10 +20,7 @@ package org.openecomp.core.nosqldb.impl.cassandra; -import com.datastax.driver.core.BoundStatement; -import com.datastax.driver.core.PreparedStatement; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Session; +import com.datastax.driver.core.*; import com.datastax.driver.mapping.MappingManager; import org.openecomp.core.nosqldb.api.NoSqlDb; import org.openecomp.core.nosqldb.util.CassandraUtils; @@ -32,73 +29,87 @@ import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.common.errors.ErrorCategory; import org.openecomp.sdc.common.errors.ErrorCode; -class CassandraNoSqlDbImpl implements NoSqlDb { +import java.util.Set; +import java.util.stream.Collectors; - private final Session session; - private final String keySpace; - private final MappingManager mappingManager; +class CassandraNoSqlDbImpl implements NoSqlDb { + private final Session session; + private final String keySpace; + private final MappingManager mappingManager; - public CassandraNoSqlDbImpl(Session session) { - this.session = session; - this.keySpace = this.session.getLoggedKeyspace(); - this.mappingManager = new MappingManager(this.session); - } + public CassandraNoSqlDbImpl(Session session) { + this.session = session; + this.keySpace = this.session.getLoggedKeyspace(); + this.mappingManager = new MappingManager(this.session); - @Override - public void insert(String tableName, String[] colNames, Object[] values) { - if (colNames.length != values.length) { - throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage( - "number of colmuns[" + colNames.length + "] is not equal to the number of values[" - + values.length + "].").withId("E0005").withCategory(ErrorCategory.APPLICATION) - .build()); } - StringBuilder sb = new StringBuilder(); - sb.append("insert into ") - .append(tableName) - .append(" (") - .append(CommonMethods.arrayToCommaSeparatedString(colNames)) - .append(") values (") - .append(CommonMethods.duplicateStringWithDelimiter("?", ',', values.length)) - .append(")"); - System.out.println(sb.toString()); - PreparedStatement prepared = session.prepare(sb.toString()); - - BoundStatement bound; - bound = prepared.bind(values); - session.execute(bound); - - } - - @Override - public ResultSet execute(String statement) { - return session.execute(statement); - } - - @Override - public ResultSet execute(String statementName, Object... values) { - - String statement = CassandraUtils.getStatement(statementName); - if (statement == null) { - statement = statementName; + @Override + public void insert(String tableName, String[] colNames, Object[] values) { + if (colNames.length != values.length) { + throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage( + "number of colmuns[" + colNames.length + "] is not equal to the number of values[" + + values.length + "].").withId("E0005").withCategory(ErrorCategory.APPLICATION) + .build()); + } + + StringBuilder sb = new StringBuilder(); + sb.append("insert into ") + .append(tableName) + .append(" (") + .append(CommonMethods.arrayToCommaSeparatedString(colNames)) + .append(") values (") + .append(CommonMethods.duplicateStringWithDelimiter("?", ',', values.length)) + .append(")"); + System.out.println(sb.toString()); + PreparedStatement prepared = session.prepare(sb.toString()); + + BoundStatement bound; + bound = prepared.bind(values); + session.execute(bound); + } - if (values != null) { - PreparedStatement prepared = session.prepare(statement); - - BoundStatement bound; - bound = prepared.bind(values); - return session.execute(bound); - } else { - return session.execute(statement); + + @Override + public ResultSet execute(String statement) { + return session.execute(statement); } - } + @Override + public ResultSet execute(String statementName, Object... values) { + + String statement = CassandraUtils.getStatement(statementName); + if (statement == null) { + statement = statementName; + } + if (values != null) { + PreparedStatement prepared = session.prepare(statement); - @Override - public MappingManager getMappingManager() { - return mappingManager; - } + BoundStatement bound; + bound = prepared.bind(values); + return session.execute(bound); + } else { + return session.execute(statement); + } + } + + @Override + public MappingManager getMappingManager() { + return mappingManager; + } + + @Override + public String getVersion() { + try { + Set allHosts = this.session.getCluster().getMetadata().getAllHosts(); + Set versions = allHosts.stream().map(host -> host.getCassandraVersion().toString()) + .collect(Collectors.toSet()); + return versions.stream().collect(Collectors.joining(",")); + } catch (Exception e){ + return "Failed to retrieve version"; + } + } } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java index 4863e3df0f..7b9b2ca84f 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java @@ -36,6 +36,7 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; +import java.util.Objects; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; @@ -113,8 +114,9 @@ public class CassandraSessionFactory { } catch (Exception exception) { exception.printStackTrace(); } finally { - tsf.close(); - + if (tsf != null) { + tsf.close(); + } } return ctx; } -- cgit 1.2.3-korg