Class: CassandraObject::Tasks::Keyspace

Inherits:
Object
  • Object
show all
Defined in:
lib/cassandra_object/tasks/keyspace.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse(hash) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/cassandra_object/tasks/keyspace.rb', line 7

def self.parse(hash)
  ks = Cassandra::Keyspace.new.with_fields hash
  ks.cf_defs = []
  hash['cf_defs'].each do |cf|
    ks.cf_defs << Cassandra::ColumnFamily.new.with_fields(cf)
  end
  ks
end

Instance Method Details

#clearObject



51
52
53
54
55
# File 'lib/cassandra_object/tasks/keyspace.rb', line 51

def clear
  return puts 'Cannot clear system keyspace' if connection.keyspace == 'system'

  connection.clear_keyspace!
end

#create(name, options = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cassandra_object/tasks/keyspace.rb', line 20

def create(name, options = {})
  options = options.symbolize_keys

  replication_opts = {
    :strategy => 'org.apache.cassandra.locator.SimpleStrategy',
    :factor => 1,
  }.merge((options[:replication] || {}).symbolize_keys || {})

  opts = { :name => name.to_s,
           :strategy_class => replication_opts[:strategy],
           :strategy_options => {
             'replication_factor' => replication_opts[:factor].to_s,
           },
           :cf_defs => [] }.merge(options)

  ks = Cassandra::Keyspace.new.with_fields(opts)
  connection.add_keyspace ks
end

#drop(name) ⇒ Object



39
40
41
# File 'lib/cassandra_object/tasks/keyspace.rb', line 39

def drop(name)
  connection.drop_keyspace name.to_s
end

#exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/cassandra_object/tasks/keyspace.rb', line 16

def exists?(name)
  connection.keyspaces.include? name.to_s
end

#getObject



47
48
49
# File 'lib/cassandra_object/tasks/keyspace.rb', line 47

def get
  connection.keyspace
end

#schema_dumpObject



57
58
59
# File 'lib/cassandra_object/tasks/keyspace.rb', line 57

def schema_dump
  connection.schema
end

#schema_load(schema) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/cassandra_object/tasks/keyspace.rb', line 61

def schema_load(schema)
  connection.schema.cf_defs.each do |cf|
    connection.drop_column_family cf.name
  end

  keyspace = get
  schema.cf_defs.each do |cf|
    cf.keyspace = keyspace
    connection.add_column_family cf
  end
end

#set(name) ⇒ Object



43
44
45
# File 'lib/cassandra_object/tasks/keyspace.rb', line 43

def set(name)
  connection.keyspace = name.to_s
end