zold 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/zold +1 -1
- data/lib/zold/backtrace.rb +36 -0
- data/lib/zold/commands/merge.rb +3 -2
- data/lib/zold/commands/node.rb +11 -3
- data/lib/zold/commands/remote.rb +1 -0
- data/lib/zold/commands/routines/bonuses.rb +2 -5
- data/lib/zold/http.rb +2 -1
- data/lib/zold/node/front.rb +2 -1
- data/lib/zold/remotes.rb +2 -1
- data/lib/zold/verbose_thread.rb +2 -2
- data/lib/zold/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56ce9c058ad3adfea8a2bec57f2d27fb85aa71a8
|
4
|
+
data.tar.gz: 58177571a9f14a1be47390a0a1b4c5c0bbfbd8f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5872e18495a0c45c1218959e4f2dd96ca5a2de4632ce725e4ce74a97bde73627d0a52187c4108b3788dc9974f541522af9e2f8a750ef42188b31d3089a0c6fad
|
7
|
+
data.tar.gz: 121ba02407f26bd00e71127f62de8508bd9bfab724510a148d9e9862ceb3dda218b7d16657fb9a4ec0296415db7d63761b23aa076044d58ca0dc24be602f4eb2
|
data/bin/zold
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright (c) 2018 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
|
21
|
+
# Backtrace.
|
22
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
23
|
+
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
24
|
+
# License:: MIT
|
25
|
+
module Zold
|
26
|
+
# Backtrace of an exception
|
27
|
+
class Backtrace
|
28
|
+
def initialize(error)
|
29
|
+
@error = error
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_s
|
33
|
+
"#{@error.class.name}: #{@error.message}\n#{@error.backtrace.join("\n\t")}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/zold/commands/merge.rb
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
require 'slop'
|
22
22
|
require 'rainbow'
|
23
23
|
require_relative 'args'
|
24
|
+
require_relative '../backtrace'
|
24
25
|
require_relative '../log'
|
25
26
|
require_relative '../id'
|
26
27
|
require_relative '../wallet'
|
@@ -90,8 +91,8 @@ Available options:"
|
|
90
91
|
def merge_one(patch, wallet, name)
|
91
92
|
patch.join(wallet)
|
92
93
|
rescue StandardError => e
|
93
|
-
@log.error("Can't merge a copy coming from #{name}
|
94
|
-
@log.debug(
|
94
|
+
@log.error("Can't merge a copy coming from #{name}: #{e.message}")
|
95
|
+
@log.debug(Backtrace.new(e).to_s)
|
95
96
|
end
|
96
97
|
end
|
97
98
|
end
|
data/lib/zold/commands/node.rb
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
require 'slop'
|
22
22
|
require_relative '../version'
|
23
23
|
require_relative '../score'
|
24
|
+
require_relative '../backtrace'
|
24
25
|
require_relative '../metronome'
|
25
26
|
require_relative '../wallets'
|
26
27
|
require_relative '../remotes'
|
@@ -169,12 +170,16 @@ module Zold
|
|
169
170
|
nohup_log.print("Started process ##{thr.pid} from process ##{Process.pid}: #{cmd}\n")
|
170
171
|
stdin.close
|
171
172
|
until stdout.eof?
|
172
|
-
|
173
|
+
begin
|
174
|
+
line = stdout.gets
|
175
|
+
rescue IOError => e
|
176
|
+
line = Backtrace.new(e).to_s
|
177
|
+
end
|
173
178
|
nohup_log.print(line)
|
174
179
|
end
|
175
180
|
code = thr.value.to_i
|
176
181
|
nohup_log.print("Exit code of process ##{thr.pid} is #{code}: #{cmd}\n")
|
177
|
-
raise
|
182
|
+
raise unless code.zero?
|
178
183
|
end
|
179
184
|
end
|
180
185
|
|
@@ -190,9 +195,12 @@ module Zold
|
|
190
195
|
end
|
191
196
|
myself = File.expand_path($PROGRAM_NAME)
|
192
197
|
loop do
|
193
|
-
|
198
|
+
begin
|
194
199
|
exec("#{myself} #{ARGV.delete_if { |a| a.start_with?('--nohup') }.join(' ')}", nohup_log)
|
195
200
|
exec(opts['nohup-command'], nohup_log)
|
201
|
+
rescue StandardError => e
|
202
|
+
nohup_log.print(Backtrace.new(e).to_s)
|
203
|
+
raise e
|
196
204
|
end
|
197
205
|
end
|
198
206
|
end
|
data/lib/zold/commands/remote.rb
CHANGED
@@ -42,17 +42,14 @@ module Zold
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def exec(_ = 0)
|
45
|
-
sleep(
|
45
|
+
sleep(10 * 60) unless @opts['routine-immediately']
|
46
46
|
raise '--private-key is required to pay bonuses' unless @opts['private-key']
|
47
47
|
raise '--bonus-wallet is required to pay bonuses' unless @opts['bonus-wallet']
|
48
48
|
raise '--bonus-amount is required to pay bonuses' unless @opts['bonus-amount']
|
49
49
|
winners = Remote.new(remotes: @remotes, log: @log, farm: @farm).run(
|
50
50
|
['remote', 'elect', @opts['bonus-wallet'], '--private-key', @opts['private-key']]
|
51
51
|
)
|
52
|
-
if winners.empty?
|
53
|
-
@log.info('No winners elected, won\'t pay any bonuses')
|
54
|
-
return
|
55
|
-
end
|
52
|
+
return if winners.empty?
|
56
53
|
winners.each do |score|
|
57
54
|
Pull.new(wallets: @wallets, remotes: @remotes, copies: @copies, log: @log).run(
|
58
55
|
['pull', opts['bonus-wallet']]
|
data/lib/zold/http.rb
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
require 'rainbow'
|
22
22
|
require 'uri'
|
23
23
|
require 'net/http'
|
24
|
+
require_relative 'backtrace'
|
24
25
|
require_relative 'version'
|
25
26
|
require_relative 'score'
|
26
27
|
|
@@ -83,7 +84,7 @@ module Zold
|
|
83
84
|
end
|
84
85
|
|
85
86
|
def body
|
86
|
-
|
87
|
+
Backtrace.new(@ex).to_s
|
87
88
|
end
|
88
89
|
|
89
90
|
def code
|
data/lib/zold/node/front.rb
CHANGED
@@ -25,6 +25,7 @@ require 'sinatra/base'
|
|
25
25
|
require 'webrick'
|
26
26
|
require 'diffy'
|
27
27
|
require 'concurrent'
|
28
|
+
require_relative '../backtrace'
|
28
29
|
require_relative '../version'
|
29
30
|
require_relative '../wallet'
|
30
31
|
require_relative '../log'
|
@@ -203,7 +204,7 @@ module Zold
|
|
203
204
|
status 503
|
204
205
|
e = env['sinatra.error']
|
205
206
|
content_type 'text/plain'
|
206
|
-
|
207
|
+
Backtrace.new(e).to_s
|
207
208
|
end
|
208
209
|
|
209
210
|
private
|
data/lib/zold/remotes.rb
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
require 'csv'
|
22
22
|
require 'uri'
|
23
23
|
require 'fileutils'
|
24
|
+
require_relative 'backtrace'
|
24
25
|
require_relative 'node/farm'
|
25
26
|
require_relative 'atomic_file'
|
26
27
|
|
@@ -157,7 +158,7 @@ module Zold
|
|
157
158
|
error(r[:host], r[:port])
|
158
159
|
errors = errors(r[:host], r[:port])
|
159
160
|
log.info("#{Rainbow("#{r[:host]}:#{r[:port]}").red}: #{e.message}; errors=#{errors}")
|
160
|
-
log.debug(
|
161
|
+
log.debug(Backtrace.new(e).to_s)
|
161
162
|
remove(r[:host], r[:port]) if errors > Remotes::TOLERANCE
|
162
163
|
end
|
163
164
|
end
|
data/lib/zold/verbose_thread.rb
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
# SOFTWARE.
|
20
20
|
|
21
21
|
require_relative 'log'
|
22
|
+
require_relative 'backtrace'
|
22
23
|
|
23
24
|
# Verbose thread.
|
24
25
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
@@ -34,8 +35,7 @@ module Zold
|
|
34
35
|
def run(safe = false)
|
35
36
|
yield
|
36
37
|
rescue StandardError => e
|
37
|
-
@log.error(
|
38
|
-
@log.debug(e.backtrace.join("\n\t"))
|
38
|
+
@log.error(Backtrace.new(e).to_s)
|
39
39
|
raise e unless safe
|
40
40
|
end
|
41
41
|
end
|
data/lib/zold/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
@@ -321,6 +321,7 @@ files:
|
|
321
321
|
- lib/zold.rb
|
322
322
|
- lib/zold/amount.rb
|
323
323
|
- lib/zold/atomic_file.rb
|
324
|
+
- lib/zold/backtrace.rb
|
324
325
|
- lib/zold/commands/args.rb
|
325
326
|
- lib/zold/commands/calculate.rb
|
326
327
|
- lib/zold/commands/clean.rb
|