public ThriftKsDef(KeyspaceDefinition keyspaceDefinition) { name = keyspaceDefinition.getName(); strategyClass = keyspaceDefinition.getStrategyClass(); strategyOptions = keyspaceDefinition.getStrategyOptions(); setReplicationFactor(keyspaceDefinition.getReplicationFactor()); cfDefs = keyspaceDefinition.getCfDefs(); }
/** Return true if the column family exists */ public boolean cfExists( String keyspace, String cfName ) { KeyspaceDefinition ksDef = cluster.describeKeyspace( keyspace ); if ( ksDef == null ) { return false; } for ( ColumnFamilyDefinition cf : ksDef.getCfDefs() ) { if ( cfName.equals( cf.getName() ) ) { return true; } } return false; }
public void checkKeyspaces() { List<KeyspaceDefinition> ksDefs = null; try { ksDefs = cluster.describeKeyspaces(); } catch (Exception e) { log.error("Unable to describe keyspaces", e); } if (ksDefs != null) { for (KeyspaceDefinition ksDef : ksDefs) { log.info(ksDef.getName().toString()); } } }
/** * Private helper to initialize the schema */ protected void initializeSchema() throws Exception { if (keyspaceDefinitions.size() == 0) throw new IllegalStateException("no keyspace definitions founds, maybe add some entities to the factory"); for (KeyspaceDefinition keyspaceDefinition : ThriftKsDef.fromThriftList(new ArrayList<KsDef>(keyspaceDefinitions.values()))) { KeyspaceDefinition existingKeyspace = cluster.describeKeyspace(keyspaceDefinition.getName()); if (existingKeyspace == null) { cluster.addKeyspace(keyspaceDefinition, true); } else { for (ColumnFamilyDefinition columnFamilyDefinition : keyspaceDefinition.getCfDefs()) { if (keyspaceContainsColumnFamily(columnFamilyDefinition, existingKeyspace)) { log.debug(String.format("found column family %s, updating schema", columnFamilyDefinition.getName())); ColumnFamilyDefinition existingColumnFamilyDefinition = getColumnFamilyFromKeyspace(columnFamilyDefinition.getName(), existingKeyspace); existingColumnFamilyDefinition.getColumnMetadata().clear(); for (ColumnDefinition columnDefinition : columnFamilyDefinition.getColumnMetadata()) { existingColumnFamilyDefinition.addColumnDefinition(columnDefinition); } cluster.updateColumnFamily(existingColumnFamilyDefinition, true); } else { log.debug(String.format("not found column family %s, adding to schema", columnFamilyDefinition.getName())); cluster.addColumnFamily(columnFamilyDefinition, true); } } } } }
@Test public void testEditKeyspace() throws Exception { BasicColumnFamilyDefinition columnFamilyDefinition = new BasicColumnFamilyDefinition(); columnFamilyDefinition.setKeyspaceName("DynKeyspace2"); columnFamilyDefinition.setName("DynamicCF"); ColumnFamilyDefinition cfDef = new ThriftCfDef(columnFamilyDefinition); KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition("DynKeyspace2", "org.apache.cassandra.locator.SimpleStrategy", 1, Arrays.asList(cfDef)); cassandraCluster.addKeyspace(keyspaceDefinition); keyspaceDefinition = HFactory.createKeyspaceDefinition("DynKeyspace2", "org.apache.cassandra.locator.SimpleStrategy", 2, null); cassandraCluster.updateKeyspace(keyspaceDefinition); KeyspaceDefinition fromCluster = cassandraCluster.describeKeyspace("DynKeyspace2"); assertEquals(2,fromCluster.getReplicationFactor()); cassandraCluster.dropKeyspace("DynKeyspace2"); }
private boolean doesLockCFExist(KeyspaceDefinition keyspaceDef) { for (ColumnFamilyDefinition cfdef : keyspaceDef.getCfDefs()) { if (cfdef.getName().equals(lockManagerConfigurator.getLockManagerCF())) { return true; } } return false; }
private Set<CassandraHost> buildRingInfo() { ThriftCluster cluster = (ThriftCluster) HFactory.getCluster(connectionManager.getClusterName()); // ThriftCluster is not exclusively created & cached by HFactory. E.g. Some users instantiate directly via Spring. if(cluster != null) { Set<CassandraHost> ringInfo = new HashSet<CassandraHost>(); for(KeyspaceDefinition keyspaceDefinition: cluster.describeKeyspaces()) { if (!keyspaceDefinition.getName().equals(Keyspace.KEYSPACE_SYSTEM)) { List<TokenRange> tokenRanges = cluster.describeRing(keyspaceDefinition.getName()); for (TokenRange tokenRange : tokenRanges) { for (String host : tokenRange.getRpc_endpoints()) { CassandraHost aHost = new CassandraHost(host, cassandraHostConfigurator.getPort()); if (!ringInfo.contains(aHost) ) { ringInfo.add(aHost); } } } break; } } return ringInfo; } else { return null; } } }
@Test public void testEditBasicKeyspaceDefinition() throws Exception { BasicKeyspaceDefinition ksDef = new BasicKeyspaceDefinition(); ksDef.setName("DynKeyspace4"); ksDef.setReplicationFactor(1); ksDef.setStrategyClass("SimpleStrategy"); cassandraCluster.addKeyspace(ksDef); assertNotNull(cassandraCluster.describeKeyspace("DynKeyspace4")); ksDef.setReplicationFactor(2); cassandraCluster.updateKeyspace(ksDef); KeyspaceDefinition fromCluster = cassandraCluster.describeKeyspace("DynKeyspace4"); assertEquals(2, fromCluster.getReplicationFactor()); cassandraCluster.dropKeyspace("DynKeyspace4"); }
public ThriftKsDef(KeyspaceDefinition keyspaceDefinition) { name = keyspaceDefinition.getName(); strategyClass = keyspaceDefinition.getStrategyClass(); strategyOptions = keyspaceDefinition.getStrategyOptions(); setReplicationFactor(keyspaceDefinition.getReplicationFactor()); cfDefs = keyspaceDefinition.getCfDefs(); }
@Test public void testDescribeKeyspace() throws Exception { KeyspaceDefinition keyspaceDetail = cassandraCluster.describeKeyspace("Keyspace1"); assertNotNull(keyspaceDetail); assertEquals(22, keyspaceDetail.getCfDefs().size()); } }
@Before public void setup() { cassandraHostConfigurator = new CassandraHostConfigurator("localhost"); connectionManager = Mockito.mock(HConnectionManager.class); cluster = Mockito.mock(ThriftCluster.class); Mockito.when(cluster.getConfigurator()).thenReturn(cassandraHostConfigurator); final KeyspaceDefinition kdef = Mockito.mock(KeyspaceDefinition.class); Mockito.when(kdef.getName()).thenReturn("TestKeyspace"); Mockito.when(cluster.describeKeyspaces()).thenReturn(new LinkedList<KeyspaceDefinition>() {{ add(kdef); }}); }
public ThriftKsDef(KeyspaceDefinition keyspaceDefinition) { name = keyspaceDefinition.getName(); strategyClass = keyspaceDefinition.getStrategyClass(); strategyOptions = keyspaceDefinition.getStrategyOptions(); setReplicationFactor(keyspaceDefinition.getReplicationFactor()); cfDefs = keyspaceDefinition.getCfDefs(); }
@Test public void testDescribeKeyspace() throws Exception { ThriftCluster cassandraCluster = new ThriftCluster("Test Cluster", cassandraHostConfigurator, user1Credentials); KeyspaceDefinition keyspaceDetail = cassandraCluster.describeKeyspace("Keyspace1"); assertNotNull(keyspaceDetail); assertEquals(22, keyspaceDetail.getCfDefs().size()); }
if ( kd.getName().equals(DYN_KEYSPACE) ) { System.out.println("Name: " +kd.getName()); System.out.println("RF: " +kd.getReplicationFactor()); System.out.println("strategy class: " +kd.getStrategyClass()); List<ColumnFamilyDefinition> cfDefs = kd.getCfDefs(); for (ColumnFamilyDefinition def : cfDefs) { System.out.println(" CF Type: " +def.getColumnType());
@Test public void testInitWithDefaults() { KeyspaceDefinition keyspaceDef = cluster.describeKeyspace(lm.getKeyspace().getKeyspaceName()); assertNotNull(keyspaceDef); assertTrue(verifyCFCreation(keyspaceDef.getCfDefs())); }
private void checkCreateLockSchema() { KeyspaceDefinition keyspaceDef = cluster.describeKeyspace(keyspace.getKeyspaceName()); if (keyspaceDef == null) { ColumnFamilyDefinition cfDef = createColumnFamilyDefinition(); KeyspaceDefinition newKeyspace = HFactory.createKeyspaceDefinition(keyspace.getKeyspaceName(), ThriftKsDef.DEF_STRATEGY_CLASS, lockManagerConfigurator.getReplicationFactor(), Arrays.asList(cfDef)); log.info("Creating Keyspace and Column Family for LockManager with name (KSPS/CF): (" + newKeyspace.getName() + " / " + cfDef.getName()); cluster.addKeyspace(newKeyspace, true); } else { log.info("Keyspace for LockManager already exists. Skipping creation."); // The Keyspace exists but we don't know anything about the CF yet. if (!doesLockCFExist(keyspaceDef)) { // create it ColumnFamilyDefinition cfDef = createColumnFamilyDefinition(); log.info("Creating Column Family for LockManager with name: " + cfDef.getName()); cluster.addColumnFamily(cfDef, true); } else { log.info("Column Family for LockManager already exists. Skipping creation."); } } }
@Test public void testEditColumnFamily() throws Exception { BasicColumnFamilyDefinition columnFamilyDefinition = new BasicColumnFamilyDefinition(); columnFamilyDefinition.setKeyspaceName("DynKeyspace3"); columnFamilyDefinition.setName("DynamicCF"); ColumnFamilyDefinition cfDef = new ThriftCfDef(columnFamilyDefinition); KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition("DynKeyspace3", "org.apache.cassandra.locator.SimpleStrategy", 1, Arrays.asList(cfDef)); cassandraCluster.addKeyspace(keyspaceDefinition); KeyspaceDefinition fromCluster = cassandraCluster.describeKeyspace("DynKeyspace3"); cfDef = fromCluster.getCfDefs().get(0); columnFamilyDefinition = new BasicColumnFamilyDefinition(cfDef); BasicColumnDefinition columnDefinition = new BasicColumnDefinition(); columnDefinition.setName(StringSerializer.get().toByteBuffer("birthdate")); columnDefinition.setIndexName("birthdate_idx"); columnDefinition.setIndexType(ColumnIndexType.KEYS); columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName()); columnFamilyDefinition.addColumnDefinition(columnDefinition); columnDefinition = new BasicColumnDefinition(); columnDefinition.setName(StringSerializer.get().toByteBuffer("nonindexed_field")); columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName()); columnFamilyDefinition.addColumnDefinition(columnDefinition); cassandraCluster.updateColumnFamily(new ThriftCfDef(columnFamilyDefinition)); fromCluster = cassandraCluster.describeKeyspace("DynKeyspace3"); assertEquals("birthdate",StringSerializer.get().fromByteBuffer(fromCluster.getCfDefs().get(0).getColumnMetadata().get(0).getName())); assertEquals("birthdate_idx",fromCluster.getCfDefs().get(0).getColumnMetadata().get(0).getIndexName()); assertEquals("nonindexed_field",StringSerializer.get().fromByteBuffer(fromCluster.getCfDefs().get(0).getColumnMetadata().get(1).getName())); }
private void dropKeyspaces() { List<KeyspaceDefinition> keyspaces = cluster.describeKeyspaces(); /* drop all keyspace except internal cassandra keyspace */ for (KeyspaceDefinition keyspaceDefinition : keyspaces) { String keyspaceName = keyspaceDefinition.getName(); if (!keyspaceName.startsWith(INTERNAL_CASSANDRA_KEYSPACE)) { cluster.dropKeyspace(keyspaceName, true); } } List<KeyspaceDefinition> keyspaces2 = cluster.describeKeyspaces(); }