nutcracker-web 0.0.14 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
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: []