posterous-lacquer 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.
- data/README.rdoc +2 -2
- data/VERSION +1 -1
- data/lib/lacquer/varnish.rb +11 -12
- data/{lacquer.gemspec → posterous-lacquer.gemspec} +18 -15
- data/spec/lacquer/varnish_spec.rb +70 -1
- metadata +5 -5
data/README.rdoc
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
= lacquer
|
2
2
|
|
3
|
-
Rails drop in for Varnish support.
|
3
|
+
Rails drop in for Varnish support. This version is adapted from Russ Smith's gem and is in production use on posterous.com.
|
4
4
|
|
5
5
|
== Install
|
6
6
|
Basic installation
|
7
7
|
|
8
|
-
|
8
|
+
sudo gem install posterous-lacquer
|
9
9
|
|
10
10
|
config/initializers/lacquer.rb
|
11
11
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
data/lib/lacquer/varnish.rb
CHANGED
@@ -7,7 +7,7 @@ module Lacquer
|
|
7
7
|
|
8
8
|
stats = stats.collect do |stat|
|
9
9
|
stat = stat.strip.match(/(\d+)\s+(.+)$/)
|
10
|
-
{ :key => stat[2], :value => stat[1] }
|
10
|
+
{ :key => stat[2], :value => stat[1] } if stat
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -18,23 +18,22 @@ module Lacquer
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
private
|
21
|
+
# private
|
22
22
|
|
23
|
-
|
23
|
+
# Sends commands over telnet to varnish servers listed in the config.
|
24
24
|
def send_command(command)
|
25
25
|
Lacquer.configuration.varnish_servers.collect do |server|
|
26
|
+
# RAILS_DEFAULT_LOGGER.debug("POSTEROUS_LACQUER_DEBUG: running(#{command.inspect}) on #{server.inspect}")
|
26
27
|
retries = 0
|
28
|
+
response = nil
|
27
29
|
begin
|
28
30
|
retries += 1
|
29
|
-
response = []
|
30
31
|
connection = Net::Telnet.new(
|
31
32
|
'Host' => server[:host],
|
32
33
|
'Port' => server[:port],
|
33
34
|
'Timeout' => server[:timeout] || 5)
|
34
|
-
connection.cmd(command)
|
35
|
-
|
36
|
-
c.strip
|
37
|
-
end
|
35
|
+
connection.cmd(command + "\nquit\n") {|r| response = r.strip}
|
36
|
+
connection.close
|
38
37
|
rescue Exception => e
|
39
38
|
if retries < Lacquer.configuration.retries
|
40
39
|
retry
|
@@ -44,15 +43,15 @@ module Lacquer
|
|
44
43
|
:error_class => "Varnish Error, retried #{Lacquer.configuration.retries} times",
|
45
44
|
:error_message => "Error while trying to connect to #{server[:host]}:#{server[:port]}: #{e}",
|
46
45
|
:parameters => server,
|
47
|
-
:response => response
|
46
|
+
:response => response})
|
48
47
|
else
|
49
48
|
raise VarnishError.new("Error while trying to connect to #{server[:host]}:#{server[:port]} #{e}")
|
50
49
|
end
|
51
|
-
end
|
52
|
-
ensure
|
53
|
-
connection.close rescue nil
|
50
|
+
end
|
54
51
|
end
|
52
|
+
response
|
55
53
|
end
|
56
54
|
end
|
55
|
+
|
57
56
|
end
|
58
57
|
end
|
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{lacquer}
|
8
|
-
s.version = "0.2.
|
7
|
+
s.name = %q{posterous-lacquer}
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Russ Smith"]
|
12
|
-
s.date = %q{2010-
|
11
|
+
s.authors = ["Garry Tan", "Russ Smith"]
|
12
|
+
s.date = %q{2010-09-03}
|
13
13
|
s.description = %q{Rails drop in for Varnish support.}
|
14
|
-
s.email = %q{
|
14
|
+
s.email = %q{garry@posterous.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc"
|
@@ -24,7 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"init.rb",
|
27
|
-
"lacquer.gemspec",
|
28
27
|
"lib/generators/USAGE",
|
29
28
|
"lib/generators/lacquer_generator.rb",
|
30
29
|
"lib/generators/templates/initializer.rb",
|
@@ -35,31 +34,35 @@ Gem::Specification.new do |s|
|
|
35
34
|
"lib/lacquer/delayed_job_job.rb",
|
36
35
|
"lib/lacquer/resque_job.rb",
|
37
36
|
"lib/lacquer/varnish.rb",
|
37
|
+
"posterous-lacquer.gemspec",
|
38
38
|
"rails/init.rb",
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
39
|
+
"spec/lacquer/cache_utils_spec.rb",
|
40
|
+
"spec/lacquer/varnish_spec.rb",
|
41
|
+
"spec/spec.opts",
|
42
|
+
"spec/spec_helper.rb"
|
43
43
|
]
|
44
44
|
s.homepage = %q{http://github.com/russ/lacquer}
|
45
45
|
s.rdoc_options = ["--charset=UTF-8"]
|
46
46
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.3.
|
47
|
+
s.rubygems_version = %q{1.3.7}
|
48
48
|
s.summary = %q{Rails drop in for Varnish support.}
|
49
49
|
s.test_files = [
|
50
|
-
"
|
51
|
-
"
|
52
|
-
"
|
50
|
+
"spec/lacquer/cache_utils_spec.rb",
|
51
|
+
"spec/lacquer/varnish_spec.rb",
|
52
|
+
"spec/spec_helper.rb"
|
53
53
|
]
|
54
54
|
|
55
55
|
if s.respond_to? :specification_version then
|
56
56
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
57
57
|
s.specification_version = 3
|
58
58
|
|
59
|
-
if Gem::Version.new(Gem::
|
59
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
60
|
+
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
60
61
|
else
|
62
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
61
63
|
end
|
62
64
|
else
|
65
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
63
66
|
end
|
64
67
|
end
|
65
68
|
|
@@ -6,6 +6,8 @@ describe "Varnish" do
|
|
6
6
|
Net::Telnet.stub!(:new).and_return(@telnet_mock)
|
7
7
|
@telnet_mock.stub!(:close)
|
8
8
|
@telnet_mock.stub!(:cmd)
|
9
|
+
@telnet_mock.stub!(:puts)
|
10
|
+
@telnet_mock.stub!(:waitfor)
|
9
11
|
Lacquer.configuration.retries.should == 5
|
10
12
|
end
|
11
13
|
|
@@ -48,7 +50,74 @@ describe "Varnish" do
|
|
48
50
|
|
49
51
|
describe "when sending a stats command" do
|
50
52
|
it "should return an array of stats" do
|
51
|
-
@telnet_mock.stub!(:cmd).and_yield(
|
53
|
+
@telnet_mock.stub!(:cmd).and_yield(%Q[
|
54
|
+
200 2023
|
55
|
+
6263596 Client connections accepted
|
56
|
+
6260911 Client requests received
|
57
|
+
919605 Cache hits for pass
|
58
|
+
2123848 Cache misses
|
59
|
+
6723161 Backend conn. success
|
60
|
+
6641493 Fetch with Length
|
61
|
+
81512 Fetch wanted close
|
62
|
+
11 Fetch failed
|
63
|
+
1648 N struct sess_mem
|
64
|
+
81 N struct sess
|
65
|
+
22781 N struct object
|
66
|
+
23040 N struct objectcore
|
67
|
+
36047 N struct objecthead
|
68
|
+
56108 N struct smf
|
69
|
+
1646 N small free smf
|
70
|
+
263 N large free smf
|
71
|
+
55 N struct vbe_conn
|
72
|
+
804 N worker threads
|
73
|
+
1583 N worker threads created
|
74
|
+
2114 N worker threads limited
|
75
|
+
1609 N overflowed work requests
|
76
|
+
1 N backends
|
77
|
+
1693663 N expired objects
|
78
|
+
400637 N LRU nuked objects
|
79
|
+
10 N LRU moved objects
|
80
|
+
254 HTTP header overflows
|
81
|
+
2506470 Objects sent with write
|
82
|
+
6263541 Total Sessions
|
83
|
+
6260911 Total Requests
|
84
|
+
40 Total pipe
|
85
|
+
4599215 Total pass
|
86
|
+
6722994 Total fetch
|
87
|
+
2607029095 Total header bytes
|
88
|
+
55280196533 Total body bytes
|
89
|
+
6263536 Session Closed
|
90
|
+
5 Session herd
|
91
|
+
511352337 SHM records
|
92
|
+
33376035 SHM writes
|
93
|
+
33177 SHM flushes due to overflow
|
94
|
+
208858 SHM MTX contention
|
95
|
+
246 SHM cycles through buffer
|
96
|
+
6361382 allocator requests
|
97
|
+
54199 outstanding allocations
|
98
|
+
953389056 bytes allocated
|
99
|
+
120352768 bytes free
|
100
|
+
323 SMS allocator requests
|
101
|
+
151528 SMS bytes allocated
|
102
|
+
151528 SMS bytes freed
|
103
|
+
6723053 Backend requests made
|
104
|
+
1 N vcl total
|
105
|
+
1 N vcl available
|
106
|
+
49 N total active purges
|
107
|
+
197 N new purges added
|
108
|
+
148 N old purges deleted
|
109
|
+
6117 N objects tested
|
110
|
+
60375 N regexps tested against
|
111
|
+
140 N duplicate purges removed
|
112
|
+
944407 HCB Lookups without lock
|
113
|
+
3 HCB Lookups with lock
|
114
|
+
2099076 HCB Inserts
|
115
|
+
515351 Objects ESI parsed (unlock)
|
116
|
+
35371 Client uptime
|
117
|
+
|
118
|
+
500 22
|
119
|
+
Closing CLI connection
|
120
|
+
].strip)
|
52
121
|
stats = Lacquer::Varnish.new.stats
|
53
122
|
stats.size.should be(1)
|
54
123
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posterous-lacquer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 4
|
10
|
+
version: 0.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Garry Tan
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-09-
|
19
|
+
date: 2010-09-03 00:00:00 -07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -52,7 +52,6 @@ files:
|
|
52
52
|
- Rakefile
|
53
53
|
- VERSION
|
54
54
|
- init.rb
|
55
|
-
- lacquer.gemspec
|
56
55
|
- lib/generators/USAGE
|
57
56
|
- lib/generators/lacquer_generator.rb
|
58
57
|
- lib/generators/templates/initializer.rb
|
@@ -63,6 +62,7 @@ files:
|
|
63
62
|
- lib/lacquer/delayed_job_job.rb
|
64
63
|
- lib/lacquer/resque_job.rb
|
65
64
|
- lib/lacquer/varnish.rb
|
65
|
+
- posterous-lacquer.gemspec
|
66
66
|
- rails/init.rb
|
67
67
|
- spec/lacquer/cache_utils_spec.rb
|
68
68
|
- spec/lacquer/varnish_spec.rb
|