diff options
| author | Rick Bradley <rick@rickbradley.com> | 2008-03-12 22:26:12 -0500 |
|---|---|---|
| committer | Luke Kanies <luke@madstop.com> | 2008-04-11 13:10:33 -0500 |
| commit | e86fde2facafd56ee12d7e748b1c8cad916253bf (patch) | |
| tree | 2d7595566a3f36b5596430c492da3def1b507951 /lib/puppet/network/http/handler.rb | |
| parent | c2f8c69af368a8ba496da4ef0023ac5f0885e3c0 (diff) | |
| download | puppet-e86fde2facafd56ee12d7e748b1c8cad916253bf.tar.gz puppet-e86fde2facafd56ee12d7e748b1c8cad916253bf.tar.xz puppet-e86fde2facafd56ee12d7e748b1c8cad916253bf.zip | |
This is the first version where mongrel and webrick are reliably startable and stoppable via Puppet::Network::Server.
Added a network/server integration spec, testing startup, shutdown, reachability, and collision of webrick and mongrel servers in the new network code.
Converted Puppet::Network::HTTP::Handler class to a module, as mongrel Handler should be subclassed; converting subclasses to include the module instead.
Mongrel will actually stop if you .stop it, graceful_shutdown didn't seem quite so reliable.
Webrick requires running in its own Thread to avoid hanging the entire process; this requires introduction of a Mutex to make things safe.
We're only supporting the REST protocol. Made this explicit.
Fixed http server setup args, w/ specs, ah the glory of integration testing.
Diffstat (limited to 'lib/puppet/network/http/handler.rb')
| -rw-r--r-- | lib/puppet/network/http/handler.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb index 773381c8d..7679bf320 100644 --- a/lib/puppet/network/http/handler.rb +++ b/lib/puppet/network/http/handler.rb @@ -1,4 +1,5 @@ -class Puppet::Network::HTTP::Handler +module Puppet::Network::HTTP::Handler + def initialize(args = {}) raise ArgumentError unless @server = args[:server] raise ArgumentError unless @handler = args[:handler] @@ -77,7 +78,7 @@ class Puppet::Network::HTTP::Handler %r{/#{@handler.to_s}s$}.match(path(request)) end - # methods specific to a given web server + # methods to be overridden by the including web server class def register_handler raise NotImplementedError |
