filbunke 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
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