aggkit 0.4.4.10477 → 0.4.4.11050

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/aggwrap +30 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d76aef3ab0c4a688d36c112a6b9211bffa3c02d6
4
- data.tar.gz: e0b28f0a9c673a661058887ef4c4c9fe37b93d21
3
+ metadata.gz: e382cdb9cfb986897ccc243f7c91f544c4834531
4
+ data.tar.gz: 1443f0a041c67d7c0adf82837a946a8b026d16fa
5
5
  SHA512:
6
- metadata.gz: 1c4da6ab9b8b83a728ecbbd8c0b503772f00831cc2ed8f7c2851ea8c3b133ada6a2d9b7809f8a2f993d906b0eef3689a2bc564b2480e45ecae4140e12b01b8ef
7
- data.tar.gz: 761e7c2e252507b1f294abf6b6e531262d7b989e9511bfeef809eafc5b20748302b7d422e83d291b894568c59c7b2191ea67d0b33025dcd54a6dc25340cc9e16
6
+ metadata.gz: d6e652bf997f8de37bbc90b4e40fe94dcaf31aeb2806d98783a79d3c1ecc8602377c530e0b36fc79a4a779202a0af0f0b406bf777163e34ed6a0809ff0d7859f
7
+ data.tar.gz: d672dbe8d83d3354f72918927ed3b155a01ea0f5830faf33ca89497833ad5373ffc6e62710fdd6c36a308d09657967998a481215c077752c6d7a40539b60052f
data/bin/aggwrap CHANGED
@@ -57,6 +57,8 @@ STDERR.sync
57
57
  STDOUT.sync
58
58
 
59
59
  UTIL = File.basename(__FILE__)
60
+ DEFAULT_RELOAD_INTERVAL = 60 # seconds
61
+
60
62
 
61
63
  include Aggkit::Runner
62
64
 
@@ -67,7 +69,8 @@ end
67
69
  @opts = {
68
70
  service: ENV['AGGREDATOR_SERVICE'],
69
71
  id: SecureRandom.hex(8),
70
- consul: ENV['CONSUL_HTTP_ADDR']
72
+ consul: ENV['CONSUL_HTTP_ADDR'],
73
+ reload_interval: DEFAULT_RELOAD_INTERVAL
71
74
  }
72
75
 
73
76
  @opts[:exec] = (begin
@@ -113,6 +116,12 @@ parser = Aggkit::OptionParser.new do |o|
113
116
  o.on('--script <FILE>', 'Create TTL consul check and pass script result to it') do |file|
114
117
  @opts[:script] = file.to_s
115
118
  end
119
+
120
+
121
+ o.on('--reload-config-interval <INTERVAL>', 'Seconds between check change service configuration') do |interval|
122
+ @opts[:reload_interval] = Integer(interval)
123
+ end
124
+
116
125
  end
117
126
  parser.parse!
118
127
 
@@ -272,6 +281,26 @@ Thread.new do
272
281
  end
273
282
  end
274
283
 
284
+
285
+ Thread.new(@opts[:reload_interval], @opts[:service]) do |sleep_interval, service_name|
286
+ kv_prefix = ['services', 'env']
287
+ config_hash = nil
288
+ service_kv_path = kv_prefix.append(service_name).join('/')
289
+ loop do
290
+ sleep sleep_interval
291
+ data = Diplomat::Kv.get(service_kv_path, recurse: true, convert_to_hash: true) rescue {}
292
+
293
+ service_data = data.dig(*kv_prefix)
294
+ next if service_data.nil?
295
+ new_hash = Digest::MD5.new.update(service_data.to_json).hexdigest
296
+ if !config_hash.nil? && config_hash != new_hash
297
+ die("Change kv configuration for consul service.")
298
+ end
299
+ config_hash = new_hash
300
+ end
301
+ end
302
+
303
+
275
304
  $pid = fork do
276
305
  STDERR.sync
277
306
  STDOUT.sync
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aggkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4.10477
4
+ version: 0.4.4.11050
5
5
  platform: ruby
6
6
  authors:
7
7
  - Godko Ivan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-11 00:00:00.000000000 Z
12
+ date: 2019-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: diplomat