YUKI Hiroshi
null+****@clear*****
Tue Mar 24 13:59:14 JST 2015
YUKI Hiroshi 2015-03-24 13:59:14 +0900 (Tue, 24 Mar 2015) New Revision: f8f65cc70bfd857485804f838ca9100611d335f8 https://github.com/droonga/droonga-engine/commit/f8f65cc70bfd857485804f838ca9100611d335f8 Message: Make soruce catalog for the CatalogModifier as a required parameter Modified files: lib/droonga/catalog_modifier.rb lib/droonga/command/remote.rb Modified: lib/droonga/catalog_modifier.rb (+3 -4) =================================================================== --- lib/droonga/catalog_modifier.rb 2015-03-24 13:44:02 +0900 (fbcbdc4) +++ lib/droonga/catalog_modifier.rb 2015-03-24 13:59:14 +0900 (e9b5e33) @@ -22,17 +22,16 @@ require "droonga/safe_file_writer" module Droonga class CatalogModifier class << self - def modify(source_catalog=nil) + def modify(source_catalog) new(source_catalog).modify do |generator, file| yield(generator, file) end end end - def initialize(source_catalog=nil) + def initialize(source_catalog) @generator = CatalogGenerator.new - @catalog = source_catalog || JSON.parse(Path.catalog.read) - @generator.load(@catalog) + @generator.load(source_catalog) end def modify Modified: lib/droonga/command/remote.rb (+11 -8) =================================================================== --- lib/droonga/command/remote.rb 2015-03-24 13:44:02 +0900 (8d0cada) +++ lib/droonga/command/remote.rb 2015-03-24 13:59:14 +0900 (55e4130) @@ -102,6 +102,10 @@ module Droonga target_node == @serf_name end + def catalog + @catalog ||= JSON.parse(Path.catalog.read) + end + def log(message) @response["log"] << message end @@ -218,7 +222,7 @@ module Droonga def replica_hosts generator = CatalogGenerator.new - generator.load(@catalog) + generator.load(catalog) dataset = generator.dataset_for_host(source_host) || generator.dataset_for_host(host) return [] unless dataset @@ -238,7 +242,7 @@ module Droonga @serf.join(*@other_hosts) log("update catalog.json from fetched catalog") - CatalogModifier.modify(@catalog) do |modifier, file| + CatalogModifier.modify(catalog) do |modifier, file| modifier.datasets[dataset_name].replicas.hosts += [joining_host] modifier.datasets[dataset_name].replicas.hosts.uniq! @service_installation.ensure_correct_file_permission(file) @@ -256,9 +260,8 @@ module Droonga log("start to absorb data from #{source}") if dataset_name.nil? or port.nil? or tag.nil? - current_catalog = JSON.parse(Path.catalog.read) generator = CatalogGenerator.new - generator.load(current_catalog) + generator.load(catalog) dataset = generator.dataset_for_host(source) return unless dataset @@ -338,7 +341,7 @@ module Droonga @serf.join(*hosts) log("setting replicas to the cluster") - CatalogModifier.modify do |modifier, file| + CatalogModifier(catalog).modify do |modifier, file| modifier.datasets[dataset].replicas.hosts = hosts @service_installation.ensure_correct_file_permission(file) end @@ -358,7 +361,7 @@ module Droonga @serf.join(*added_hosts) log("adding replicas to the cluster") - CatalogModifier.modify do |modifier, file| + CatalogModifier(catalog).modify do |modifier, file| modifier.datasets[dataset].replicas.hosts += added_hosts modifier.datasets[dataset].replicas.hosts.uniq! @service_installation.ensure_correct_file_permission(file) @@ -374,7 +377,7 @@ module Droonga log("removing replicas: #{hosts.join(",")}") log("removing replicas from the cluster") - CatalogModifier.modify do |modifier, file| + CatalogModifier(catalog).modify do |modifier, file| modifier.datasets[dataset].replicas.hosts -= hosts @service_installation.ensure_correct_file_permission(file) end @@ -389,7 +392,7 @@ module Droonga log("unjoining replicas: #{hosts.join(",")}") log("unjoining from the cluster") - CatalogModifier.modify do |modifier, file| + CatalogModifier(catalog).modify do |modifier, file| if unjoining_node? modifier.datasets[dataset].replicas.hosts = hosts else -------------- next part -------------- HTML����������������������������... Download