summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/file_serving/configuration.rb6
-rw-r--r--lib/puppet/indirector/direct_file_server.rb2
-rw-r--r--lib/puppet/indirector/file_content/rest.rb1
-rw-r--r--lib/puppet/indirector/file_metadata/rest.rb1
-rw-r--r--lib/puppet/indirector/request.rb9
-rw-r--r--lib/puppet/indirector/rest.rb6
-rw-r--r--lib/puppet/network/http/handler.rb3
-rw-r--r--lib/puppet/util/uri_helper.rb22
8 files changed, 14 insertions, 36 deletions
diff --git a/lib/puppet/file_serving/configuration.rb b/lib/puppet/file_serving/configuration.rb
index de5995d7e..608924c8b 100644
--- a/lib/puppet/file_serving/configuration.rb
+++ b/lib/puppet/file_serving/configuration.rb
@@ -9,10 +9,8 @@ require 'puppet/file_serving/mount/file'
require 'puppet/file_serving/mount/modules'
require 'puppet/file_serving/mount/plugins'
require 'puppet/util/cacher'
-require 'puppet/util/uri_helper'
class Puppet::FileServing::Configuration
- include Puppet::Util::URIHelper
require 'puppet/file_serving/configuration/parser'
class << self
@@ -70,9 +68,7 @@ class Puppet::FileServing::Configuration
# Reparse the configuration if necessary.
readconfig
- uri = key2uri(request.key)
-
- mount_name, path = uri.path.sub(/^\//, '').split(File::Separator, 2)
+ mount_name, path = request.key.split(File::Separator, 2)
raise(ArgumentError, "Cannot find file: Invalid path '%s'" % mount_name) unless mount_name =~ %r{^[-\w]+$}
diff --git a/lib/puppet/indirector/direct_file_server.rb b/lib/puppet/indirector/direct_file_server.rb
index bcda92366..f69f9e14b 100644
--- a/lib/puppet/indirector/direct_file_server.rb
+++ b/lib/puppet/indirector/direct_file_server.rb
@@ -3,12 +3,10 @@
# Copyright (c) 2007. All rights reserved.
require 'puppet/file_serving/terminus_helper'
-require 'puppet/util/uri_helper'
require 'puppet/indirector/terminus'
class Puppet::Indirector::DirectFileServer < Puppet::Indirector::Terminus
- include Puppet::Util::URIHelper
include Puppet::FileServing::TerminusHelper
def find(request)
diff --git a/lib/puppet/indirector/file_content/rest.rb b/lib/puppet/indirector/file_content/rest.rb
index 31df7626d..7b3cade8e 100644
--- a/lib/puppet/indirector/file_content/rest.rb
+++ b/lib/puppet/indirector/file_content/rest.rb
@@ -3,7 +3,6 @@
# Copyright (c) 2007. All rights reserved.
require 'puppet/file_serving/content'
-require 'puppet/util/uri_helper'
require 'puppet/indirector/file_content'
require 'puppet/indirector/rest'
diff --git a/lib/puppet/indirector/file_metadata/rest.rb b/lib/puppet/indirector/file_metadata/rest.rb
index 0f3d9c6fd..8cbf91049 100644
--- a/lib/puppet/indirector/file_metadata/rest.rb
+++ b/lib/puppet/indirector/file_metadata/rest.rb
@@ -3,7 +3,6 @@
# Copyright (c) 2007. All rights reserved.
require 'puppet/file_serving/metadata'
-require 'puppet/util/uri_helper'
require 'puppet/indirector/file_metadata'
require 'puppet/indirector/rest'
diff --git a/lib/puppet/indirector/request.rb b/lib/puppet/indirector/request.rb
index c6f268ab2..539cd0e62 100644
--- a/lib/puppet/indirector/request.rb
+++ b/lib/puppet/indirector/request.rb
@@ -1,3 +1,4 @@
+require 'uri'
require 'puppet/indirector'
# This class encapsulates all of the information you need to make an
@@ -14,6 +15,10 @@ class Puppet::Indirector::Request
! ! authenticated
end
+ def escaped_key
+ URI.escape(key)
+ end
+
# LAK:NOTE This is a messy interface to the cache, and it's only
# used by the Configurer class. I decided it was better to implement
# it now and refactor later, when we have a better design, than
@@ -96,7 +101,7 @@ class Puppet::Indirector::Request
# Just short-circuit these to full paths
if uri.scheme == "file"
- @key = uri.path
+ @key = URI.unescape(uri.path)
return
end
@@ -111,6 +116,6 @@ class Puppet::Indirector::Request
end
@protocol = uri.scheme
- @key = uri.path.sub(/^\//, '')
+ @key = URI.unescape(uri.path.sub(/^\//, ''))
end
end
diff --git a/lib/puppet/indirector/rest.rb b/lib/puppet/indirector/rest.rb
index 2d0799286..ce459b905 100644
--- a/lib/puppet/indirector/rest.rb
+++ b/lib/puppet/indirector/rest.rb
@@ -62,12 +62,12 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
end
def find(request)
- deserialize network(request).get("/#{indirection.name}/#{request.key}#{query_string(request)}", headers)
+ deserialize network(request).get("/#{indirection.name}/#{request.escaped_key}#{query_string(request)}", headers)
end
def search(request)
if request.key
- path = "/#{indirection.name}s/#{request.key}#{query_string(request)}"
+ path = "/#{indirection.name}s/#{request.escaped_key}#{query_string(request)}"
else
path = "/#{indirection.name}s#{query_string(request)}"
end
@@ -79,7 +79,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
def destroy(request)
raise ArgumentError, "DELETE does not accept options" unless request.options.empty?
- deserialize network(request).delete("/#{indirection.name}/#{request.key}", headers)
+ deserialize network(request).delete("/#{indirection.name}/#{request.escaped_key}", headers)
end
def save(request)
diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb
index 9bc94a037..cce679864 100644
--- a/lib/puppet/network/http/handler.rb
+++ b/lib/puppet/network/http/handler.rb
@@ -75,6 +75,7 @@ module Puppet::Network::HTTP::Handler
# Execute our find.
def do_find(request, response)
key = request_key(request) || raise(ArgumentError, "Could not locate lookup key in request path [#{path(request)}]")
+ key = URI.unescape(key)
args = params(request)
unless result = model.find(key, args)
return do_exception(response, "Could not find %s %s" % [model.name, key], 404)
@@ -93,6 +94,7 @@ module Puppet::Network::HTTP::Handler
def do_search(request, response)
args = params(request)
if key = request_key(request)
+ key = URI.unescape(key)
result = model.search(key, args)
else
result = model.search(args)
@@ -110,6 +112,7 @@ module Puppet::Network::HTTP::Handler
# Execute our destroy.
def do_destroy(request, response)
key = request_key(request) || raise(ArgumentError, "Could not locate lookup key in request path [#{path(request)}]")
+ key = URI.unescape(key)
args = params(request)
result = model.destroy(key, args)
diff --git a/lib/puppet/util/uri_helper.rb b/lib/puppet/util/uri_helper.rb
deleted file mode 100644
index cb9320387..000000000
--- a/lib/puppet/util/uri_helper.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Created by Luke Kanies on 2007-10-16.
-# Copyright (c) 2007. All rights reserved.
-
-require 'uri'
-require 'puppet/util'
-
-# Helper methods for dealing with URIs.
-module Puppet::Util::URIHelper
- def key2uri(key)
- # Return it directly if it's fully qualified.
- if key =~ /^#{::File::SEPARATOR}/
- key = "file://" + key
- end
-
- begin
- uri = URI.parse(URI.escape(key))
- rescue => detail
- raise ArgumentError, "Could not understand URI %s: %s" % [key, detail.to_s]
- end
- end
-end