grenache-ruby-http 0.2.3 → 0.2.4

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
2
  SHA1:
3
- metadata.gz: 29cd62931c38dd06f17544c50e0eabd147db5402
4
- data.tar.gz: 8e81cd549494766f2590aa9142ad4092b249bfb0
3
+ metadata.gz: 15a1cf8dee8aa1f8916d109f769bd1e41af5995e
4
+ data.tar.gz: b0d81fe6ed1d46a42ae162aa63dfa48b57e117fc
5
5
  SHA512:
6
- metadata.gz: 4a4a2f80c55ceb0381215d83063f5c743be25bd11c3596cd29a4e13c6f9b7c058fb7da29d4d62c8533f91036b9959f3b7eeb2840b27e44d5770af06757f64a82
7
- data.tar.gz: 1787f9ef3dfdcdf81d68272503defee582599eca47922b7e5401059750ffeff0b53703d39d15da5db8094019b99262860c942fe8625dfde8f0bf74ca94fbea38
6
+ metadata.gz: baf12653020538a93f54d3a905b537f1ad9696df04f260846d8b6feac55b71aba0feaabd16d1099801bad7a2bb6f31c0ae6f2990812905c833fe057fecac0ca1
7
+ data.tar.gz: ba8c325edac6783ca4cace5b74fc4b6460eb468f4a7391abd5a69cb7c0cff0a5362f14e7734d365bb5d319f2ff53774355cc8ab174888fb2896956fbd6ba16cc
@@ -0,0 +1,64 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
32
+ -----END CERTIFICATE-----
33
+ -----BEGIN CERTIFICATE-----
34
+ MIIFgDCCA2gCCQDvmZA10HvRHTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UEBhMC
35
+ VVMxCzAJBgNVBAgMAk1BMQ8wDQYDVQQHDAZCb3N0b24xEzARBgNVBAoMCkV4YW1w
36
+ bGUgQ28xEDAOBgNVBAsMB3RlY2hvcHMxCzAJBgNVBAMMAmNhMSAwHgYJKoZIhvcN
37
+ AQkBFhFjZXJ0c0BleGFtcGxlLmNvbTAeFw0xNzA1MjIxMzQ0NDNaFw00NDEwMDYx
38
+ MzQ0NDNaMIGBMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExDzANBgNVBAcMBkJv
39
+ c3RvbjETMBEGA1UECgwKRXhhbXBsZSBDbzEQMA4GA1UECwwHdGVjaG9wczELMAkG
40
+ A1UEAwwCY2ExIDAeBgkqhkiG9w0BCQEWEWNlcnRzQGV4YW1wbGUuY29tMIICIjAN
41
+ BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0SrOAQlmrQTqnXqSiKpvhb/nd79r
42
+ 59V8TY81yPiOaVXeIaCrIiDA66JzadzHHHHMt8sEsTI92BULNvQYsauRm8NmBPWJ
43
+ YKYpUj0FguG7NzDLruCsBUq1faZyLLOA2Dr33gTzJFaVtvD0Z9ig2UjTSbqEnCcY
44
+ fF6WkCcYWBE3xkyRZkuVZAaCu3PTKVvAkwxHkg4wS8feW/Z/VGLTmcd/lWvVgC1V
45
+ Kl7wwubE/8MXwjJlQBzkU5WotFHgXJMnepQTuqu5ZlDpOZehLPQ16LUjUIu0xnIt
46
+ 8k+YJ3JXdvP5+ifx+0YK9NpoU717spKgsME4z1Q6foDiaGgwWJ5bZYXi2OVD64yj
47
+ FqKN4gdpe037OwgTxCJ2FS23Ijndzi/K+AULYXbjXUo/D+CXuJ/MfOXo8DHfI1ld
48
+ ZgiHw1co2f1KQmL+AJ/YAEoC3228JG31mvX2sXL2p65QU9DmTaOrAYCX/F5T1frs
49
+ jsO560Zpvs6C7Di8eQjrx3UhMz8zYSLT35/0HPPoLA9dkJOEDpg3NtLMuN1MigNZ
50
+ VxRyadXrka4q7s/mTS1+0NbJHv4JYwzYKa1pdFeX102I9GVS9VZXpmRqriki1Sh1
51
+ rb7YOuK+I92HIzIVpSeI/OB7xguH8rh+/vibB72SY18FJWyfGcr8ewwkPSVocZeu
52
+ 9rCXIDLUY0Sojq8CAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAbIPMMkzHlybXIr8z
53
+ 4Dp/3czyPWLwjFfgeL4wM5Hm/JMxaFnsWgmkUdrvjlYofzaF+2U29FsDgcrkcCzD
54
+ gTCOOHG0Pw1i8R57Dt68ycP4/e0iPpMmuTpNSqB9DilGscKARhE85o0FivAUzvUY
55
+ RngIOtbf02OoaRbkAsmKdC4+PBNJbiS3U5V55r2HCv0zqXMFj4dXqfyWKkcZt3JR
56
+ 8SkzUIhIVnwhTf8ZttXcsWmPMy3nqckcy6k3zLr7Gf63JJZAYecWwhydAtv4wRrm
57
+ f3FwIvRxPLKTc/2YXF77I9YvHgnLOvE2qlLNnajQgOcIYGvxizDVCqnMS+8oBHWb
58
+ uL6mZP4hOCL6ifynkAHltg59heM3WJ2MEwLjiSvMYY4otT4X9KxsRdsg0Gx96bVe
59
+ P4RBlW3ebxcOnFuoMC3WT22/1ETqpQbrWOD5mJkFa6Q8aE6yWLLcdJznxF2M0Mf8
60
+ PTh62cFJMC4E0gN9KRU+E/qBJsqTamHHAHjcaUYDBXsvtFDOlo1dbAzJylpwRUEg
61
+ F115KpRH6DLLexS5YB9bASIsXBK+Afwm0FOjqGiEd527qAk5UiamyomKXxQ+DIbc
62
+ 6QdO7XGpM3molI7Zzf79O4QdlRNzNgqPeCRUJWe2L6G7KECNvNjWepN3+0xAq9BO
63
+ t53fDsW6Y1yw2xErpMGUHBQ05y4=
64
+ -----END CERTIFICATE-----
@@ -3,9 +3,7 @@ require_relative '../lib/grenache-ruby-http.rb'
3
3
  Grenache::Http.configure do |conf|
