[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5
Nick Lewis
nick at puppetlabs.com
Tue May 10 08:14:03 UTC 2011
The following commit has been merged in the experimental branch:
commit a688461100150d3f4e102e669ece839f8571e14c
Author: Nick Lewis <nick at puppetlabs.com>
Date: Wed Apr 13 15:35:47 2011 -0700
(#6928) Add a Parser face with Validate action
This will accept a number of manifests as arguments and check their syntax. If
no filenames are specified, it will check the default 'manifest' setting.
Paired-With: Jesse Wolfe
diff --git a/lib/puppet/application/parser.rb b/lib/puppet/application/parser.rb
new file mode 100644
index 0000000..b6ec3c1
--- /dev/null
+++ b/lib/puppet/application/parser.rb
@@ -0,0 +1,5 @@
+require 'puppet/application/face_base'
+require 'puppet/face'
+
+class Puppet::Application::Parser < Puppet::Application::FaceBase
+end
diff --git a/lib/puppet/face/parser.rb b/lib/puppet/face/parser.rb
new file mode 100644
index 0000000..c44810b
--- /dev/null
+++ b/lib/puppet/face/parser.rb
@@ -0,0 +1,17 @@
+require 'puppet/face'
+require 'puppet/parser'
+
+Puppet::Face.define(:parser, '0.0.1') do
+ action :validate do
+ when_invoked do |*args|
+ args.pop
+ files = args
+ files << Puppet[:manifest] if files.empty?
+ files.each do |file|
+ Puppet[:manifest] = file
+ Puppet::Node::Environment.new(Puppet[:environment]).known_resource_types.clear
+ end
+ nil
+ end
+ end
+end
diff --git a/lib/puppet/resource/type_collection.rb b/lib/puppet/resource/type_collection.rb
index 9fe7cdd..89b0a16 100644
--- a/lib/puppet/resource/type_collection.rb
+++ b/lib/puppet/resource/type_collection.rb
@@ -6,6 +6,7 @@ class Puppet::Resource::TypeCollection
@hostclasses.clear
@definitions.clear
@nodes.clear
+ @watched_files.clear
end
def initialize(env)
diff --git a/spec/unit/resource/type_collection_spec.rb b/spec/unit/resource/type_collection_spec.rb
index b5f0a0e..0c997c2 100755
--- a/spec/unit/resource/type_collection_spec.rb
+++ b/spec/unit/resource/type_collection_spec.rb
@@ -5,6 +5,8 @@ require 'puppet/resource/type_collection'
require 'puppet/resource/type'
describe Puppet::Resource::TypeCollection do
+ include PuppetSpec::Files
+
before do
@instance = Puppet::Resource::Type.new(:hostclass, "foo")
@code = Puppet::Resource::TypeCollection.new("env")
@@ -81,11 +83,14 @@ describe Puppet::Resource::TypeCollection do
loader.add Puppet::Resource::Type.new(:hostclass, "class")
loader.add Puppet::Resource::Type.new(:definition, "define")
loader.add Puppet::Resource::Type.new(:node, "node")
+ watched_file = tmpfile('watched_file')
+ loader.watch_file(watched_file)
loader.clear
loader.hostclass("class").should be_nil
loader.definition("define").should be_nil
loader.node("node").should be_nil
+ loader.should_not be_watching_file(watched_file)
end
describe "when resolving namespaces" do
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list