From 4540949d96608c6ff7eed07d53294337446fbead Mon Sep 17 00:00:00 2001 From: Dan Bode Date: Wed, 27 Jul 2011 15:28:44 -0700 Subject: (#8665) Change type from append_line to whole_line Changed the type name from append_line to whole_line. After feedback that having a type with a verb in the name was confusing. --- lib/puppet/provider/append_line/ruby.rb | 15 -------- lib/puppet/provider/whole_line/ruby.rb | 15 ++++++++ lib/puppet/type/append_line.rb | 44 ---------------------- lib/puppet/type/whole_line.rb | 44 ++++++++++++++++++++++ spec/unit/puppet/provider/append_line/ruby_spec.rb | 30 --------------- spec/unit/puppet/provider/whole_line/ruby_spec.rb | 30 +++++++++++++++ spec/unit/puppet/type/append_line_spec.rb | 24 ------------ spec/unit/puppet/type/whole_line_spec.rb | 24 ++++++++++++ tests/append_line.pp | 7 ---- tests/whole_line.pp | 7 ++++ 10 files changed, 120 insertions(+), 120 deletions(-) delete mode 100644 lib/puppet/provider/append_line/ruby.rb create mode 100644 lib/puppet/provider/whole_line/ruby.rb delete mode 100644 lib/puppet/type/append_line.rb create mode 100644 lib/puppet/type/whole_line.rb delete mode 100644 spec/unit/puppet/provider/append_line/ruby_spec.rb create mode 100644 spec/unit/puppet/provider/whole_line/ruby_spec.rb delete mode 100644 spec/unit/puppet/type/append_line_spec.rb create mode 100644 spec/unit/puppet/type/whole_line_spec.rb delete mode 100644 tests/append_line.pp create mode 100644 tests/whole_line.pp diff --git a/lib/puppet/provider/append_line/ruby.rb b/lib/puppet/provider/append_line/ruby.rb deleted file mode 100644 index 5e78659..0000000 --- a/lib/puppet/provider/append_line/ruby.rb +++ /dev/null @@ -1,15 +0,0 @@ -Puppet::Type.type(:append_line).provide(:ruby) do - - def exists? - File.readlines(resource[:path]).find do |line| - line.chomp == resource[:line].chomp - end - end - - def create - File.open(resource[:path], 'a') do |fh| - fh.puts resource[:line] - end - end - -end diff --git a/lib/puppet/provider/whole_line/ruby.rb b/lib/puppet/provider/whole_line/ruby.rb new file mode 100644 index 0000000..156f255 --- /dev/null +++ b/lib/puppet/provider/whole_line/ruby.rb @@ -0,0 +1,15 @@ +Puppet::Type.type(:whole_line).provide(:ruby) do + + def exists? + File.readlines(resource[:path]).find do |line| + line.chomp == resource[:line].chomp + end + end + + def create + File.open(resource[:path], 'a') do |fh| + fh.puts resource[:line] + end + end + +end diff --git a/lib/puppet/type/append_line.rb b/lib/puppet/type/append_line.rb deleted file mode 100644 index b3f926c..0000000 --- a/lib/puppet/type/append_line.rb +++ /dev/null @@ -1,44 +0,0 @@ -Puppet::Type.newtype(:append_line) do - - desc <<-EOT - Type that can append a line to a file if it does not already contain it. - - Example: - - append_line { 'sudo_rule': - path => '/etc/sudoers', - line => '%admin ALL=(ALL) ALL', - } - - EOT - - ensurable do - defaultto :present - newvalue(:present) do - provider.create - end - end - - newparam(:name, :namevar => true) do - desc 'arbitrary name used as identity' - end - - newparam(:line) do - desc 'The line to be appended to the path.' - end - - newparam(:path) do - desc 'File to possibly append a line to.' - validate do |value| - unless (Puppet.features.posix? and value =~ /^\//) or (Puppet.features.microsoft_windows? and (value =~ /^.:\// or value =~ /^\/\/[^\/]+\/[^\/]+/)) - raise(Puppet::Error, "File paths must be fully qualified, not '#{value}'") - end - end - end - - validate do - unless self[:line] and self[:path] - raise(Puppet::Error, "Both line and path are required attributes") - end - end -end diff --git a/lib/puppet/type/whole_line.rb b/lib/puppet/type/whole_line.rb new file mode 100644 index 0000000..f231602 --- /dev/null +++ b/lib/puppet/type/whole_line.rb @@ -0,0 +1,44 @@ +Puppet::Type.newtype(:whole_line) do + + desc <<-EOT + Type that can append whole a line to a file if it does not already contain it. + + Example: + + whole_line { 'sudo_rule': + path => '/etc/sudoers', + line => '%admin ALL=(ALL) ALL', + } + + EOT + + ensurable do + defaultto :present + newvalue(:present) do + provider.create + end + end + + newparam(:name, :namevar => true) do + desc 'arbitrary name used as identity' + end + + newparam(:line) do + desc 'The line to be appended to the path.' + end + + newparam(:path) do + desc 'File to possibly append a line to.' + validate do |value| + unless (Puppet.features.posix? and value =~ /^\//) or (Puppet.features.microsoft_windows? and (value =~ /^.:\// or value =~ /^\/\/[^\/]+\/[^\/]+/)) + raise(Puppet::Error, "File paths must be fully qualified, not '#{value}'") + end + end + end + + validate do + unless self[:line] and self[:path] + raise(Puppet::Error, "Both line and path are required attributes") + end + end +end diff --git a/spec/unit/puppet/provider/append_line/ruby_spec.rb b/spec/unit/puppet/provider/append_line/ruby_spec.rb deleted file mode 100644 index ea28c31..0000000 --- a/spec/unit/puppet/provider/append_line/ruby_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -require 'puppet' -require 'tempfile' -provider_class = Puppet::Type.type(:append_line).provider(:ruby) -describe provider_class do - before :each do - tmp = Tempfile.new('tmp') - @tmpfile = tmp.path - tmp.close! - @resource = Puppet::Type::Append_line.new( - {:name => 'foo', :path => @tmpfile, :line => 'foo'} - ) - @provider = provider_class.new(@resource) - end - it 'should detect if the line exists in the file' do - File.open(@tmpfile, 'w') do |fh| - fh.write('foo') - end - @provider.exists?.should be_true - end - it 'should detect if the line does not exist in the file' do - File.open(@tmpfile, 'w') do |fh| - fh.write('foo1') - end - @provider.exists?.should be_nil - end - it 'should append to an existing file when creating' do - @provider.create - File.read(@tmpfile).chomp.should == 'foo' - end -end diff --git a/spec/unit/puppet/provider/whole_line/ruby_spec.rb b/spec/unit/puppet/provider/whole_line/ruby_spec.rb new file mode 100644 index 0000000..9faff2c --- /dev/null +++ b/spec/unit/puppet/provider/whole_line/ruby_spec.rb @@ -0,0 +1,30 @@ +require 'puppet' +require 'tempfile' +provider_class = Puppet::Type.type(:whole_line).provider(:ruby) +describe provider_class do + before :each do + tmp = Tempfile.new('tmp') + @tmpfile = tmp.path + tmp.close! + @resource = Puppet::Type::Whole_line.new( + {:name => 'foo', :path => @tmpfile, :line => 'foo'} + ) + @provider = provider_class.new(@resource) + end + it 'should detect if the line exists in the file' do + File.open(@tmpfile, 'w') do |fh| + fh.write('foo') + end + @provider.exists?.should be_true + end + it 'should detect if the line does not exist in the file' do + File.open(@tmpfile, 'w') do |fh| + fh.write('foo1') + end + @provider.exists?.should be_nil + end + it 'should append to an existing file when creating' do + @provider.create + File.read(@tmpfile).chomp.should == 'foo' + end +end diff --git a/spec/unit/puppet/type/append_line_spec.rb b/spec/unit/puppet/type/append_line_spec.rb deleted file mode 100644 index d0564c3..0000000 --- a/spec/unit/puppet/type/append_line_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'puppet' -require 'tempfile' -describe Puppet::Type.type(:append_line) do - before :each do - @append_line = Puppet::Type.type(:append_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path') - end - it 'should accept a line and path' do - @append_line[:line] = 'my_line' - @append_line[:line].should == 'my_line' - end - it 'should accept posix filenames' do - @append_line[:path] = '/tmp/path' - @append_line[:path].should == '/tmp/path' - end - it 'should not accept unqualified path' do - expect { @append_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/) - end - it 'should require that a line is specified' do - expect { Puppet::Type.type(:append_line).new(:name => 'foo', :path => '/tmp/file') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) - end - it 'should require that a file is specified' do - expect { Puppet::Type.type(:append_line).new(:name => 'foo', :line => 'path') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) - end -end diff --git a/spec/unit/puppet/type/whole_line_spec.rb b/spec/unit/puppet/type/whole_line_spec.rb new file mode 100644 index 0000000..f273baa --- /dev/null +++ b/spec/unit/puppet/type/whole_line_spec.rb @@ -0,0 +1,24 @@ +require 'puppet' +require 'tempfile' +describe Puppet::Type.type(:whole_line) do + before :each do + @whole_line = Puppet::Type.type(:whole_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path') + end + it 'should accept a line and path' do + @whole_line[:line] = 'my_line' + @whole_line[:line].should == 'my_line' + end + it 'should accept posix filenames' do + @whole_line[:path] = '/tmp/path' + @whole_line[:path].should == '/tmp/path' + end + it 'should not accept unqualified path' do + expect { @whole_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/) + end + it 'should require that a line is specified' do + expect { Puppet::Type.type(:whole_line).new(:name => 'foo', :path => '/tmp/file') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) + end + it 'should require that a file is specified' do + expect { Puppet::Type.type(:whole_line).new(:name => 'foo', :line => 'path') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) + end +end diff --git a/tests/append_line.pp b/tests/append_line.pp deleted file mode 100644 index f50a833..0000000 --- a/tests/append_line.pp +++ /dev/null @@ -1,7 +0,0 @@ -file { '/tmp/dansfile': - ensure => present -}-> -append_line { 'dans_line': - line => 'dan is awesome', - #path => '/tmp/dansfile', -} diff --git a/tests/whole_line.pp b/tests/whole_line.pp new file mode 100644 index 0000000..1302989 --- /dev/null +++ b/tests/whole_line.pp @@ -0,0 +1,7 @@ +file { '/tmp/dansfile': + ensure => present +}-> +whole_line { 'dans_line': + line => 'dan is awesome', + path => '/tmp/dansfile', +} -- cgit v1.2.3