mongrel2 0.28.0 → 0.29.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.rdoc +16 -0
- data/bin/m2sh.rb +9 -5
- data/lib/mongrel2.rb +2 -2
- data/lib/mongrel2/config.rb +9 -0
- data/lib/mongrel2/config/log.rb +34 -1
- data/lib/mongrel2/config/server.rb +24 -33
- data/spec/mongrel2/config/log_spec.rb +17 -3
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
== v0.29.0 [2012-07-13] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
- Make m2sh.rb write audit log events for modifying actions
|
4
|
+
- Add a --why option to m2sh.rb to allow reasons for actions to be
|
5
|
+
logged.
|
6
|
+
- Add a convenience delegator to Mongrel2::Config for logging an
|
7
|
+
action.
|
8
|
+
- Finish Mongrel2::Config::Log method documentation
|
9
|
+
- Remove RDoc sections from Mongrel2::Config::Server, as they made
|
10
|
+
stuff more difficult to find.
|
11
|
+
- Add Mongrel2::Config::Server#to_s
|
12
|
+
- Make stringified Log events only include parens if the event has a
|
13
|
+
'why' field.
|
14
|
+
- Remove extraneous message from m2sh.rb's quickstart subcommand
|
15
|
+
|
16
|
+
|
1
17
|
== v0.28.0 [2012-07-12] Michael Granger <ged@FaerieMUD.org>
|
2
18
|
|
3
19
|
- Add Mongrel2::Config::Server pathname methods for the path
|
data/bin/m2sh.rb
CHANGED
@@ -185,6 +185,8 @@ class Mongrel2::M2SHCommand
|
|
185
185
|
opt :sudo, "Use 'sudo' to run the mongrel2 server."
|
186
186
|
opt :port, "Reset the server port to <i> before starting it.",
|
187
187
|
:type => :integer
|
188
|
+
opt :why, "Specify the reason for an action for the event log.",
|
189
|
+
:type => :string
|
188
190
|
text ''
|
189
191
|
|
190
192
|
text 'Other Options:'
|
@@ -292,6 +294,7 @@ class Mongrel2::M2SHCommand
|
|
292
294
|
source = File.read( configfile )
|
293
295
|
|
294
296
|
runspace.module_eval( source, configfile, 1 )
|
297
|
+
Mongrel2::Config.log_action( "Loaded config from #{configfile}", self.options.why )
|
295
298
|
end
|
296
299
|
help :load, "Overwrite the config database with the values from the speciifed CONFIGFILE."
|
297
300
|
usage :load, <<-END_USAGE
|
@@ -444,6 +447,8 @@ class Mongrel2::M2SHCommand
|
|
444
447
|
server.bind_addr,
|
445
448
|
server.port,
|
446
449
|
]
|
450
|
+
|
451
|
+
Mongrel2::Config.log_action( "Starting server: #{server}", self.options.why )
|
447
452
|
header "Starting mongrel2 at: #{url}"
|
448
453
|
exec( *cmd )
|
449
454
|
end
|
@@ -467,6 +472,8 @@ class Mongrel2::M2SHCommand
|
|
467
472
|
control.reload
|
468
473
|
control.close
|
469
474
|
message "done."
|
475
|
+
|
476
|
+
Mongrel2::Config.log_action( "Restarted server #{server}", self.options.why )
|
470
477
|
end
|
471
478
|
help :reload, "Reload the specified server's configuration"
|
472
479
|
usage :reload, "[server]"
|
@@ -481,6 +488,8 @@ class Mongrel2::M2SHCommand
|
|
481
488
|
control.stop
|
482
489
|
control.close
|
483
490
|
message "done."
|
491
|
+
|
492
|
+
Mongrel2::Config.log_action( "Stopped server #{server}", self.options.why )
|
484
493
|
end
|
485
494
|
help :stop, "Stop the specified server gracefully"
|
486
495
|
usage :stop, "[server]"
|
@@ -539,11 +548,6 @@ class Mongrel2::M2SHCommand
|
|
539
548
|
self.bootstrap_command( configfile )
|
540
549
|
edit( configfile )
|
541
550
|
self.load_command( configfile )
|
542
|
-
|
543
|
-
message '---'
|
544
|
-
header "Point a browser at: "
|
545
|
-
message '---'
|
546
|
-
|
547
551
|
self.start_command()
|
548
552
|
end
|
549
553
|
help :quickstart, "Set up a basic mongrel2 server and run it."
|
data/lib/mongrel2.rb
CHANGED
@@ -20,10 +20,10 @@ module Mongrel2
|
|
20
20
|
abort "\n\n>>> Mongrel2 requires Ruby 1.9.2 or later. <<<\n\n" if RUBY_VERSION < '1.9.2'
|
21
21
|
|
22
22
|
# Library version constant
|
23
|
-
VERSION = '0.
|
23
|
+
VERSION = '0.29.0'
|
24
24
|
|
25
25
|
# Version-control revision constant
|
26
|
-
REVISION = %q$Revision:
|
26
|
+
REVISION = %q$Revision: cc6fcfdf3335 $
|
27
27
|
|
28
28
|
|
29
29
|
require 'mongrel2/constants'
|
data/lib/mongrel2/config.rb
CHANGED
@@ -194,6 +194,7 @@ module Mongrel2
|
|
194
194
|
|
195
195
|
# Force the associations to reset
|
196
196
|
self.db = db
|
197
|
+
self.log_action( "Initialized the config database." )
|
197
198
|
end
|
198
199
|
|
199
200
|
|
@@ -210,6 +211,14 @@ module Mongrel2
|
|
210
211
|
end
|
211
212
|
|
212
213
|
|
214
|
+
### Log an entry to the commit log with the given +what+, +why+, +where+, and +how+ values
|
215
|
+
### and return it after it's saved.
|
216
|
+
def self::log_action( what, why=nil, where=nil, how=nil )
|
217
|
+
Mongrel2::Config::Log.log_action( what, why, where, how )
|
218
|
+
end
|
219
|
+
|
220
|
+
|
221
|
+
|
213
222
|
#########
|
214
223
|
protected
|
215
224
|
#########
|
data/lib/mongrel2/config/log.rb
CHANGED
@@ -38,11 +38,44 @@ class Mongrel2::Config::Log < Mongrel2::Config( :log )
|
|
38
38
|
|
39
39
|
# :todo: Correct the happened_at, which is set in UTC, but fetched in localtime.
|
40
40
|
|
41
|
+
##
|
42
|
+
# :method: id
|
43
|
+
# Get the ID of the log entry
|
44
|
+
|
45
|
+
##
|
46
|
+
# :method: who
|
47
|
+
# Get "who" was reponsible for the event.
|
48
|
+
|
49
|
+
##
|
50
|
+
# :method: what
|
51
|
+
# Get a description of "what" happened
|
52
|
+
|
53
|
+
##
|
54
|
+
# :method: location
|
55
|
+
# Get the "where" of the event.
|
56
|
+
|
57
|
+
##
|
58
|
+
# :method: happened_at
|
59
|
+
# Get the timestamp of the event.
|
60
|
+
|
61
|
+
##
|
62
|
+
# :method: how
|
63
|
+
# Get a description of "how" the event happened.
|
64
|
+
|
65
|
+
##
|
66
|
+
# :method: why
|
67
|
+
# Get a description of "why" the event happened.
|
68
|
+
|
69
|
+
|
41
70
|
|
42
71
|
### Stringify the log entry and return it.
|
43
72
|
def to_s
|
44
73
|
# 2011-09-09 19:35:40 [who] @where how: what (why)
|
45
|
-
|
74
|
+
msg = "%{happened_at} [%{who}] @%{location} %{how}: %{what}" % self.values
|
75
|
+
msg += " (#{self.why})" if self.why
|
76
|
+
return msg
|
46
77
|
end
|
47
78
|
|
48
79
|
end # class Mongrel2::Config::Log
|
80
|
+
|
81
|
+
|
@@ -25,6 +25,23 @@ class Mongrel2::Config::Server < Mongrel2::Config( :server )
|
|
25
25
|
# port INTEGER,
|
26
26
|
# use_ssl INTEGER default 0);
|
27
27
|
|
28
|
+
##
|
29
|
+
# Return the dataset for looking up a server by its UUID.
|
30
|
+
# :singleton-method: by_uuid
|
31
|
+
# :call-seq:
|
32
|
+
# by_uuid( uuid )
|
33
|
+
def_dataset_method( :by_uuid ) {|uuid| filter(:uuid => uuid).limit(1) }
|
34
|
+
|
35
|
+
|
36
|
+
##
|
37
|
+
# The hosts[rdoc-ref:Mongrel2::Config::Host] that belong to this server.
|
38
|
+
one_to_many :hosts
|
39
|
+
|
40
|
+
##
|
41
|
+
# The filters[rdoc-ref:Mongrel2::Config::Filter] that will be loaded by this server.
|
42
|
+
one_to_many :filters
|
43
|
+
|
44
|
+
|
28
45
|
##
|
29
46
|
# :method: uuid
|
30
47
|
# Get the server identifier, which is typically a UUID, but can
|
@@ -114,35 +131,6 @@ class Mongrel2::Config::Server < Mongrel2::Config( :server )
|
|
114
131
|
end
|
115
132
|
|
116
133
|
|
117
|
-
#
|
118
|
-
# :section: Associations
|
119
|
-
#
|
120
|
-
|
121
|
-
##
|
122
|
-
# The hosts[rdoc-ref:Mongrel2::Config::Host] that belong to this server.
|
123
|
-
one_to_many :hosts
|
124
|
-
|
125
|
-
##
|
126
|
-
# The filters[rdoc-ref:Mongrel2::Config::Filter] that will be loaded by this server.
|
127
|
-
one_to_many :filters
|
128
|
-
|
129
|
-
|
130
|
-
#
|
131
|
-
# :section: Dataset Methods
|
132
|
-
#
|
133
|
-
|
134
|
-
##
|
135
|
-
# Return the dataset for looking up a server by its UUID.
|
136
|
-
# :singleton-method: by_uuid
|
137
|
-
# :call-seq:
|
138
|
-
# by_uuid( uuid )
|
139
|
-
def_dataset_method( :by_uuid ) {|uuid| filter(:uuid => uuid).limit(1) }
|
140
|
-
|
141
|
-
|
142
|
-
#
|
143
|
-
# :section: Socket/Pathname Convenience Methods
|
144
|
-
#
|
145
|
-
|
146
134
|
### Return the URI for its control socket.
|
147
135
|
def control_socket_uri
|
148
136
|
# Find the control socket relative to the server's chroot
|
@@ -167,10 +155,6 @@ class Mongrel2::Config::Server < Mongrel2::Config( :server )
|
|
167
155
|
end
|
168
156
|
|
169
157
|
|
170
|
-
#
|
171
|
-
# :section: Validation Callbacks
|
172
|
-
#
|
173
|
-
|
174
158
|
### Sequel validation callback: add errors if the record is invalid.
|
175
159
|
def validate
|
176
160
|
self.validates_presence [ :access_log, :error_log, :pid_file, :default_host, :port ],
|
@@ -178,6 +162,13 @@ class Mongrel2::Config::Server < Mongrel2::Config( :server )
|
|
178
162
|
end
|
179
163
|
|
180
164
|
|
165
|
+
### Stringification method -- return a human-readable description of the server.
|
166
|
+
def to_s
|
167
|
+
return "%s {%s} %s:%d" % [ self.name, self.uuid, self.bind_addr, self.port ]
|
168
|
+
end
|
169
|
+
|
170
|
+
|
171
|
+
|
181
172
|
### DSL methods for the Server context besides those automatically-generated from its
|
182
173
|
### columns.
|
183
174
|
module DSLMethods
|
@@ -68,14 +68,28 @@ describe Mongrel2::Config::Log do
|
|
68
68
|
what: 'what',
|
69
69
|
location: 'location',
|
70
70
|
happened_at: Time.at( 1315598592 ),
|
71
|
-
how: 'how'
|
72
|
-
why: 'why'
|
71
|
+
how: 'how'
|
73
72
|
)
|
74
73
|
end
|
75
74
|
|
76
75
|
|
77
76
|
it "stringifies as a readable log file line" do
|
78
77
|
|
78
|
+
# 2011-09-09 20:29:47 -0700 [mgranger] @localhost m2sh: load etc/mongrel2.conf (updating)
|
79
|
+
@log.to_s.should =~ %r{
|
80
|
+
^
|
81
|
+
(?-x:\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [\+\-]\d{4} )
|
82
|
+
\[who\] \s
|
83
|
+
@location \s
|
84
|
+
how: \s
|
85
|
+
what
|
86
|
+
$
|
87
|
+
}x
|
88
|
+
end
|
89
|
+
|
90
|
+
it "stringifies with a reason if it has one" do
|
91
|
+
@log.why = 'Because'
|
92
|
+
|
79
93
|
# 2011-09-09 20:29:47 -0700 [mgranger] @localhost m2sh: load etc/mongrel2.conf (updating)
|
80
94
|
@log.to_s.should =~ %r{
|
81
95
|
^
|
@@ -84,7 +98,7 @@ describe Mongrel2::Config::Log do
|
|
84
98
|
@location \s
|
85
99
|
how: \s
|
86
100
|
what \s
|
87
|
-
\(
|
101
|
+
\(Because\)
|
88
102
|
$
|
89
103
|
}x
|
90
104
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongrel2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.29.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
|
37
37
|
Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
|
38
38
|
cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
39
|
-
date: 2012-07-
|
39
|
+
date: 2012-07-13 00:00:00.000000000 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: nokogiri
|
metadata.gz.sig
CHANGED
Binary file
|