summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java')
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java133
1 files changed, 72 insertions, 61 deletions
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<Host> allHosts = this.session.getCluster().getMetadata().getAllHosts();
+ Set<String> 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";
+ }
+ }
}