class Mcrain::Riak::Node

docker run -e “DOCKER_RIAK_CLUSTER_SIZE=${DOCKER_RIAK_CLUSTER_SIZE}” \

-e "DOCKER_RIAK_AUTOMATIC_CLUSTERING=${DOCKER_RIAK_AUTOMATIC_CLUSTERING}" \
-e "DOCKER_RIAK_BACKEND=${DOCKER_RIAK_BACKEND}" \
-e "DOCKER_RIAK_STRONG_CONSISTENCY=${DOCKER_RIAK_STRONG_CONSISTENCY} \
-p $publish_http_port \
-p $publish_pb_port \
--link "riak01:seed" \
--name "riak${index}" \
-d hectcastro/riak > /dev/null 2>&1

Attributes

owner[R]

self.http_port = 8098 # HTTP

primary_node[RW]

Public Class Methods

container_image() click to toggle source
# File lib/mcrain/riak.rb, line 35
def self.container_image
  Mcrain.configuration.images[:riak]
end
new(owner) click to toggle source
# File lib/mcrain/riak.rb, line 44
def initialize(owner)
  @owner = owner
end

Public Instance Methods

build_docker_options() click to toggle source
# File lib/mcrain/riak.rb, line 52
def build_docker_options
  r = super
  r['HostConfig']['PortBindings']["8098/tcp"] = [{ 'HostPort' => http_port.to_s }]
  envs = []
  envs << "DOCKER_RIAK_CLUSTER_SIZE=#{owner.cluster_size}"
  envs << "DOCKER_RIAK_AUTOMATIC_CLUSTERING=#{owner.automatic_clustering ? 1 : 0}"
  envs << "DOCKER_RIAK_BACKEND=#{owner.backend}"
  envs << "DOCKER_RIAK_STRONG_CONSISTENCY=#{owner.strong_consistency}"
  r['Env'] = envs unless envs.empty?
  if primary_node
    r['HostConfig']['Links'] = ["#{primary_node.name}:seed"]
  end
  return r
end
http_port() click to toggle source
# File lib/mcrain/riak.rb, line 48
def http_port
  @http_port ||= find_portno
end
ping() click to toggle source
# File lib/mcrain/riak.rb, line 67
def ping
  owner.logger.debug("sending a ping http://#{host}:#{http_port}/stats")
  res = Net::HTTP.start(host, http_port) {|http| http.get('/stats') }
  r = res.is_a?(Net::HTTPSuccess)
  owner.logger.debug("#{res.inspect} #=> #{r}")
  return r
rescue => e
  return false
end
reset() click to toggle source
# File lib/mcrain/riak.rb, line 77
def reset
  instance_variables.each do |var|
    instance_variable_set(var, nil)
  end
end