made exception on init recoverable
This commit is contained in:
parent
4307d6f13a
commit
47afd13cf7
@ -21,8 +21,6 @@ import com.datastax.oss.driver.api.core.cql.BoundStatement;
|
|||||||
import com.datastax.oss.driver.api.core.cql.BoundStatementBuilder;
|
import com.datastax.oss.driver.api.core.cql.BoundStatementBuilder;
|
||||||
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
|
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
|
||||||
import com.datastax.oss.driver.api.core.cql.Statement;
|
import com.datastax.oss.driver.api.core.cql.Statement;
|
||||||
import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
|
|
||||||
import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
@ -100,7 +98,7 @@ public class TbSaveToCustomCassandraTableNode implements TbNode {
|
|||||||
throw new TbNodeException("Unable to connect to Cassandra database", true);
|
throw new TbNodeException("Unable to connect to Cassandra database", true);
|
||||||
}
|
}
|
||||||
if (!isTableExists()) {
|
if (!isTableExists()) {
|
||||||
throw new TbNodeException("Table '" + TABLE_PREFIX + config.getTableName() + "' does not exist in Cassandra cluster.", true);
|
throw new TbNodeException("Table '" + TABLE_PREFIX + config.getTableName() + "' does not exist in Cassandra cluster.");
|
||||||
}
|
}
|
||||||
ctx.addTenantProfileListener(this::onTenantProfileUpdate);
|
ctx.addTenantProfileListener(this::onTenantProfileUpdate);
|
||||||
onTenantProfileUpdate(ctx.getTenantProfile());
|
onTenantProfileUpdate(ctx.getTenantProfile());
|
||||||
@ -138,12 +136,9 @@ public class TbSaveToCustomCassandraTableNode implements TbNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isTableExists() {
|
private boolean isTableExists() {
|
||||||
KeyspaceMetadata keyspaceMetadata = getSession().getMetadata().getKeyspace(cassandraCluster.getKeyspaceName()).orElse(null);
|
var keyspaceMdOpt = getSession().getMetadata().getKeyspace(cassandraCluster.getKeyspaceName());
|
||||||
if (keyspaceMetadata != null) {
|
return keyspaceMdOpt.map(keyspaceMetadata ->
|
||||||
TableMetadata tableMetadata = keyspaceMetadata.getTable(TABLE_PREFIX + config.getTableName()).orElse(null);
|
keyspaceMetadata.getTable(TABLE_PREFIX + config.getTableName()).isPresent()).orElse(false);
|
||||||
return tableMetadata != null;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private PreparedStatement prepare(String query) {
|
private PreparedStatement prepare(String query) {
|
||||||
|
|||||||
@ -165,7 +165,7 @@ public class TbSaveToCustomCassandraTableNodeTest extends AbstractRuleNodeUpgrad
|
|||||||
.isInstanceOf(TbNodeException.class)
|
.isInstanceOf(TbNodeException.class)
|
||||||
.hasMessage("Table 'cs_tb_test_table' does not exist in Cassandra cluster.")
|
.hasMessage("Table 'cs_tb_test_table' does not exist in Cassandra cluster.")
|
||||||
.extracting(e -> ((TbNodeException) e).isUnrecoverable())
|
.extracting(e -> ((TbNodeException) e).isUnrecoverable())
|
||||||
.isEqualTo(true);
|
.isEqualTo(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user