class DCell::Registry::S3Adapter

Public Class Methods

new(options) click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 6
def initialize(options)
  # Convert all options to symbols :/
  options = options.inject({}) { |h,(k,v)| h[k.to_sym] = v; h }

  @env = options[:env] || 'production'
  bucket = options[:bucket] || "dcell_#{Celluloid.uuid}_#{@env}"

  access_key_id = options[:access_key_id] || ENV['AWS_ACCESS_KEY_ID']
  secret_access_key = options[:secret_access_key] || ENV['AWS_SECRET_ACCESS_KEY']
  s3_opts = { :access_key_id => access_key_id, :secret_access_key => secret_access_key }
  s3_opts.merge!({ :region => options[:region] }) if options[:region]
  @s3 = AWS::S3.new(s3_opts)

  @bucket = @s3.buckets[bucket]
  @bucket = @s3.buckets.create(bucket) unless @bucket.exists?

  @node_registry   = NodeRegistry.new(@bucket)
  @global_registry = GlobalRegistry.new(@bucket)
end

Public Instance Methods

clear_globals() click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 30
def clear_globals
  @global_registry.clear
end
clear_nodes() click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 26
def clear_nodes
  @node_registry.clear
end
delete_store() click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 34
def delete_store
  @bucket.delete!
rescue AWS::S3::Errors::NoSuchBucket
  Logger.info "Bucket #{@bucket.name} doesn't exist"
end
get_global(key) click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 104
def get_global(key);        @global_registry.get(key) end
get_node(node_id) click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 68
def get_node(node_id);       @node_registry.get(node_id) end
global_keys() click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 106
def global_keys;            @global_registry.global_keys end
nodes() click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 70
def nodes;                   @node_registry.nodes end
set_global(key, value) click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 105
def set_global(key, value); @global_registry.set(key, value) end
set_node(node_id, addr) click to toggle source
# File lib/dcell/registries/s3_adapter.rb, line 69
def set_node(node_id, addr); @node_registry.set(node_id, addr) end