filbunke 1.8.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.1
1
+ 1.8.2
data/filbunke.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{filbunke}
8
- s.version = "1.8.1"
8
+ s.version = "1.8.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wouter de Bie", "Bj\303\266rn Sperber"]
12
- s.date = %q{2012-09-04}
12
+ s.date = %q{2012-09-07}
13
13
  s.default_executable = %q{filbunked}
14
14
  s.description = %q{Filbunke client and library}
15
15
  s.email = %q{wouter@deltaprojects.se}
@@ -1,7 +1,7 @@
1
1
  module Filbunke
2
2
  class Client
3
3
 
4
- attr_reader :repository
4
+ attr_reader :repository, :run_every
5
5
 
6
6
  UPDATES_ACTION = 'updates'
7
7
  FILES_ACTION = 'files'
@@ -12,9 +12,10 @@ module Filbunke
12
12
  HASH_KEY = 'hash'
13
13
 
14
14
 
15
- def initialize(repository, logger, callbacks = [], failed_request_log_file_name = nil)
15
+ def initialize(repository, logger, run_every, callbacks = [], failed_request_log_file_name = nil)
16
16
  @repository = repository
17
17
  @logger = logger
18
+ @run_every = run_every
18
19
  @callbacks = callbacks
19
20
  @failed_request_log_file_name = failed_request_log_file_name
20
21
  end
@@ -11,6 +11,42 @@ module Filbunke
11
11
  def setup_clients!(local = false)
12
12
  @logger = Logger.new(@config["log_file"], local)
13
13
  @logger.log("Initializing filbunked")
14
+
15
+ if(@config["version"] && @config["version"].to_i == 2)
16
+ version_2_configure
17
+ else
18
+ version_1_configure
19
+ end
20
+ end
21
+
22
+ def version_2_configure
23
+ @config["repositories"].each do |repository_name, local_repository_config|
24
+ @logger.log("Initializing repository (version 2): #{repository_name}")
25
+ repository_file = File.read("#{repository_name}.yml")
26
+ static_repository_config = YAML.load("#{@config["repository_files_path"]}#{repository_file}")
27
+ @clients << begin
28
+ repository = Repository.new(static_repository_config["filbunke_server_repository"],
29
+ static_repository_config["filbunke_server_host"],
30
+ static_repository_config["filbunke_server_port"],
31
+ local_repository_config["local_path"],
32
+ @config["file_umask"].to_i,
33
+ @config["directory_umask"].to_i,
34
+ static_repository_config["file_url_username"],
35
+ static_repository_config["file_url_password"],
36
+ @config["hadoop_binary"])
37
+ callbacks = []
38
+ local_repository_config["callbacks"].each do |callback_name, callback_config|
39
+ require ::File.join(@config["callback_path"], callback_name.to_s)
40
+ callback_class = Module.const_get(callback_name.split("_").map(&:capitalize).join)
41
+ callbacks << callback_class.new(@logger, callback_config)
42
+ end if local_repository_config["callbacks"]
43
+ run_every = local_repository_config["run_every"] ? local_repository_config["run_every"].to_i : @config["run_every"].to_i
44
+ Client.new(repository, @logger, run_every, callbacks)
45
+ end
46
+ end
47
+ end
48
+
49
+ def version_1_configure
14
50
  @config["repositories"].each do |repository_name, repository_config|
15
51
  @logger.log("Initializing repository: #{repository_name}")
16
52
  @clients << begin
@@ -29,26 +65,32 @@ module Filbunke
29
65
  callback_class = Module.const_get(callback_name.split("_").map(&:capitalize).join)
30
66
  callbacks << callback_class.new(@logger, callback_config)
31
67
  end
32
- Client.new(repository, @logger, callbacks)
68
+ Client.new(repository, @logger, @config["run_every"].to_i, callbacks)
33
69
  end
34
70
  end
35
71
  end
36
72
 
73
+
74
+
37
75
  def run!
38
76
  version = ::File.read(::File.expand_path(::File.join(::File.dirname(__FILE__), "../../VERSION"))).chomp
39
77
  @logger.log("Starting filbunked version #{version}")
78
+ counter = 0
40
79
  while true
80
+ counter++
41
81
  begin
42
82
  @clients.each do |client|
43
- new_checkpoint = client.update_files!(checkpoint_for_repository(client.repository))
44
- update_checkpoint_for_repository(client.repository, new_checkpoint)
83
+ if(counter % client.run_every == 0)
84
+ new_checkpoint = client.update_files!(checkpoint_for_repository(client.repository))
85
+ update_checkpoint_for_repository(client.repository, new_checkpoint)
86
+ end
45
87
  end
46
88
  rescue StandardError => e
47
89
  @logger.log("Died.. #{e.message}")
48
90
  @logger.log(e.backtrace.join("\n"))
49
91
  exit 1
50
92
  end
51
- sleep @config["run_every"]
93
+ sleep 1
52
94
  end
53
95
  end
54
96
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 8
8
- - 1
9
- version: 1.8.1
8
+ - 2
9
+ version: 1.8.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Wouter de Bie
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-09-04 00:00:00 +02:00
18
+ date: 2012-09-07 00:00:00 +02:00
19
19
  default_executable: filbunked
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency