(#14670) autorequire a file_line resource's path

If we manage a file we edit with file_line, it should be autorequired by
file_line.  Without this patch applied the relationship is not
automatically setup and the user is forced to manually manage the
relationship.
This commit is contained in:
Peter Meier 2012-05-23 21:42:07 +02:00 committed by Jeff McCune
parent 6c104e5e3a
commit dfcee63afb
2 changed files with 24 additions and 0 deletions

View file

@ -50,6 +50,11 @@ Puppet::Type.newtype(:file_line) do
end
end
# Autorequire the file resource if it's being managed
autorequire(:file) do
self[:path]
end
validate do
unless self[:line] and self[:path]
raise(Puppet::Error, "Both line and path are required attributes")

View file

@ -48,4 +48,23 @@ describe Puppet::Type.type(:file_line) do
it 'should default to ensure => present' do
file_line[:ensure].should eq :present
end
it "should autorequire the file it manages" do
catalog = Puppet::Resource::Catalog.new
file = Puppet::Type.type(:file).new(:name => "/tmp/path")
catalog.add_resource file
catalog.add_resource file_line
reqs = file_line.autorequire
reqs.size.should eq 1
reqs[0].source.should eq file
reqs[0].target.should eq file_line
end
it "should not autorequire the file it manages if it is not managed" do
catalog = Puppet::Resource::Catalog.new
catalog.add_resource file_line
reqs = file_line.autorequire
reqs.size.should eq 0
end
end