nutcracker-web 0.0.16 → 0.0.22
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 +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +6 -4
- data/lib/nutcracker/web/app.rb +17 -6
- data/lib/nutcracker/web/version.rb +1 -1
- metadata +6 -8
- data/public/assets/application.css +0 -7294
- data/public/assets/application.js +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94b0d83f65e6ff29016550dd2a8367daec0accd56057d2f0f16b3e6ada3baa22
|
4
|
+
data.tar.gz: d6de0c293a39e13244855033a53d1f93804dcabc64947f4aed0509c3edbe0d94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63c4f8f59ca50624de119404ac0376f7cdaff825dd9c5e2d66de9d71219f2b2ff0a6f3029c06c28bc25de0eaa73c8e9697ec03b43965c15866926a01eeddc65e
|
7
|
+
data.tar.gz: 61e440f29b028297a37618023531558e1f580652e83b03297926cebfd8cca1cb8414bbc9468fbe1ede6c6195debc5c43c70a13aa7c5f6b9396a69fbeaf9c5878
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -6,7 +6,7 @@ GEM
|
|
6
6
|
execjs
|
7
7
|
coffee-script-source (1.12.2)
|
8
8
|
concurrent-ruby (1.0.5)
|
9
|
-
daemons (1.
|
9
|
+
daemons (1.4.1)
|
10
10
|
eco (1.0.0)
|
11
11
|
coffee-script
|
12
12
|
eco-source
|
@@ -14,13 +14,14 @@ GEM
|
|
14
14
|
eco-source (1.1.0.rc.1)
|
15
15
|
eventmachine (1.2.7)
|
16
16
|
execjs (2.7.0)
|
17
|
+
gem-release (2.2.2)
|
17
18
|
haml (5.0.4)
|
18
19
|
temple (>= 0.8.0)
|
19
20
|
tilt
|
20
21
|
mustermann (1.0.3)
|
21
22
|
nutcracker (0.4.1.22)
|
22
23
|
redis
|
23
|
-
rack (2.2.
|
24
|
+
rack (2.2.3)
|
24
25
|
rack-protection (2.0.4)
|
25
26
|
rack
|
26
27
|
rake (13.0.1)
|
@@ -34,7 +35,7 @@ GEM
|
|
34
35
|
concurrent-ruby (~> 1.0)
|
35
36
|
rack (> 1, < 3)
|
36
37
|
temple (0.8.0)
|
37
|
-
thin (1.
|
38
|
+
thin (1.8.1)
|
38
39
|
daemons (~> 1.0, >= 1.0.9)
|
39
40
|
eventmachine (~> 1.0, >= 1.0.4)
|
40
41
|
rack (>= 1, < 3)
|
@@ -48,6 +49,7 @@ PLATFORMS
|
|
48
49
|
DEPENDENCIES
|
49
50
|
coffee-script
|
50
51
|
eco
|
52
|
+
gem-release
|
51
53
|
haml
|
52
54
|
nutcracker (>= 0.4.1.20)
|
53
55
|
rack (>= 2.0.8)
|
@@ -58,4 +60,4 @@ DEPENDENCIES
|
|
58
60
|
uglifier
|
59
61
|
|
60
62
|
BUNDLED WITH
|
61
|
-
1.17.
|
63
|
+
1.17.3
|
data/lib/nutcracker/web/app.rb
CHANGED
@@ -25,15 +25,26 @@ module Nutcracker
|
|
25
25
|
end
|
26
26
|
|
27
27
|
get '/status' do
|
28
|
+
content_type :json
|
29
|
+
# return array of maps each map is {instance_ip => [unresposive_node_ports],instance_ip => [unresposive_node_ports]}
|
30
|
+
# exaple: [{"127.0.0.1"=>["6370", "6371", "6372", "6373"]}, {"192.168.1.114"=>["6370"]}]
|
31
|
+
# return status 500 if there are unresposive_node in the list, if empty return 200
|
32
|
+
|
28
33
|
@nutcracker.
|
29
34
|
config.
|
30
35
|
values.
|
31
|
-
map {|x| x["servers"] + [x["listen"]]}.
|
36
|
+
map { |x| x["servers"] + [x["listen"]] }.
|
37
|
+
flatten.
|
38
|
+
map { |x| x.split(":") }.
|
39
|
+
map { |host, port| Thread.new { { host: host, port: port, ok: (TCPSocket.new(host,port).close.nil? rescue false) } } }.
|
40
|
+
map(&:value).
|
41
|
+
flatten.
|
42
|
+
reject { |node_health| node_health[:ok]}. #cleare all healthy nodes from the nodes array
|
43
|
+
tap { |unhealthy_nodes| status(500) unless unhealthy_nodes.empty? }.
|
44
|
+
group_by{|k| k[:host]}.
|
45
|
+
map {|k,v| [k=>v.map { |v| v[:port] }] }.
|
32
46
|
flatten.
|
33
|
-
|
34
|
-
map {|host, port| Thread.new {TCPSocket.new(host,port).close.nil? rescue false}}.map(&:value).
|
35
|
-
all?.
|
36
|
-
tap {|x| status(x ? 200 : 401)}
|
47
|
+
to_json
|
37
48
|
end
|
38
49
|
|
39
50
|
get '/overview.json' do
|
@@ -62,7 +73,7 @@ module Nutcracker
|
|
62
73
|
{"clusters" => []}.tap do |data|
|
63
74
|
Queue.new.tap do |q|
|
64
75
|
@external_servers.map do |server|
|
65
|
-
Thread.new { q.push JSON.parse(open("http://#{server}/overview.json").read) }
|
76
|
+
Thread.new { q.push JSON.parse(open("http://#{server}/overview.json").read) rescue nil }
|
66
77
|
end.each(&:join)
|
67
78
|
data["clusters"] += q.pop["clusters"] while not q.empty?
|
68
79
|
end # queue
|
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.
|
4
|
+
version: 0.0.22
|
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:
|
11
|
+
date: 2021-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -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,8 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
141
|
- !ruby/object:Gem::Version
|
144
142
|
version: '0'
|
145
143
|
requirements: []
|
146
|
-
rubygems_version: 3.0.
|
147
|
-
signing_key:
|
144
|
+
rubygems_version: 3.0.9
|
145
|
+
signing_key:
|
148
146
|
specification_version: 4
|
149
147
|
summary: Nutcracker Web Interface
|
150
148
|
test_files: []
|