kage 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 06e21e78d7693e7a36f00e553f389bd2bd0c9652
4
+ data.tar.gz: 09dd5da80e3afa98e851ca9639db3cc2c6a0f92c
5
+ SHA512:
6
+ metadata.gz: c5b2d107056298ec1ca8299b5976759cec55842f5e46973b6147b05818663a6338b49039018cefbb0102a710765bc00b6881f2948db290f1a5f83ddb979d0f89
7
+ data.tar.gz: ed7609e900bcb0010ab60ff8964760194f17beb1fdbb982c206b2755c932d55bd28139ff148357332491f4ebedd452bb8787631b50df952da7c22a51ec28d2cf
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.9.2 (2014-08-27)
2
+
3
+ - Make it work with http_parser.rb >= 0.6.0 #5
4
+
1
5
  # 0.9.1 (2012-10-22)
2
6
 
3
7
  - Changed the default backend selection to all rather than just master
data/README.md CHANGED
@@ -4,6 +4,8 @@ Kage (kah-geh) is an HTTP shadow proxy server that sits between clients and your
4
4
 
5
5
  Kage can be used to duplex requests to the master (production) server and shadow servers that have newer code changes that are going to be deployed. By shadowing requests to the new code you can make sure there are no big/surprising changes in the response in terms of data, performance and database loads etc.
6
6
 
7
+ Kage is built with EventMachine and em-proxy and all shadow requests are done asynchronously, while responses from master are sent back to the client without blocking the network, so clients will never notice any delays even when shadow traffic is made.
8
+
7
9
  You can customize the behavior of Kage with simple callbacks, when it chooses which backends to send shadow requests to (or not at all), appends or deletes HTTP headers per backend, and examines the complete HTTP response (including headers and body).
8
10
 
9
11
  ## Features
@@ -68,7 +68,7 @@ module Kage
68
68
  self.comm_inactivity_timeout = server.client_timeout
69
69
  self.master_backend = server.master
70
70
 
71
- @session_id = "%016x" % Random.rand(2**64)
71
+ @session_id = "%016x" % rand(2**64)
72
72
  info "New connection"
73
73
 
74
74
  @callbacks = server.callbacks
@@ -88,7 +88,7 @@ module Kage
88
88
  @parser.on_headers_complete = proc do |headers|
89
89
  @request = {
90
90
  :method => @parser.http_method,
91
- :path => @parser.request_path,
91
+ :path => URI.parse(@parser.request_url).path,
92
92
  :url => @parser.request_url,
93
93
  :headers => headers
94
94
  }
@@ -1,3 +1,3 @@
1
1
  module Kage
2
- VERSION = "0.9.1"
2
+ VERSION = "0.9.2"
3
3
  end
metadata CHANGED
@@ -1,49 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
5
- prerelease:
4
+ version: 0.9.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tatsuhiko Miyagawa
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-22 00:00:00.000000000 Z
11
+ date: 2014-08-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: em-proxy
16
- requirement: &70166046140720 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.1.7
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70166046140720
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.7
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: http_parser.rb
27
- requirement: &70166046140200 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: 0.5.3
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70166046140200
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.5.3
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rspec
38
- requirement: &70166046139820 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70166046139820
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  description: em-proxy based shadow proxy server
48
56
  email:
49
57
  - miyagawa@bulknews.net
@@ -51,7 +59,7 @@ executables: []
51
59
  extensions: []
52
60
  extra_rdoc_files: []
53
61
  files:
54
- - .gitignore
62
+ - ".gitignore"
55
63
  - CHANGES.md
56
64
  - Gemfile
57
65
  - LICENSE
@@ -65,27 +73,26 @@ files:
65
73
  - lib/kage/version.rb
66
74
  homepage: https://github.com/cookpad/kage
67
75
  licenses: []
76
+ metadata: {}
68
77
  post_install_message:
69
78
  rdoc_options: []
70
79
  require_paths:
71
80
  - lib
72
81
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
82
  requirements:
75
- - - ! '>='
83
+ - - ">="
76
84
  - !ruby/object:Gem::Version
77
85
  version: '0'
78
86
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
87
  requirements:
81
- - - ! '>='
88
+ - - ">="
82
89
  - !ruby/object:Gem::Version
83
90
  version: '0'
84
91
  requirements: []
85
92
  rubyforge_project:
86
- rubygems_version: 1.8.15
93
+ rubygems_version: 2.2.2
87
94
  signing_key:
88
- specification_version: 3
95
+ specification_version: 4
89
96
  summary: Kage (kah-geh) is an HTTP shadow proxy server that sits between your production
90
97
  servers to send shaddow traffic to the servers with new code changes.
91
98
  test_files: []