+1

My partial reproduction of the file metadata problem behind #2551 stops
exhibiting the bug on HEAD with this patch applied.  If it works for Sam
Rowe I'd call this plus the #2544 patch a fix for #2551.

-- Markus

On Sun, 2009-08-23 at 12:13 -0700, Luke Kanies wrote:
> I'd made changes to the internals of the fileserving
> system to fix #2544 (mostly switched from passing
> the node around and then calculating the environment to just
> passing the environment around), but those changes weren't consistent
> throughout the fileserving code.
> 
> In the process of making them consistent, I realized that the
> plain file server actually needs the node name rather than
> the environment, so I switched to passing the request around,
> because it has both pieces of information.
> 
> Also added further integration tests which will hopefully keep
> this from cropping up again.
> 
> Signed-off-by: Luke Kanies <[email protected]>
> ---
>  lib/puppet/file_serving/configuration.rb           |    6 +-
>  lib/puppet/file_serving/mount/file.rb              |   10 +-
>  lib/puppet/file_serving/mount/modules.rb           |    8 +-
>  lib/puppet/file_serving/mount/plugins.rb           |    8 +-
>  lib/puppet/indirector/file_server.rb               |    4 +-
>  .../indirector/file_content/file_server.rb         |   52 +++++++++++-
>  spec/unit/file_serving/configuration.rb            |   18 ++--
>  spec/unit/file_serving/mount/file.rb               |   16 ++--
>  spec/unit/file_serving/mount/modules.rb            |   89 
> +++++++++-----------
>  spec/unit/file_serving/mount/plugins.rb            |   79 +++++++++---------
>  spec/unit/indirector/file_server.rb                |   28 +++---
>  spec/unit/network/authstore.rb                     |    2 +-
>  12 files changed, 181 insertions(+), 139 deletions(-)
>  mode change 100644 => 100755 spec/unit/network/authstore.rb
> 
> diff --git a/lib/puppet/file_serving/configuration.rb 
> b/lib/puppet/file_serving/configuration.rb
> index 3140455..a247f53 100644
> --- a/lib/puppet/file_serving/configuration.rb
> +++ b/lib/puppet/file_serving/configuration.rb
> @@ -32,7 +32,7 @@ class Puppet::FileServing::Configuration
>  
>      # Find the right mount.  Does some shenanigans to support old-style 
> module
>      # mounts.
> -    def find_mount(mount_name, node)
> +    def find_mount(mount_name, environment)
>          # Reparse the configuration if necessary.
>          readconfig
>  
> @@ -40,7 +40,7 @@ class Puppet::FileServing::Configuration
>              return mount
>          end
>  
> -        if mounts["modules"].environment(node).module(mount_name)
> +        if environment.module(mount_name)
>              Puppet::Util::Warnings.warnonce "DEPRECATION NOTICE: Found 
> module '%s' without using the 'modules' mount; please prefix path with 
> 'modules/'" % mount_name
>              return mounts["modules"]
>          end
> @@ -72,7 +72,7 @@ class Puppet::FileServing::Configuration
>  
>          raise(ArgumentError, "Cannot find file: Invalid path '%s'" % 
> mount_name) unless mount_name =~ %r{^[-\w]+$}
>  
> -        return nil unless mount = find_mount(mount_name, request.node)
> +        return nil unless mount = find_mount(mount_name, request.environment)
>          if mount.name == "modules" and mount_name != "modules"
>              # yay backward-compatibility
>              path = "%s/%s" % [mount_name, path]
> diff --git a/lib/puppet/file_serving/mount/file.rb 
> b/lib/puppet/file_serving/mount/file.rb
> index 9053ee1..bf7ddda 100644
> --- a/lib/puppet/file_serving/mount/file.rb
> +++ b/lib/puppet/file_serving/mount/file.rb
> @@ -15,7 +15,7 @@ class Puppet::FileServing::Mount::File < 
> Puppet::FileServing::Mount
>          end
>      end
>  
> -    def complete_path(relative_path, node = nil)
> +    def complete_path(relative_path, node)
>          full_path = path(node)
>  
>          raise ArgumentError.new("Mounts without paths are not usable") 
> unless full_path
> @@ -31,8 +31,8 @@ class Puppet::FileServing::Mount::File < 
> Puppet::FileServing::Mount
>      end
>  
>      # Return an instance of the appropriate class.
> -    def find(short_file, options = {})
> -        complete_path(short_file, options[:node])
> +    def find(short_file, request)
> +        complete_path(short_file, request.node)
>      end
>  
>      # Return the path as appropriate, expanding as necessary.
> @@ -63,8 +63,8 @@ class Puppet::FileServing::Mount::File < 
> Puppet::FileServing::Mount
>          @path = path
>      end
>  
> -    def search(path, options = {})
> -        return nil unless path = complete_path(path, options[:node])
> +    def search(path, request)
> +        return nil unless path = complete_path(path, request.node)
>          return [path]
>      end
>  
> diff --git a/lib/puppet/file_serving/mount/modules.rb 
> b/lib/puppet/file_serving/mount/modules.rb
> index bf0bad0..a7b6d9e 100644
> --- a/lib/puppet/file_serving/mount/modules.rb
> +++ b/lib/puppet/file_serving/mount/modules.rb
> @@ -4,16 +4,16 @@ require 'puppet/file_serving/mount'
>  # modules for files.  Yay.
>  class Puppet::FileServing::Mount::Modules < Puppet::FileServing::Mount
>      # Return an instance of the appropriate class.
> -    def find(path, options = {})
> +    def find(path, request)
>          module_name, relative_path = path.split("/", 2)
> -        return nil unless mod = 
> environment(options[:node]).module(module_name)
> +        return nil unless mod = request.environment.module(module_name)
>  
>          mod.file(relative_path)
>      end
>  
> -    def search(path, options = {})
> +    def search(path, request)
>          module_name, relative_path = path.split("/", 2)
> -        return nil unless mod = 
> environment(options[:node]).module(module_name)
> +        return nil unless mod = request.environment.module(module_name)
>  
>          return nil unless path = mod.file(relative_path)
>          return [path]
> diff --git a/lib/puppet/file_serving/mount/plugins.rb 
> b/lib/puppet/file_serving/mount/plugins.rb
> index 02b838c..c860e52 100644
> --- a/lib/puppet/file_serving/mount/plugins.rb
> +++ b/lib/puppet/file_serving/mount/plugins.rb
> @@ -5,18 +5,18 @@ require 'puppet/file_serving/mount'
>  # many directories into one.
>  class Puppet::FileServing::Mount::Plugins < Puppet::FileServing::Mount
>      # Return an instance of the appropriate class.
> -    def find(relative_path, environment)
> -        return nil unless mod = environment.modules.find { |mod|  
> mod.plugin(relative_path) }
> +    def find(relative_path, request)
> +        return nil unless mod = request.environment.modules.find { |mod|  
> mod.plugin(relative_path) }
>  
>          path = mod.plugin(relative_path)
>  
>          return path
>      end
>  
> -    def search(relative_path, environment)
> +    def search(relative_path, request)
>          # We currently only support one kind of search on plugins - return
>          # them all.
> -        paths = environment.modules.find_all { |mod| mod.plugins? }.collect 
> { |mod| mod.plugin_directory }
> +        paths = request.environment.modules.find_all { |mod| mod.plugins? 
> }.collect { |mod| mod.plugin_directory }
>          return nil if paths.empty?
>          return paths
>      end
> diff --git a/lib/puppet/indirector/file_server.rb 
> b/lib/puppet/indirector/file_server.rb
> index fe4d4aa..18ac208 100644
> --- a/lib/puppet/indirector/file_server.rb
> +++ b/lib/puppet/indirector/file_server.rb
> @@ -30,7 +30,7 @@ class Puppet::Indirector::FileServer < 
> Puppet::Indirector::Terminus
>  
>          # The mount checks to see if the file exists, and returns nil
>          # if not.
> -        return nil unless path = mount.find(relative_path, 
> request.environment)
> +        return nil unless path = mount.find(relative_path, request)
>          result = model.new(path)
>          result.links = request.options[:links] if request.options[:links]
>          result.collect
> @@ -42,7 +42,7 @@ class Puppet::Indirector::FileServer < 
> Puppet::Indirector::Terminus
>      def search(request)
>          mount, relative_path = configuration.split_path(request)
>  
> -        unless mount and paths = mount.search(relative_path, 
> request.environment)
> +        unless mount and paths = mount.search(relative_path, request)
>              Puppet.info "Could not find filesystem info for file '%s' in 
> environment %s" % [request.key, request.environment]
>              return nil
>          end
> diff --git a/spec/integration/indirector/file_content/file_server.rb 
> b/spec/integration/indirector/file_content/file_server.rb
> index b3c63fc..ea89230 100755
> --- a/spec/integration/indirector/file_content/file_server.rb
> +++ b/spec/integration/indirector/file_content/file_server.rb
> @@ -19,7 +19,7 @@ describe Puppet::Indirector::FileContent::FileServer, " 
> when finding files" do
>          @test_class = Puppet::FileServing::Content
>      end
>  
> -    it "should find file content in the environment specified in the 
> request" do
> +    it "should find plugin file content in the environment specified in the 
> request" do
>          path = tmpfile("file_content_with_env")
>  
>          Dir.mkdir(path)
> @@ -40,4 +40,54 @@ describe Puppet::Indirector::FileContent::FileServer, " 
> when finding files" do
>          result[1].should be_instance_of(Puppet::FileServing::Content)
>          result[1].content.should == "1\n"
>      end
> +
> +    it "should find file content in modules" do
> +        path = tmpfile("file_content")
> +
> +        Dir.mkdir(path)
> +
> +        modpath = File.join(path, "mymod")
> +        FileUtils.mkdir_p(File.join(modpath, "files"))
> +        file = File.join(modpath, "files", "myfile")
> +        File.open(file, "w") { |f| f.puts "1" }
> +
> +        Puppet.settings[:modulepath] = path
> +
> +        result = Puppet::FileServing::Content.find("modules/mymod/myfile")
> +
> +        result.should_not be_nil
> +        result.should be_instance_of(Puppet::FileServing::Content)
> +        result.content.should == "1\n"
> +    end
> +
> +    it "should find file content in files when node name expansions are 
> used" do
> +        Puppet::Util::Cacher.expire
> +        FileTest.stubs(:exists?).returns true
> +        
> FileTest.stubs(:exists?).with(Puppet[:fileserverconfig]).returns(true)
> +
> +        @path = tmpfile("file_server_testing")
> +
> +        Dir.mkdir(@path)
> +        subdir = File.join(@path, "mynode")
> +        Dir.mkdir(subdir)
> +        File.open(File.join(subdir, "myfile"), "w") { |f| f.puts "1" }
> +
> +        # Use a real mount, so the integration is a bit deeper.
> +        @mount1 = Puppet::FileServing::Configuration::Mount::File.new("one")
> +        @mount1.stubs(:allowed?).returns true
> +        @mount1.path = File.join(@path, "%h")
> +
> +        @parser = stub 'parser', :changed? => false
> +        @parser.stubs(:parse).returns("one" => @mount1)
> +
> +        
> Puppet::FileServing::Configuration::Parser.stubs(:new).returns(@parser)
> +
> +        path = File.join(@path, "myfile")
> +
> +        result = Puppet::FileServing::Content.find("one/myfile", 
> :environment => "foo", :node => "mynode")
> +
> +        result.should_not be_nil
> +        result.should be_instance_of(Puppet::FileServing::Content)
> +        result.content.should == "1\n"
> +    end
>  end
> diff --git a/spec/unit/file_serving/configuration.rb 
> b/spec/unit/file_serving/configuration.rb
> index 57ae83a..c2f386f 100755
> --- a/spec/unit/file_serving/configuration.rb
> +++ b/spec/unit/file_serving/configuration.rb
> @@ -128,21 +128,20 @@ describe Puppet::FileServing::Configuration do
>          it "should choose the named mount if one exists" do
>              config = Puppet::FileServing::Configuration.create
>              config.expects(:mounts).returns("one" => "foo")
> -            config.find_mount("one", "mynode").should == "foo"
> +            config.find_mount("one", mock('env')).should == "foo"
>          end
>  
> -        it "should use the environment of the module mount to find a 
> matching module if the named module cannot be found" do
> +        it "should use the provided environment to find a matching module if 
> the named module cannot be found" do
>              config = Puppet::FileServing::Configuration.create
>  
>              mod = mock 'module'
>              env = mock 'environment'
>              env.expects(:module).with("foo").returns mod
>              mount = mock 'mount'
> -            mount.expects(:environment).with("mynode").returns env
>  
>              config.stubs(:mounts).returns("modules" => mount)
>              Puppet::Util::Warnings.expects(:warnonce)
> -            config.find_mount("foo", "mynode").should equal(mount)
> +            config.find_mount("foo", env).should equal(mount)
>          end
>  
>          it "should return nil if there is no such named mount and no module 
> with the same name exists" do
> @@ -150,11 +149,10 @@ describe Puppet::FileServing::Configuration do
>  
>              env = mock 'environment'
>              env.expects(:module).with("foo").returns nil
> -            mount = mock 'mount'
> -            mount.expects(:environment).with("mynode").returns env
>  
> +            mount = mock 'mount'
>              config.stubs(:mounts).returns("modules" => mount)
> -            config.find_mount("foo", "mynode").should be_nil
> +            config.find_mount("foo", env).should be_nil
>          end
>      end
>  
> @@ -163,7 +161,7 @@ describe Puppet::FileServing::Configuration do
>              @config = Puppet::FileServing::Configuration.create
>              @config.stubs(:find_mount)
>  
> -            @request = stub 'request', :key => "foo/bar/baz", :options => 
> {}, :node => nil
> +            @request = stub 'request', :key => "foo/bar/baz", :options => 
> {}, :node => nil, :environment => mock("env")
>          end
>  
>          it "should reread the configuration" do
> @@ -190,8 +188,8 @@ describe Puppet::FileServing::Configuration do
>              lambda { @config.split_path(@request) }.should_not 
> raise_error(ArgumentError)
>          end
>  
> -        it "should use the mount name and node to find the mount" do
> -            @config.expects(:find_mount).with { |name, node| name == "foo" 
> and node == "mynode" }
> +        it "should use the mount name and environment to find the mount" do
> +            @config.expects(:find_mount).with { |name, env| name == "foo" 
> and env == @request.environment }
>              @request.stubs(:node).returns("mynode")
>  
>              @config.split_path(@request)
> diff --git a/spec/unit/file_serving/mount/file.rb 
> b/spec/unit/file_serving/mount/file.rb
> index 499a035..837fe8e 100755
> --- a/spec/unit/file_serving/mount/file.rb
> +++ b/spec/unit/file_serving/mount/file.rb
> @@ -104,17 +104,17 @@ describe Puppet::FileServing::Mount::File, "when 
> determining the complete file p
>  
>      it "should return nil if the file is absent" do
>          FileTest.stubs(:exist?).returns(false)
> -        @mount.complete_path("/my/path").should be_nil
> +        @mount.complete_path("/my/path", nil).should be_nil
>      end
>  
>      it "should return the file path if the file is present" do
>          FileTest.stubs(:exist?).with("/my/path").returns(true)
> -        @mount.complete_path("/my/path").should == "/mount/my/path"
> +        @mount.complete_path("/my/path", nil).should == "/mount/my/path"
>      end
>  
>      it "should treat a nil file name as the path to the mount itself" do
>          FileTest.stubs(:exist?).returns(true)
> -        @mount.complete_path(nil).should == "/mount"
> +        @mount.complete_path(nil, nil).should == "/mount"
>      end
>  
>      it "should use the client host name if provided in the options" do
> @@ -148,12 +148,14 @@ describe Puppet::FileServing::Mount::File, "when 
> finding files" do
>          @mount.path = "/mount"
>          stub_facter("myhost.mydomain.com")
>          @host = "host.domain.com"
> +
> +        @request = stub 'request', :node => "foo"
>      end
>  
>      it "should return the results of the complete file path" do
>          FileTest.stubs(:exist?).returns(false)
>          @mount.expects(:complete_path).with("/my/path", "foo").returns "eh"
> -        @mount.find("/my/path", :node => "foo").should == "eh"
> +        @mount.find("/my/path", @request).should == "eh"
>      end
>  end
>  
> @@ -168,17 +170,19 @@ describe Puppet::FileServing::Mount::File, "when 
> searching for files" do
>          @mount.path = "/mount"
>          stub_facter("myhost.mydomain.com")
>          @host = "host.domain.com"
> +
> +        @request = stub 'request', :node => "foo"
>      end
>  
>      it "should return the results of the complete file path as an array" do
>          FileTest.stubs(:exist?).returns(false)
>          @mount.expects(:complete_path).with("/my/path", "foo").returns "eh"
> -        @mount.search("/my/path", :node => "foo").should == ["eh"]
> +        @mount.search("/my/path", @request).should == ["eh"]
>      end
>  
>      it "should return nil if the complete path is nil" do
>          FileTest.stubs(:exist?).returns(false)
>          @mount.expects(:complete_path).with("/my/path", "foo").returns nil
> -        @mount.search("/my/path", :node => "foo").should be_nil
> +        @mount.search("/my/path", @request).should be_nil
>      end
>  end
> diff --git a/spec/unit/file_serving/mount/modules.rb 
> b/spec/unit/file_serving/mount/modules.rb
> index 6861e94..eeecc9a 100755
> --- a/spec/unit/file_serving/mount/modules.rb
> +++ b/spec/unit/file_serving/mount/modules.rb
> @@ -3,70 +3,61 @@
>  require File.dirname(__FILE__) + '/../../../spec_helper'
>  require 'puppet/file_serving/mount/modules'
>  
> -describe Puppet::FileServing::Mount::Modules, "when finding files" do
> +describe Puppet::FileServing::Mount::Modules do
>      before do
>          @mount = Puppet::FileServing::Mount::Modules.new("modules")
>  
>          @environment = stub 'environment', :module => nil
> -        @mount.stubs(:environment).returns @environment
> +        @request = stub 'request', :environment => @environment
>      end
>  
> -    it "should use the node's environment to find the module" do
> -        env = mock 'env'
> -        @mount.expects(:environment).with("mynode").returns env
> -        env.expects(:module)
> +    describe "when finding files" do
> +        it "should use the provided environment to find the module" do
> +            @environment.expects(:module)
>  
> -        @mount.find("foo", :node => "mynode")
> -    end
> +            @mount.find("foo", @request)
> +        end
>  
> -    it "should treat the first field of the relative path as the module 
> name" do
> -        @environment.expects(:module).with("foo")
> -        @mount.find("foo/bar/baz")
> -    end
> +        it "should treat the first field of the relative path as the module 
> name" do
> +            @environment.expects(:module).with("foo")
> +            @mount.find("foo/bar/baz", @request)
> +        end
>  
> -    it "should return nil if the specified module does not exist" do
> -        @environment.expects(:module).with("foo").returns nil
> -        @mount.find("foo/bar/baz")
> -    end
> +        it "should return nil if the specified module does not exist" do
> +            @environment.expects(:module).with("foo").returns nil
> +            @mount.find("foo/bar/baz", @request)
> +        end
>  
> -    it "should return the file path from the module" do
> -        mod = mock 'module'
> -        mod.expects(:file).with("bar/baz").returns "eh"
> -        @environment.expects(:module).with("foo").returns mod
> -        @mount.find("foo/bar/baz").should == "eh"
> +        it "should return the file path from the module" do
> +            mod = mock 'module'
> +            mod.expects(:file).with("bar/baz").returns "eh"
> +            @environment.expects(:module).with("foo").returns mod
> +            @mount.find("foo/bar/baz", @request).should == "eh"
> +        end
>      end
> -end
>  
> -describe Puppet::FileServing::Mount::Modules, "when searching for files" do
> -    before do
> -        @mount = Puppet::FileServing::Mount::Modules.new("modules")
> +    describe "when searching for files" do
> +        it "should use the node's environment to search the module" do
> +            @environment.expects(:module)
>  
> -        @environment = stub 'environment', :module => nil
> -        @mount.stubs(:environment).returns @environment
> -    end
> -
> -    it "should use the node's environment to search the module" do
> -        env = mock 'env'
> -        @mount.expects(:environment).with("mynode").returns env
> -        env.expects(:module)
> -
> -        @mount.search("foo", :node => "mynode")
> -    end
> +            @mount.search("foo", @request)
> +        end
>  
> -    it "should treat the first field of the relative path as the module 
> name" do
> -        @environment.expects(:module).with("foo")
> -        @mount.search("foo/bar/baz")
> -    end
> +        it "should treat the first field of the relative path as the module 
> name" do
> +            @environment.expects(:module).with("foo")
> +            @mount.search("foo/bar/baz", @request)
> +        end
>  
> -    it "should return nil if the specified module does not exist" do
> -        @environment.expects(:module).with("foo").returns nil
> -        @mount.search("foo/bar/baz")
> -    end
> +        it "should return nil if the specified module does not exist" do
> +            @environment.expects(:module).with("foo").returns nil
> +            @mount.search("foo/bar/baz", @request)
> +        end
>  
> -    it "should return the file path as an array from the module" do
> -        mod = mock 'module'
> -        mod.expects(:file).with("bar/baz").returns "eh"
> -        @environment.expects(:module).with("foo").returns mod
> -        @mount.search("foo/bar/baz").should == ["eh"]
> +        it "should return the file path as an array from the module" do
> +            mod = mock 'module'
> +            mod.expects(:file).with("bar/baz").returns "eh"
> +            @environment.expects(:module).with("foo").returns mod
> +            @mount.search("foo/bar/baz", @request).should == ["eh"]
> +        end
>      end
>  end
> diff --git a/spec/unit/file_serving/mount/plugins.rb 
> b/spec/unit/file_serving/mount/plugins.rb
> index b3a32b7..d8c05a2 100755
> --- a/spec/unit/file_serving/mount/plugins.rb
> +++ b/spec/unit/file_serving/mount/plugins.rb
> @@ -3,60 +3,59 @@
>  require File.dirname(__FILE__) + '/../../../spec_helper'
>  require 'puppet/file_serving/mount/plugins'
>  
> -describe Puppet::FileServing::Mount::Plugins, "when finding files" do
> +describe Puppet::FileServing::Mount::Plugins do
>      before do
> -        @mount = Puppet::FileServing::Mount::Plugins.new("modules")
> -    end
> -
> -    it "should use the provided environment to find the modules" do
> -        env = mock 'env'
> -        env.expects(:modules).returns []
> +        @mount = Puppet::FileServing::Mount::Plugins.new("plugins")
>  
> -        @mount.find("foo", env)
> +        @environment = stub 'environment', :module => nil
> +        @request = stub 'request', :environment => @environment
>      end
>  
> -    it "should return nil if no module can be found with a matching plugin" 
> do
> -        mod = mock 'module'
> -        mod.stubs(:plugin).with("foo/bar").returns nil
> +    describe  "when finding files" do
> +        it "should use the provided environment to find the modules" do
> +            @environment.expects(:modules).returns []
>  
> -        env = stub 'env', :modules => []
> -        @mount.find("foo/bar", env).should be_nil
> -    end
> +            @mount.find("foo", @request)
> +        end
>  
> -    it "should return the file path from the module" do
> -        mod = mock 'module'
> -        mod.stubs(:plugin).with("foo/bar").returns "eh"
> +        it "should return nil if no module can be found with a matching 
> plugin" do
> +            mod = mock 'module'
> +            mod.stubs(:plugin).with("foo/bar").returns nil
>  
> -        env = stub 'env', :modules => [mod]
> -        @mount.find("foo/bar", env).should == "eh"
> -    end
> -end
> +            @environment.stubs(:modules).returns [mod]
> +            @mount.find("foo/bar", @request).should be_nil
> +        end
>  
> -describe Puppet::FileServing::Mount::Plugins, "when searching for files" do
> -    before do
> -        @mount = Puppet::FileServing::Mount::Plugins.new("modules")
> +        it "should return the file path from the module" do
> +            mod = mock 'module'
> +            mod.stubs(:plugin).with("foo/bar").returns "eh"
> +
> +            @environment.stubs(:modules).returns [mod]
> +            @mount.find("foo/bar", @request).should == "eh"
> +        end
>      end
>  
> -    it "should use the node's environment to find the modules" do
> -        env = mock 'env'
> -        env.expects(:modules).returns []
> +    describe "when searching for files" do
> +        it "should use the node's environment to find the modules" do
> +            @environment.expects(:modules).returns []
>  
> -        @mount.search("foo", env)
> -    end
> +            @mount.search("foo", @request)
> +        end
>  
> -    it "should return nil if no modules can be found that have plugins" do
> -        mod = mock 'module'
> -        mod.stubs(:plugins?).returns false
> +        it "should return nil if no modules can be found that have plugins" 
> do
> +            mod = mock 'module'
> +            mod.stubs(:plugins?).returns false
>  
> -        env = stub 'env', :modules => []
> -        @mount.search("foo/bar", env).should be_nil
> -    end
> +            @environment.stubs(:modules).returns []
> +            @mount.search("foo/bar", @request).should be_nil
> +        end
>  
> -    it "should return the plugin paths for each module that has plugins" do
> -        one = stub 'module', :plugins? => true, :plugin_directory => "/one"
> -        two = stub 'module', :plugins? => true, :plugin_directory => "/two"
> +        it "should return the plugin paths for each module that has plugins" 
> do
> +            one = stub 'module', :plugins? => true, :plugin_directory => 
> "/one"
> +            two = stub 'module', :plugins? => true, :plugin_directory => 
> "/two"
>  
> -        env = stub 'env', :modules => [one, two]
> -        @mount.search("foo/bar", env).should == %w{/one /two}
> +            @environment.stubs(:modules).returns [one, two]
> +            @mount.search("foo/bar", @request).should == %w{/one /two}
> +        end
>      end
>  end
> diff --git a/spec/unit/indirector/file_server.rb 
> b/spec/unit/indirector/file_server.rb
> index a2e2ff8..912695e 100755
> --- a/spec/unit/indirector/file_server.rb
> +++ b/spec/unit/indirector/file_server.rb
> @@ -52,15 +52,15 @@ describe Puppet::Indirector::FileServer do
>          it "should use the mount to find the full path" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| key == "rel/path" }
> +            @mount.expects(:find).with { |key, request| key == "rel/path" }
>  
>              @file_server.find(@request)
>          end
>  
> -        it "should pass the request's environment when finding a file" do
> +        it "should pass the request when finding a file" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| env == 
> @request.environment }
> +            @mount.expects(:find).with { |key, request| request == @request }
>  
>              @file_server.find(@request)
>          end
> @@ -68,7 +68,7 @@ describe Puppet::Indirector::FileServer do
>          it "should return nil if it cannot find a full path" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| key == "rel/path" 
> }.returns nil
> +            @mount.expects(:find).with { |key, request| key == "rel/path" 
> }.returns nil
>  
>              @file_server.find(@request).should be_nil
>          end
> @@ -76,7 +76,7 @@ describe Puppet::Indirector::FileServer do
>          it "should create an instance with the found path" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| key == "rel/path" 
> }.returns "/my/file"
> +            @mount.expects(:find).with { |key, request| key == "rel/path" 
> }.returns "/my/file"
>  
>              @model.expects(:new).with("/my/file").returns @instance
>  
> @@ -87,7 +87,7 @@ describe Puppet::Indirector::FileServer do
>              @request.options[:links] = true
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| key == "rel/path" 
> }.returns "/my/file"
> +            @mount.expects(:find).with { |key, request| key == "rel/path" 
> }.returns "/my/file"
>  
>              @model.expects(:new).with("/my/file").returns @instance
>  
> @@ -100,7 +100,7 @@ describe Puppet::Indirector::FileServer do
>              @request.options[:links] = true
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:find).with { |key, env| key == "rel/path" 
> }.returns "/my/file"
> +            @mount.expects(:find).with { |key, request| key == "rel/path" 
> }.returns "/my/file"
>  
>              @model.expects(:new).with("/my/file").returns @instance
>  
> @@ -131,15 +131,15 @@ describe Puppet::Indirector::FileServer do
>          it "should use the mount to search for the full paths" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| key == "rel/path" }
> +            @mount.expects(:search).with { |key, request| key == "rel/path" }
>  
>              @file_server.search(@request)
>          end
>  
> -        it "should pass the request's environment" do
> +        it "should pass the request" do
>              @configuration.stubs(:split_path).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| env == 
> @request.environment }
> +            @mount.expects(:search).with { |key, request| request == 
> @request }
>  
>              @file_server.search(@request)
>          end
> @@ -147,7 +147,7 @@ describe Puppet::Indirector::FileServer do
>          it "should return nil if searching does not find any full paths" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| key == "rel/path" 
> }.returns nil
> +            @mount.expects(:search).with { |key, request| key == "rel/path" 
> }.returns nil
>  
>              @file_server.search(@request).should be_nil
>          end
> @@ -155,7 +155,7 @@ describe Puppet::Indirector::FileServer do
>          it "should create a fileset with each returned path and merge them" 
> do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| key == "rel/path" 
> }.returns %w{/one /two}
> +            @mount.expects(:search).with { |key, request| key == "rel/path" 
> }.returns %w{/one /two}
>  
>              FileTest.stubs(:exist?).returns true
>  
> @@ -172,7 +172,7 @@ describe Puppet::Indirector::FileServer do
>          it "should create an instance with each path resulting from the 
> merger of the filesets" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| key == "rel/path" 
> }.returns []
> +            @mount.expects(:search).with { |key, request| key == "rel/path" 
> }.returns []
>  
>              FileTest.stubs(:exist?).returns true
>  
> @@ -194,7 +194,7 @@ describe Puppet::Indirector::FileServer do
>          it "should set 'links' on the instances if it is set in the request 
> options" do
>              
> @configuration.expects(:split_path).with(@request).returns([...@mount, 
> "rel/path"])
>  
> -            @mount.expects(:search).with { |key, env| key == "rel/path" 
> }.returns []
> +            @mount.expects(:search).with { |key, request| key == "rel/path" 
> }.returns []
>  
>              FileTest.stubs(:exist?).returns true
>  
> diff --git a/spec/unit/network/authstore.rb b/spec/unit/network/authstore.rb
> old mode 100644
> new mode 100755
> index 224d671..bc42e2c
> --- a/spec/unit/network/authstore.rb
> +++ b/spec/unit/network/authstore.rb
> @@ -57,7 +57,7 @@ describe Puppet::Network::AuthStore::Declaration do
>              @declaration.should be_match(@host,'200.101.99.98')
>          end
>          it "should not match a similar PQDN" do
> -            pending "FQDN consensus"
> +            #pending "FQDN consensus"
>              @declaration.should_not be_match(@host[0..-2],'200.101.99.98')
>          end
>      end
-- 
Markus <[email protected]>


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to