nutcracker-web 0.0.14 → 0.0.19

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7794d17b7f2eeb1931b42dd98ed1f49e278a6163
4
- data.tar.gz: 23fa427c30e6787a49036c520e1246ae23dc19d2
2
+ SHA256:
3
+ metadata.gz: 2e70d2a5e6a87730d2ad90905a8da57cf3269475dc85be6666306283fe5296df
4
+ data.tar.gz: a9f60bf120fa16a5ce1413d0c465044e75f9b1fcb157e932a1b6f7ec3b36c47e
5
5
  SHA512:
6
- metadata.gz: 528b1c7a71faf006d83c6a765c6c6d404c0999ba31ff8abf55fe1327f71b0aaf22e44444eda3c67e84498b48361e675237b36c19219cf4aba1049bf166aecfcc
7
- data.tar.gz: c7156551bcc9eb8dfae5e178cdaba89cb5c3ca59c20e07d4693034fbe83c9b4e94abea503d81e7ec3f8dbda42b1ca59ac5a874ef88a93f33511237e0ce791c30
6
+ metadata.gz: 8498dfc5396afc100f27b84ff3fe9a47d4384b0c60388bf8d85b2ae89fcc7719ca9a2b390813f4a1dc2294a032ac23d39dd18f21a4ac9e64d7926b5287585e3b
7
+ data.tar.gz: cfa689fb43a17c8de1b277beb4b3bf40881916257e5f6652cd1a38f6707ef39424a1827d906d26151959bef4074b569383183fa9a7d2c49ca138cbc2726e5295
data/Gemfile CHANGED
@@ -6,6 +6,8 @@ gem 'thin'
6
6
  gem 'sprockets'
7
7
  gem 'coffee-script'
8
8
  gem 'eco'
9
- gem 'json'
10
9
  gem 'uglifier'
11
10
  gem 'nutcracker', ">=0.4.1.20"
11
+ gem "rack", ">= 2.0.8"
12
+ gem 'rake'
13
+ gem 'gem-release'
data/Gemfile.lock CHANGED
@@ -4,38 +4,44 @@ GEM
4
4
  coffee-script (2.4.1)
5
5
  coffee-script-source
6
6
  execjs
7
- coffee-script-source (1.9.1.1)
8
- daemons (1.2.3)
7
+ coffee-script-source (1.12.2)
8
+ concurrent-ruby (1.0.5)
9
+ daemons (1.4.1)
9
10
  eco (1.0.0)
10
11
  coffee-script
11
12
  eco-source
12
13
  execjs
13
14
  eco-source (1.1.0.rc.1)
14
- eventmachine (1.0.8)
15
- execjs (2.6.0)
16
- haml (4.0.7)
15
+ eventmachine (1.2.7)
16
+ execjs (2.7.0)
17
+ gem-release (2.2.2)
18
+ haml (5.0.4)
19
+ temple (>= 0.8.0)
17
20
  tilt
18
- json (1.8.3)
19
- nutcracker (0.4.1.20)
21
+ mustermann (1.0.3)
22
+ nutcracker (0.4.1.22)
20
23
  redis
21
- rack (1.6.4)
22
- rack-protection (1.5.3)
24
+ rack (2.2.3)
25
+ rack-protection (2.0.4)
23
26
  rack
24
- redis (3.3.2)
25
- sinatra (1.4.6)
26
- rack (~> 1.4)
27
- rack-protection (~> 1.4)
28
- tilt (>= 1.3, < 3)
29
- sprockets (3.3.5)
27
+ rake (13.0.1)
28
+ redis (4.0.2)
29
+ sinatra (2.0.4)
30
+ mustermann (~> 1.0)
31
+ rack (~> 2.0)
32
+ rack-protection (= 2.0.4)
33
+ tilt (~> 2.0)
34
+ sprockets (3.7.2)
35
+ concurrent-ruby (~> 1.0)
30
36
  rack (> 1, < 3)
31
- thin (1.6.4)
37
+ temple (0.8.0)
38
+ thin (1.8.1)
32
39
  daemons (~> 1.0, >= 1.0.9)
33
40
  eventmachine (~> 1.0, >= 1.0.4)
34
- rack (~> 1.0)
35
- tilt (2.0.1)
36
- uglifier (2.7.2)
37
- execjs (>= 0.3.0)
38
- json (>= 1.8.0)
41
+ rack (>= 1, < 3)
42
+ tilt (2.0.8)
43
+ uglifier (4.1.19)
44
+ execjs (>= 0.3.0, < 3)
39
45
 
40
46
  PLATFORMS
41
47
  ruby
@@ -43,13 +49,15 @@ PLATFORMS
43
49
  DEPENDENCIES
44
50
  coffee-script
45
51
  eco
52
+ gem-release
46
53
  haml
47
- json
48
54
  nutcracker (>= 0.4.1.20)
55
+ rack (>= 2.0.8)
56
+ rake
49
57
  sinatra
50
58
  sprockets
51
59
  thin
52
60
  uglifier
