(#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:
parent
6c104e5e3a
commit
dfcee63afb
2 changed files with 24 additions and 0 deletions
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue