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 +1 -1
- data/filbunke.gemspec +2 -2
- data/lib/filbunke/client.rb +3 -2
- data/lib/filbunke/daemon.rb +46 -4
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.8.
|
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.
|
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-
|
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}
|
data/lib/filbunke/client.rb
CHANGED
@@ -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
|
data/lib/filbunke/daemon.rb
CHANGED
@@ -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
|
-
|
44
|
-
|
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
|
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
|
-
-
|
9
|
-
version: 1.8.
|
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-
|
18
|
+
date: 2012-09-07 00:00:00 +02:00
|
19
19
|
default_executable: filbunked
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|