53
61
 
54
62
  BUNDLED WITH
55
- 1.11.2
63
+ 1.17.3
@@ -4,6 +4,9 @@ require 'tilt/haml'
4
4
  require 'haml'
5
5
  require 'sinatra'
6
6
  require 'json'
7
+ require 'thread'
8
+ require 'socket'
9
+
7
10
 
8
11
  module Nutcracker
9
12
  module Web
@@ -21,11 +24,29 @@ module Nutcracker
21
24
  haml :index
22
25
  end
23
26
 
27
+ get '/status' do
28
+ # return array of maps each map is {instance_ip => [unresposive_node_ports],instance_ip => [unresposive_node_ports]}
29
+ # exaple: [{"127.0.0.1"=>["6370", "6371", "6372", "6373"]}, {"192.168.1.114"=>["6370"]}]
30
+ unresponsive_ndoes = @nutcracker.
31
+ config.
32
+ values.
33
+ map {|x| x["servers"] + [x["listen"]]}.
34
+ flatten.
35
+ map {|x| x.split(":")}.
36
+ map {|host, port| Thread.new {TCPSocket.new(host,port).close.nil? rescue {:host=>host,:port=>port} } }.
37
+ map(&:value).
38
+ group_by{|k| k[:host]}.
39
+ map {|k,v| [k=>v.map { |v| v[:port] }] }.
40
+ flatten
41
+ #if there are unresposive_node in the list return status 401, if empty return 200
42
+ status = unresponsive_ndoes.empty?.tap {|x| status(x ? 200 : 401)}
43
+ end
44
+
24
45
  get '/overview.json' do
25
46
  content_type :json
26
47
  overview.to_json
27
48
  end
28
-
49
+
29
50
  def self.assets
30
51
  require 'sprockets'
31
52
  Sprockets::Environment.new { |env|
@@ -34,26 +55,26 @@ module Nutcracker
34
55
  }
35
56
  }
36
57
  end
37
-
58
+
38
59
  private
39
-
60
+
40
61
  def overview
41
62
  JSON.parse(@nutcracker.overview.to_json).tap do |internal|
42
63
  internal["clusters"] += overview_from_external_servers["clusters"]
43
64
  end
44
65
  end
45
-
66
+
46
67
  def overview_from_external_servers
47
68
  {"clusters" => []}.tap do |data|
48
- Queue.new.tap do |q|
69
+ Queue.new.tap do |q|
49
70
  @external_servers.map do |server|
50
- Thread.new { q.push JSON.parse(open("http://#{server}/overview.json").read) }
71
+ Thread.new { q.push JSON.parse(open("http://#{server}/overview.json").read) rescue nil }
51
72
  end.each(&:join)
52
73
  data["clusters"] += q.pop["clusters"] while not q.empty?
53
74
  end # queue
54
75
  end # data
55
76
  end # def
56
-
77
+
57
78
  end
58
79
  end
59
80
  end
@@ -1,5 +1,5 @@
1
1
  module Nutcracker
2
2
  module Web
3
- VERSION="0.0.14"
3
+ VERSION="0.0.19"
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ module Nutcracker
6
6
  @thread = Thread.new do
7
7
  Thread.current.abort_on_exception=true
8
8
 
9
- app = Rack::URLMap.new(o.fetch(:context,"/") =>
9
+ app = Rack::URLMap.new(o.fetch(:context,"/") =>
10
10
  App.new(nutcracker, o.fetch(:external_servers,[])))
11
11
 
12
12
  Rack::Server.start(
@@ -22,11 +22,11 @@ module Nutcracker
22
22
  end
23
23
  self
24
24
  end
25
-
25
+
26
26
  def self.join
27
27
  @thread.join
28
28
  end
29
-
29
+
30
30
  def self.stop
31
31
  @thread.kill
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutcracker-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eran Barak Levi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-27 00:00:00.000000000 Z
11
+ date: 2021-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: nutcracker
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.4.1.20
47
+ version: 0.4.1.23
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.4.1.20
54
+ version: 0.4.1.23
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 2.0.8
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 2.0.8
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: haml
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -123,12 +123,10 @@ files:
123
123
  - lib/nutcracker/web.rb
124
124
  - lib/nutcracker/web/app.rb
125
125
  - lib/nutcracker/web/version.rb
126
- - public/assets/application.css
127
- - public/assets/application.js
128
126
  homepage: http://www.kontera.com
129
127
  licenses: []
130
128
  metadata: {}
131
- post_install_message:
129
+ post_install_message:
132
130
  rdoc_options: []
133
131
  require_paths:
134
132
  - lib
@@ -143,9 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
141
  - !ruby/object:Gem::Version
144
142
  version: '0'
145
143
  requirements: []
146
- rubyforge_project: ruby-nutcracker-web
147
- rubygems_version: 2.6.10
148
- signing_key:
144
+ rubygems_version: 3.0.9
145
+ signing_key:
149
146
  specification_version: 4
150
147
  summary: Nutcracker Web Interface
151
148
  test_files: []