4
4
  conf.grape_address = "http://127.0.0.1:40002/"
5
5
  conf.key = File.expand_path('.') + "/ssl/server-key.pem"
6
- conf.cert_pem = File.expand_path('.') + "/ssl/server-crt.pem"
7
- conf.ca = File.expand_path('.') + "/ssl/ca-crt.pem"
8
- conf.verify_mode = Grenache::SSL_VERIFY_PEER
6
+ conf.cert_pem = File.expand_path('.') + "/ssl/server-chain.pem"
9
7
  conf.service_host = "localhost"
10
8
  end
11
9
 
@@ -22,6 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "httparty", "~> 0.14.0"
23
23
  spec.add_runtime_dependency "oj", "~> 2.18"
24
24
  spec.add_runtime_dependency "thin", "~> 1.7"
25
- spec.add_runtime_dependency "puma", "~> 3.9.1"
26
25
 
27
26
  end
@@ -1,5 +1,5 @@
1
1
  module Grenache
2
2
  module HTTP
3
- VERSION = "0.2.3"
3
+ VERSION = "0.2.4"
4
4
  end
5
5
  end
data/lib/grenache/http.rb CHANGED
@@ -1,7 +1,4 @@
1
- require "puma/events"
2
-
3
1
  module Grenache
4
-
5
2
  class Http < Grenache::Base
6
3
 
7
4
  def listen(key, port, opts={}, &block)
@@ -12,36 +9,29 @@ module Grenache
12
9
  end
13
10
  end
14
11
 
