Navigation Menu

Skip to content

Commit

Permalink
Put command implementations under the namespace "Droonga"
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Apr 15, 2015
1 parent 07335b4 commit a60bc6d
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 42 deletions.
30 changes: 16 additions & 14 deletions bin/droonga-engine-absorb-data
Expand Up @@ -29,6 +29,7 @@ require "droonga/client"
require "droonga/node_metadata"
require "droonga/restarter"

module Droonga
class AbsorbDataCommand
def run
@loop = Coolio::Loop.default
Expand All @@ -54,24 +55,24 @@ class AbsorbDataCommand
options = OpenStruct.new

options.host = Socket.gethostname
options.port = Droonga::DataAbsorberClient::DEFAULT_PORT
options.tag = Droonga::DataAbsorberClient::DEFAULT_TAG
options.dataset = Droonga::DataAbsorberClient::DEFAULT_DATASET
options.port = DataAbsorberClient::DEFAULT_PORT
options.tag = DataAbsorberClient::DEFAULT_TAG
options.dataset = DataAbsorberClient::DEFAULT_DATASET

options.source_host = Droonga::DataAbsorberClient::DEFAULT_HOST
options.source_port = Droonga::DataAbsorberClient::DEFAULT_PORT
options.source_tag = Droonga::DataAbsorberClient::DEFAULT_TAG
options.source_dataset = Droonga::DataAbsorberClient::DEFAULT_DATASET
options.source_host = DataAbsorberClient::DEFAULT_HOST
options.source_port = DataAbsorberClient::DEFAULT_PORT
options.source_tag = DataAbsorberClient::DEFAULT_TAG
options.source_dataset = DataAbsorberClient::DEFAULT_DATASET

options.receiver_host = Socket.gethostname

options.messages_per_second = Droonga::DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND
options.progress_interval_seconds = Droonga::DataAbsorberClient::DEFAULT_PROGRESS_INTERVAL_SECONDS
options.messages_per_second = DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND
options.progress_interval_seconds = DataAbsorberClient::DEFAULT_PROGRESS_INTERVAL_SECONDS

options.verbose = false

parser = OptionParser.new
parser.version = Droonga::Engine::VERSION
parser.version = Engine::VERSION

parser.separator("")
parser.separator("Destination node:")
Expand Down Expand Up @@ -130,7 +131,7 @@ class AbsorbDataCommand
parser.separator("Miscellaneous:")
parser.on("--records-per-second=N", Integer,
"Maximum number of records per second to be absorbed.",
"'#{Droonga::Client::RateLimiter::NO_LIMIT}' means no limit.",
"'#{Client::RateLimiter::NO_LIMIT}' means no limit.",
"(#{options.messages_per_second})") do |n|
options.messages_per_second = n
end
Expand Down Expand Up @@ -178,7 +179,7 @@ class AbsorbDataCommand
end

def run_remote_command(target, command, options)
serf = Droonga::Serf.new(target, :verbose => @options.verbose)
serf = Serf.new(target, :verbose => @options.verbose)
serf.send_query(command, options)
end

Expand Down Expand Up @@ -208,7 +209,7 @@ class AbsorbDataCommand
:loop => @loop,
},
}
Droonga::DataAbsorberClient.new(absorber_options)
DataAbsorberClient.new(absorber_options)
end

def absorb
Expand Down Expand Up @@ -265,5 +266,6 @@ class AbsorbDataCommand
#XXX we have to write more codes to cancel remote processes!
end
end
end

AbsorbDataCommand.new.run
Droonga::AbsorbDataCommand.new.run
32 changes: 17 additions & 15 deletions bin/droonga-engine-join
Expand Up @@ -32,6 +32,7 @@ require "droonga/data_absorber_client"
require "droonga/serf"
require "droonga/node_metadata"

module Droonga
class JoinCommand
def run
@loop = Coolio::Loop.default
Expand Down Expand Up @@ -91,13 +92,13 @@ class JoinCommand
option.on(:port=,
"Port number of the source cluster to be connected.",
:as => Integer,
:default => Droonga::NodeName::DEFAULT_PORT)
:default => NodeName::DEFAULT_PORT)
option.on(:tag=,
"Tag name of the soruce cluster to be connected.",
:default => Droonga::NodeName::DEFAULT_TAG)
:default => NodeName::DEFAULT_TAG)
option.on(:dataset=,
"Dataset name of for the node to be joined.",
:default => Droonga::Catalog::Dataset::DEFAULT_NAME)
:default => Catalog::Dataset::DEFAULT_NAME)