15
- def start_http_service(port, &block)
16
- app = -> (env) {
17
- req = ServiceMessage.parse(env['rack.input'].read)
18
- fingerprint = extract_fingerprint(env['puma.peercert'])
19
- e, payload = block.call(req, fingerprint)
20
- err = e.kind_of?(Exception) ? e.message : e
21
- [200,[], [ServiceMessage.new(payload, err, req.rid).to_json]]
12
+ def start_http_service(port, &block)
13
+ EM.defer {
14
+ app = -> (env) {
15
+ req = ServiceMessage.parse(env['rack.input'].read)
16
+ fingerprint = extract_fingerprint(env['rack.peer_cert'])
17
+ e, payload = block.call(req, fingerprint)
18
+ err = e.kind_of?(Exception) ? e.message : e
19
+ [200,nil, ServiceMessage.new(payload, err, req.rid).to_json]
20
+ }
21
+ server = Thin::Server.new config.service_host, port, {signals: false}, app
22
+ if tls?
23
+ server.ssl = true
24
+ server.ssl_options = {
25
+ private_key_file: config.key,
26
+ cert_chain_file: config.cert_pem,
27
+ verify_peer: true
28
+ }
29
+ end
30
+ server.start
22
31
  }
23
-
24
- event = Puma::Events.new $stdout, $stderr
25
- server = Puma::Server.new app, event
26
- host = config.service_host
27
-
28
- if tls?
29
- ctx = Puma::MiniSSL::Context.new
30
- ctx.key = config.key
31
- ctx.cert = config.cert_pem
32
- ctx.ca = config.ca
33
- ctx.verify_mode = config.verify_mode
34
-
35
- server.add_ssl_listener host, port, ctx
36
- else
37
- server.add_tcp_listener host, port
38
- end
39
-
40
- puts "starting server on port #{port}"
41
- server.run
42
32
  end
43
33
 
44
- def request(key, payload, params = {})
34
+ def request(key, payload, params={})
45
35
  services = lookup(key)
46
36
  if services.size > 0
47
37
  json = ServiceMessage.new(payload,key).to_json
@@ -58,14 +48,18 @@ module Grenache
58
48
 
59
49
  private
60
50
 
51
+ def tls?
52
+ !! config.cert_pem
53
+ end
54
+
61
55
  def extract_fingerprint cert
62
56
  return "" unless cert
63
57
  cert = OpenSSL::X509::Certificate.new cert
64
58
  OpenSSL::Digest::SHA1.new(cert.to_der).to_s
65
59
  end
66
60
 
67
- def tls?
68
- !! config.cert_pem
61
+ def http_client
62
+ @http_client ||= HttpClient.new(config)
69
63
  end
70
64
 
71
65
  def get_random_service services
@@ -78,9 +72,5 @@ module Grenache
78
72
  end
79
73
  service
80
74
  end
81
-
82
- def http_client
83
- @http_client ||= HttpClient.new(config)
84
- end
85
75
  end
86
76
  end
@@ -2,7 +2,7 @@ require 'oj'
2
2
  require 'faye/websocket'
3
3
  require 'httparty'
4
4
  require 'grenache-ruby-base'
5
- require 'puma'
5
+ require 'thin'
6
6
 
7
7
  require 'grenache/http'
8
8
  require 'grenache/http/version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grenache-ruby-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bitfinex <info@bitfinex.com>
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-08 00:00:00.000000000 Z
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.7'
97
- - !ruby/object:Gem::Dependency
98
- name: puma
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 3.9.1
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 3.9.1
111
97
  description:
112
98
  email:
113
99
  - info@bitfinex.com
@@ -133,6 +119,7 @@ files:
133
119
  - examples/ssl/client2-csr.pem
134
120
  - examples/ssl/client2-key.pem
135
121
  - examples/ssl/client2.cnf
122
+ - examples/ssl/server-chain.pem
136
123
  - examples/ssl/server-crt.pem
137
124
  - examples/ssl/server-csr.pem
138
125
  - examples/ssl/server-key.pem