option.separator("Connections:")
option.on("receiver-host=",
Expand All @@ -107,13 +108,13 @@ class JoinCommand
option.separator("Miscellaneous:")
option.on("records-per-second=",
"Maximum number of records per second to be copied. " +
"'#{Droonga::Client::RateLimiter::NO_LIMIT}' means no limit.",
"'#{Client::RateLimiter::NO_LIMIT}' means no limit.",
:as => Integer,
:default => Droonga::DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND)
:default => DataAbsorberClient::DEFAULT_MESSAGES_PER_SECOND)
option.on("progress-interval-seconds=",
"Interval seconds to report progress.",
:as => Integer,
:default => Droonga::DataAbsorberClient::DEFAULT_PROGRESS_INTERVAL_SECONDS)
:default => DataAbsorberClient::DEFAULT_PROGRESS_INTERVAL_SECONDS)
option.on(:verbose, "Output details for internal operations.",
:default => false)
end
Expand Down Expand Up @@ -148,7 +149,7 @@ class JoinCommand
end

def parse_source_catalog
loader = Droonga::Catalog::Loader.new
loader = Catalog::Loader.new
loader.parse(raw_source_catalog)
end

Expand All @@ -157,15 +158,15 @@ class JoinCommand
end

def fetch_source_catalog
fetcher = Droonga::Catalog::Fetcher.new(:host => source_node.host,
fetcher = Catalog::Fetcher.new(:host => source_node.host,
:port => source_node.port,
:tag => source_node.tag,
:receiver_host => @options["receiver-host"])
fetcher.fetch(:dataset => dataset)
end

def run_remote_command(target, command, options)
serf = Droonga::Serf.new(target, :verbose => @options[:verbose])
serf = Serf.new(target, :verbose => @options[:verbose])
serf.send_query(command, options)
end

Expand Down Expand Up @@ -195,15 +196,15 @@ class JoinCommand
:loop => @loop,
},
}
Droonga::DataAbsorberClient.new(absorber_options)
DataAbsorberClient.new(absorber_options)
end

def set_source_node_role
if absorber.source_node_suspendable?
puts("Changing role of the source node...")
run_remote_command(source_node.to_s, "change_role",
"node" => source_node.to_s,
"role" => Droonga::NodeMetadata::Role::ABSORB_SOURCE)
"role" => NodeMetadata::Role::ABSORB_SOURCE)
wait_until_restarted(source_node)
end
@source_node_role_changed = true
Expand All @@ -213,7 +214,7 @@ class JoinCommand
puts("Changing role of the joining node...")
run_remote_command(joining_node.to_s, "change_role",
"node" => joining_node.to_s,
"role" => Droonga::NodeMetadata::Role::ABSORB_DESTINATION)
"role" => NodeMetadata::Role::ABSORB_DESTINATION)
wait_until_restarted(joining_node)
@joining_node_role_changed = true
end
Expand All @@ -223,7 +224,7 @@ class JoinCommand
puts("Restoring role of the source node...")
run_remote_command(source_node.to_s, "change_role",
"node" => source_node.to_s,
"role" => Droonga::NodeMetadata::Role::SERVICE_PROVIDER)
"role" => NodeMetadata::Role::SERVICE_PROVIDER)
wait_until_restarted(source_node.to_s)
end
@source_node_role_changed = false
Expand All @@ -233,7 +234,7 @@ class JoinCommand
puts("Restoring role of the joining node...")
run_remote_command(joining_node.to_s, "change_role",
"node" => joining_node.to_s,
"role" => Droonga::NodeMetadata::Role::SERVICE_PROVIDER)
"role" => NodeMetadata::Role::SERVICE_PROVIDER)
wait_until_restarted(joining_node.to_s)
@joining_node_role_changed = false
end
Expand Down Expand Up @@ -333,5 +334,6 @@ class JoinCommand
sleep(30)
end
end
end

JoinCommand.new.run
Droonga::JoinCommand.new.run
12 changes: 7 additions & 5 deletions bin/droonga-engine-set-role
Expand Up @@ -22,6 +22,7 @@ require "droonga/engine/version"
require "droonga/node_name"
require "droonga/serf"

module Droonga
class SetRoleCommand
def run
parse_options
Expand All @@ -47,14 +48,14 @@ class SetRoleCommand
:default => Socket.gethostname)
option.on(:dataset=,
"Dataset name of for the target node.",
:default => Droonga::NodeName::DEFAULT_DATASET)
:default => NodeName::DEFAULT_DATASET)
option.on(:port=,
"Port number of the source cluster to be connected.",
:as => Integer,
:default => Droonga::NodeName::DEFAULT_PORT)
:default => NodeName::DEFAULT_PORT)
option.on(:tag=,
"Tag name of the soruce cluster to be connected.",
:default => Droonga::NodeName::DEFAULT_TAG)
:default => NodeName::DEFAULT_TAG)

option.separator("Miscellaneous:")
option.on(:verbose, "Output details for internal operations.",
Expand All @@ -71,7 +72,7 @@ class SetRoleCommand
end

def run_remote_command(target, command, options)
serf = Droonga::Serf.new(target, :verbose => @options[:verbose])
serf = Serf.new(target, :verbose => @options[:verbose])
serf.send_query(command, options)
end

Expand All @@ -81,5 +82,6 @@ class SetRoleCommand
"role" => @options[:role])
end
end
end

SetRoleCommand.new.run
Droonga::SetRoleCommand.new.run
18 changes: 10 additions & 8 deletions bin/droonga-engine-unjoin
Expand Up @@ -27,6 +27,7 @@ require "droonga/catalog/generator"
require "droonga/catalog/loader"
require "droonga/serf"

module Droonga
class UnjoinCommand
def run
parse_options
Expand All @@ -52,14 +53,14 @@ class UnjoinCommand
:default => Socket.gethostname)
option.on(:dataset=,
"Dataset name of for the node to be unjoined.",
:default => Droonga::NodeName::DEFAULT_DATASET)
:default => NodeName::DEFAULT_DATASET)
option.on(:port=,
"Port number of the source cluster to be connected.",
:as => Integer,
:default => Droonga::NodeName::DEFAULT_PORT)
:default => NodeName::DEFAULT_PORT)
option.on(:tag=,
"Tag name of the soruce cluster to be connected.",
:default => Droonga::NodeName::DEFAULT_TAG)
:default => NodeName::DEFAULT_TAG)

option.separator("Miscellaneous:")
option.on(:verbose, "Output details for internal operations.",
Expand Down Expand Up @@ -100,7 +101,7 @@ class UnjoinCommand
end

def parse_catalog
loader = Droonga::Catalog::Loader.new
loader = Catalog::Loader.new
loader.parse(raw_catalog)
end

Expand All @@ -109,7 +110,7 @@ class UnjoinCommand
end

def fetch_catalog
fetcher = Droonga::Catalog::Fetcher.new(:host => replica_remove_host,
fetcher = Catalog::Fetcher.new(:host => replica_remove_host,
:port => port,
:tag => tag,
:receiver_host => @options["receiver-host"])
Expand All @@ -121,7 +122,7 @@ class UnjoinCommand
end

def detect_remaining_node
generator = Droonga::Catalog::Generator.new
generator = Catalog::Generator.new
generator.load(raw_catalog)

dataset = generator.dataset_for_host(replica_remove_host)
Expand All @@ -138,7 +139,7 @@ class UnjoinCommand
end

def run_remote_command(target, command, options)
serf = Droonga::Serf.new(target, :verbose => @options[:verbose])
serf = Serf.new(target, :verbose => @options[:verbose])
serf.send_query(command, options)
end

Expand All @@ -151,5 +152,6 @@ class UnjoinCommand
"hosts" => [replica_remove_host])
end
end
end

UnjoinCommand.new.run
Droonga::UnjoinCommand.new.run

0 comments on commit a60bc6d

Please sign in to comment.