Best unofficial Apache Server developers community
Username
Forgot password?
Sign in with Twitter account
Sign in with Facebook account
List archives

how to ensure like this like puppet://puppet.server/modules/xxx

Creating tests for the yum package provider
(115 lines)
Could not find default node or by name
(62 lines)
Aug 16, 2010
Timo Seven
Timo Seven
Hi all:


  I want to every client to download a file like test.txt to /etc/

So I write a test.pp

class test {
        file { "/etc/test.txt":
                source => "puppet://puppet.timo.com/module/test.txt"
        }
}


But now in the server log I found the error like "Aug 16 13:21:44
zw_83_193 puppet-master[22362]: Not authorized to call find on
/file_metadata/module/test.txt", and the test.txt  has not in the all
clients.

###########################################

Best regards
Timo Seven
blog: http://zauc.wordpress.com
twitter: http://twitter.com/zauc
Linux System Admin  & MySQL DBA





Reply
Tags: file
Messages in this thread
how to ensure like this like puppet://puppet.server/modules/xxx
Similar Threads
PATCH/puppet 1/2] Moved perform_initial_import from Puppet::Resource::TypeCollection to Puppet::Node
This change is part of an ongoing effort to remove functionality from
TypeCollection that is not related to keeping track of a collection of
types.  This reduces TypeCollection's linkage to the environment,
which is a step toward decoupling it from the type loading mechanism.

Also, added a spec test to verify that TypeCollection.version is
correctly recomputed when types are re-imported.

Signed-off-by: Paul Berry <pau### @puppetlabs.com>
---
 lib/puppet/node/environment.rb             |   22 ++++++++++-
 lib/puppet/resource/type_collection.rb     |   18 --------
 spec/integration/parser/compiler_spec.rb   |   11 +++++
 spec/unit/application/apply_spec.rb        |   11 ++---
 spec/unit/application/master_spec.rb       |    9 ++--
 spec/unit/node/environment_spec.rb         |   59
++++++++++++++++++++++++++--
 spec/unit/resource/type_collection_spec.rb |   52 
Re: [PATCH/puppet 1/1] [#4111] Remove special case for "ensure"
On Jul 10, 2010, at 10:08 AM, Markus Roberts wrote:

 After mulling this a while, I think the real issue is that we're
 treating ensure as an attribute-set rather than as an attribute. 
It's
 a magic feature that semantically sets a whole slew of features. 
When
 we say "ensure => present" we really mean "present => true" and
so on:

 "ensure => absent" means "present => false"
 "ensure => 3.2" means "present => true; version => 3.2"
 "ensure => running" means "present => true; running => true"
 "ensure => eatable" means "present => true; toxic => false; 

 palatable => true"

 and so on.  Then all the special casing is on the two-valued
"present"
 attribute instead of trying to figure out what "ensure =>
scrumulous"
 means, we just say that any of the above which set "present =>
false"
 also set all other state attributes to undef, while leaving identity
 attributes (e.g. name, target, provider) unchanged.

This seems like a reasonable conclusion, but how do you plan on  
implementing it?  Actually creating multiple parameters?

How does this change if we treat 'ensure' as a state machine, as we've  
been "planning" on doing for a while?

Isn't it more like certain states or state transitions swamp all other  
out-of-sync parameters and others don't?

I'm not saying you can't figure out how to treat 'ensure' as multiple  
parameters, but I never had much luck in my paltry attempts at it.  In  
fact, the only case where I tried splitting it up -- services, with  
'enable => true' and 'ensure => running' -- is essentially a
usability  
disaster.







PATCH/puppet 1/1] [#4111] Remove special case for "ensure"
If "ensure" changes, then no other changes are logged for that resource.
I'm not sure why this special case is here. If I remove it, like so,
then what happens?

Signed-off-by: Jesse Wolfe <jes### @gmail.com>
---
 lib/puppet/transaction/resource_harness.rb |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/lib/puppet/transaction/resource_harness.rb
b/lib/puppet/transaction/resource_harness.rb
index ae38bcb..7c1d019 100644
--- a/lib/puppet/transaction/resource_harness.rb
+++ b/lib/puppet/transaction/resource_harness.rb
@@ -48,11 +48,10 @@ class Puppet::Transaction::ResourceHarness
 
         if param = resource.parameter(:ensure)
             return [] if absent_and_not_being_created?(current, param)
-            return [Puppet::Transaction::Change.new(param,
current[:ensure])] unless ensure_is_insync?(current, param)
             return [] if ensure_should_be_absent?(current, param)
         end
 
-        resource.properties.reject { |p| p.name == :ensure }.reject do
|param|
+        resource.properties.reject do |param|
             param.should.nil? 
         end.reject do |param|
             param_is_insync?(current, param)






Re: [PATCH/puppet 1/1] [#4111] Remove special case for "ensure"
Not a bug for 2.6, I believe. Perhaps needs-design-decision for later.

On Jul 7, 2010 11:11 AM, "Markus Roberts" <mark### @puppetlabs.com>
wrote:

So does that make #4111 not-a-bug or....?

-- Markus







Puppet-tool modules not working
Hi.

I created a new module using puppet-tool, but Puppet shows following
error when trying to synchronize it:
README.markdown:2: syntax error ======    ^ /var/lib/puppet/lib/puppet/
facter/README.markdown:7: syntax error on site-specific data that just
isn’t available via Facter. The                      ^ /var/lib/puppet/
lib/puppet/facter/README.markdown:7: Invalid char `\342' in
expression /var/lib/puppet/lib/puppet/facter/README.markdown:7:
Invalid char `\200' in expression /var/lib/puppet/lib/puppet/facter/
README.markdown:7: Invalid char `\231' in expression /var/lib/puppet/
lib/puppet/facter/README.markdown:9: syntax error then be distributed
to Puppet clients and are available for use in     ^ /var/lib/puppet/
lib/puppet/facter/README.markdown:13: syntax error /var/lib/puppet/lib/
puppet/facter/README.markdown:14: syntax error `hardware_platform`,
defined like this:                     ^ /var/lib/puppet/lib/puppet/
facter/README.markdown:14: syntax error /var/lib/
Jul  2 08:00:29 localhost puppetd[2893]: Could not load downloaded
file /var/lib/puppet/lib/puppet/parser/functions/README.markdown: /var/
lib/puppet/lib/puppet/parser/functions/README.markdown:2: syntax error
=========    ^ /var/lib/puppet/lib/puppet/parser/functions/
README.markdown:6: syntax error /var/lib/puppet/lib/puppet/parser/
functions/README.markdown:7: syntax error `myfunction`, defined like
this:              ^ /var/lib/puppet/lib/puppet/parser/functions/
README.markdown:7: syntax error /var/lib/puppet/lib/puppet/parser/
functions/README.markdown:13: syntax error     ) do |vals|         ^ /
var/lib/puppet/lib/puppet/parser/functions/README.markdown:17: syntax
error Should be found in `myfunction.rb` in this
directory.                   ^ /var/lib/puppet/lib/puppet/parser/
functions/README.markdown:17: syntax error Should be found in
`myfunction.rb` in this
directory.                                      ^ /var/lib/puppet/lib/
puppet/parser/functions/README.markdown:17: syntax error
Jul  2 08:00:29 localhost puppetd[2893]: Could not load downloaded
file /var/lib/puppet/lib/puppet/provider/README.markdown: /var/lib/
puppet/lib/puppet/provider/README.markdown:2: syntax error
=========    ^ /var/lib/puppet/lib/puppet/provider/README.markdown:7:
syntax error example, a provider `myprovider` for a resource type
`mytype`, defined like this:                    ^ /var/lib/puppet/lib/
puppet/provider/README.markdown:7: syntax error example, a provider
`myprovider` for a resource type `mytype`, defined like
this:                                     ^ /var/lib/puppet/lib/puppet/
provider/README.markdown:7: syntax error example, a provider
`myprovider` for a resource type `mytype`, defined like
this:
^ /var/lib/puppet/lib/puppet/provider/README.markdown:9: syntax error /
var/lib/puppet/lib/puppet/provider/README.markdown:12: syntax error
Jul  2 08:00:29 localhost puppetd[2893]: Could not load downloaded
file /var/lib/puppet/lib/puppet/type/README.markdown: /var/lib/puppet/
lib/puppet/type/README.markdown:2: syntax error ==============    ^ /
var/lib/puppet/lib/puppet/type/README.markdown:4: syntax error Define
resource types in this directory.                         ^ /var/lib/
puppet/lib/puppet/type/README.markdown:6: syntax error /var/lib/puppet/
lib/puppet/type/README.markdown:7: syntax error type `mytype`, defined
like this:                            ^ /var/lib/puppet/lib/puppet/
type/README.markdown:9: syntax error /var/lib/puppet/lib/puppet/type/
README.markdown:12: syntax error

Any idea?

Regards.





A lens for mucking with puppet content / modules
Hi All,

I had a thought - while I was saying that I would like for all my
modules to be 'taged' x - does augeas have a lens that would allow me
to say.

Use CASE:

If I have comments where I have 'tagged' my modules, could I loop
though, look at the comments, if I find <pattern>, add the label to
the class.

More generally, this may lead to thoughts of introspection, puppet
content to make puppet content or 'relative' puppet code/content.

Just a thought,

Aaron





PATCH/puppet 1/1] [#4264] Fix failing specs run as root due to missing puppet group
These specs 'use' some settings which create directories belonging
to the 'service' user/group. If the default service group doesn't
exist, these fail. This patch explicitly sets the service group to
the gid of the process, which is known to be accessible by the user.

Signed-off-by: Nick Lewis <ni### @puppetlabs.com>
---
 .../indirector/bucket_file/rest_spec.rb            |    1 +
 .../indirector/certificate/rest_spec.rb            |    1 +
 .../indirector/certificate_request/rest_spec.rb    |    1 +
 .../certificate_revocation_list/rest_spec.rb       |    1 +
 spec/integration/indirector/report/rest_spec.rb    |    1 +
 spec/integration/indirector/rest_spec.rb           |    1 +
 spec/integration/network/server/webrick_spec.rb    |    1 +
 spec/integration/ssl/certificate_authority_spec.rb |    1 +
 spec/integration/ssl/certificate_request_spec.rb   |    1 +
 .../ssl/certificate_revocation_list_spec.rb        |    1 +
 spec/integration/ssl/host_spec.rb                  |    1 +
 11 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/spec/integration/indirector/bucket_file/rest_spec.rb
b/spec/integration/indirector/bucket_file/rest_spec.rb
index 4d90a8c..dc10faa 100644
--- a/spec/integration/indirector/bucket_file/rest_spec.rb
+++ b/spec/integration/indirector/bucket_file/rest_spec.rb
@@ -17,6 +17,7 @@ describe "Filebucket REST Terminus" do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git a/spec/integration/indirector/certificate/rest_spec.rb
b/spec/integration/indirector/certificate/rest_spec.rb
index 356a7d3..58aa96c 100755
--- a/spec/integration/indirector/certificate/rest_spec.rb
+++ b/spec/integration/indirector/certificate/rest_spec.rb
@@ -17,6 +17,7 @@ describe "Certificate REST Terminus" do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git a/spec/integration/indirector/certificate_request/rest_spec.rb
b/spec/integration/indirector/certificate_request/rest_spec.rb
index 2c98ef6..c718b78 100755
--- a/spec/integration/indirector/certificate_request/rest_spec.rb
+++ b/spec/integration/indirector/certificate_request/rest_spec.rb
@@ -19,6 +19,7 @@ describe "Certificate Request REST Terminus" do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git
a/spec/integration/indirector/certificate_revocation_list/rest_spec.rb
b/spec/integration/indirector/certificate_revocation_list/rest_spec.rb
index 62a2f80..86f2b01 100755
--- a/spec/integration/indirector/certificate_revocation_list/rest_spec.rb
+++ b/spec/integration/indirector/certificate_revocation_list/rest_spec.rb
@@ -17,6 +17,7 @@ describe "Certificate REST Terminus" do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git a/spec/integration/indirector/report/rest_spec.rb
b/spec/integration/indirector/report/rest_spec.rb
index 089f8fd..fdc2189 100644
--- a/spec/integration/indirector/report/rest_spec.rb
+++ b/spec/integration/indirector/report/rest_spec.rb
@@ -17,6 +17,7 @@ describe "Report REST Terminus" do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git a/spec/integration/indirector/rest_spec.rb
b/spec/integration/indirector/rest_spec.rb
index e904839..14e9e95 100755
--- a/spec/integration/indirector/rest_spec.rb
+++ b/spec/integration/indirector/rest_spec.rb
@@ -39,6 +39,7 @@ describe Puppet::Indirector::REST do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
     Puppet.settings[:server] = "127.0.0.1"
     Puppet.settings[:masterport] = "34343"
 
diff --git a/spec/integration/network/server/webrick_spec.rb
b/spec/integration/network/server/webrick_spec.rb
index 2809df7..2b14dfb 100755
--- a/spec/integration/network/server/webrick_spec.rb
+++ b/spec/integration/network/server/webrick_spec.rb
@@ -18,6 +18,7 @@ describe Puppet::Network::Server do
 
       Puppet.settings[:confdir] = @dir
       Puppet.settings[:vardir] = @dir
+      Puppet.settings[:group] = Process.gid
 
       Puppet::SSL::Host.ca_location = :local
 
diff --git a/spec/integration/ssl/certificate_authority_spec.rb
b/spec/integration/ssl/certificate_authority_spec.rb
index be82b5f..fca17b4 100755
--- a/spec/integration/ssl/certificate_authority_spec.rb
+++ b/spec/integration/ssl/certificate_authority_spec.rb
@@ -17,6 +17,7 @@ describe Puppet::SSL::CertificateAuthority do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
 
     Puppet::SSL::Host.ca_location = :local
     @ca = Puppet::SSL::CertificateAuthority.new
diff --git a/spec/integration/ssl/certificate_request_spec.rb
b/spec/integration/ssl/certificate_request_spec.rb
index 365ecce..8426b9d 100755
--- a/spec/integration/ssl/certificate_request_spec.rb
+++ b/spec/integration/ssl/certificate_request_spec.rb
@@ -21,6 +21,7 @@ describe Puppet::SSL::CertificateRequest do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
 
     Puppet::SSL::Host.ca_location = :none
 
diff --git a/spec/integration/ssl/certificate_revocation_list_spec.rb
b/spec/integration/ssl/certificate_revocation_list_spec.rb
index 127654c..44eee36 100755
--- a/spec/integration/ssl/certificate_revocation_list_spec.rb
+++ b/spec/integration/ssl/certificate_revocation_list_spec.rb
@@ -17,6 +17,7 @@ describe Puppet::SSL::CertificateRevocationList do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
 
     Puppet::SSL::Host.ca_location = :local
   end
diff --git a/spec/integration/ssl/host_spec.rb
b/spec/integration/ssl/host_spec.rb
index 9b4152e..05862df 100755
--- a/spec/integration/ssl/host_spec.rb
+++ b/spec/integration/ssl/host_spec.rb
@@ -17,6 +17,7 @@ describe Puppet::SSL::Host do
 
     Puppet.settings[:confdir] = @dir
     Puppet.settings[:vardir] = @dir
+    Puppet.settings[:group] = Process.gid
 
     Puppet::SSL::Host.ca_location = :local
 






PATCH/puppet 1/1] [#4467] Make Puppet Master respect facts_terminus settings
* Remove hard-coded facts terminus in master
* Change facts_terminus default to 'yaml' for master and 'facter' for
  everything else.

Paired-with: Matt Robinson <ma### @puppetlabs.com>
Signed-off-by: Rein Henrichs <re### @puppetlabs.com>
---
 lib/puppet/application/master.rb       |    3 ---
 lib/puppet/defaults.rb                 |    2 +-
 spec/unit/indirector/node/ldap_spec.rb |    4 ----
 spec/unit/node/facts_spec.rb           |   15 +++++++++++++--
 4 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/lib/puppet/application/master.rb
b/lib/puppet/application/master.rb
index 777a50e..fde4749 100644
--- a/lib/puppet/application/master.rb
+++ b/lib/puppet/application/master.rb
@@ -138,9 +138,6 @@ class Puppet::Application::Master <
Puppet::Application
 
     Puppet.settings.use :main, :master, :ssl
 
-    # A temporary solution, to at least make the master work for now.
-    Puppet::Node::Facts.terminus_class = :yaml
-
     # Cache our nodes in yaml.  Currently not configurable.
     Puppet::Node.cache_class = :yaml
 
diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb
index 84e2d93..3c79439 100644
--- a/lib/puppet/defaults.rb
+++ b/lib/puppet/defaults.rb
@@ -115,7 +115,7 @@ module Puppet
     :node_terminus => ["plain", "Where to find information about
nodes."],
     :catalog_terminus => ["compiler", "Where to get node catalogs. 
This is useful to change if, for instance,
       you'd like to pre-compile catalogs and store them in memcached or
some other easily-accessed store."],
-    :facts_terminus => ["facter", "Where to get node facts."],
+    :facts_terminus => [Puppet.application_name.to_s == "master" ?
'yaml' : 'facter', "The node facts terminus."],
     :httplog => { :default => "$logdir/http.log",
       :owner => "root",
       :mode => 0640,
diff --git a/spec/unit/indirector/node/ldap_spec.rb
b/spec/unit/indirector/node/ldap_spec.rb
index f9c5efa..a5f14fc 100755
--- a/spec/unit/indirector/node/ldap_spec.rb
+++ b/spec/unit/indirector/node/ldap_spec.rb
@@ -5,10 +5,6 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 require 'puppet/indirector/node/ldap'
 
 describe Puppet::Node::Ldap do
-  before do
-    Puppet::Node::Facts.stubs(:terminus_class).returns :yaml
-  end
-
   describe "when searching for a single node" do
     before :each do
       @searcher = Puppet::Node::Ldap.new
diff --git a/spec/unit/node/facts_spec.rb b/spec/unit/node/facts_spec.rb
index a2f4ab9..394db79 100755
--- a/spec/unit/node/facts_spec.rb
+++ b/spec/unit/node/facts_spec.rb
@@ -88,9 +88,20 @@ describe Puppet::Node::Facts, "when indirecting" do
       @facts.save
     end
 
-    it "should default to the 'facter' terminus" do
-      Puppet::Node::Facts.indirection.terminus_class.should == :facter
+    describe "when the Puppet application is 'master'" do
+      it "should default to the 'yaml' terminus" do
+        pending "Cannot test the behavior of defaults in defaults.rb"
+        # Puppet::Node::Facts.indirection.terminus_class.should == :yaml
+      end
     end
+
+    describe "when the Puppet application is not 'master'" do
+      it "should default to the 'facter' terminus" do
+        pending "Cannot test the behavior of defaults in defaults.rb"
+        # Puppet::Node::Facts.indirection.terminus_class.should ==
:facter
+      end
+    end
+
   end
 
   describe "when storing and retrieving" do






PATCH/puppet 1/1] [#4397]+[#4344] Move type-name resolution out of Puppet::Resource into the AST re
Move type-name resolution out of Puppet::Resource into the AST resources.
Move find_resource_type out of Puppet::Resource into Scope
Thus, never pass unqualified type names to Puppet::Resource objects.
Thus, Puppet::Resource objects don't need the namespace property,
and Puppet::Resource objects never consult the harddrive to look for
.pp files that might contain their type definitions,
Thus, performance is improved.

Also removes the temporary fix for #4257 that caused #4397
(The code was too eager to look for a class in the topscope)

Paired-With: Paul Berry <pa### @puppetlabs.com>
Signed-off-by: Jesse Wolfe <jes### @gmail.com>
---
 lib/puppet/parser/ast/resource.rb               |    6 +-
 lib/puppet/parser/ast/resource_reference.rb     |   25 ++++-
 lib/puppet/parser/resource.rb                   |    6 +-
 lib/puppet/parser/scope.rb                      |   14 +++
 lib/puppet/resource.rb                          |  128 +++
Puppet Standalone Client + Fileserving, not working.... (+ nice tutorial for puppet stand-alone) :)
Puppet local fileserving not working, as  described here:

http://docs.reductivelabs.com/guides/modules.html

I've made a project to demonstrate this:
https://mindre### @github.com/mindr...alone_testing.git

There is more in the README...(http://github.com/mindreframer/
puppet_stand_alone_testing/blob/master/Readme.md)

Would be nice to get this working, it seems wasteful the rewrite the
modules only for stand-alone usage...

Thx!





Re: [Puppet-commit] [SCM] Puppet - System Automation branch, 2.6.x, updated. 2.6.1rc2
Holy cow that's a lot of work.  Well done.

On Aug 11, 2010, at 10:41 PM, git version control wrote:

 This is an automated email from the git hooks/post-receive script.  
 It was
 generated because a ref change was pushed to the repository
containing
 the project "Puppet - System Automation".

 The branch, 2.6.x has been updated
       via  0aa27b5cc5df818e3878601e83f83a20590e161a (commit)
       via  252c9b84f79307e5caa50b50e093ad493993622d (commit)
       via  1157e8dbaf310cca6f56dda3fa9f100b458662ee (commit)
       via  fef8800acaddd54659602b65bd9fdc728d187c67 (commit)
       via  79e0a2e5c9e2f654c0f7ed37e1bf3342a54e4525 (commit)
       via  62435e551b3118b1663c67d66a9cae9f52607bc7 (commit)
       via  e4b2aa6e48af43e83e6954d9253ef9b38d8c36ae (commit)
       via  8ddea2afba170a3d3e1e2917a049dfa01ad3d8a7 (commit)
       via  f43e87bb638b30608e1773a9afb48a8639feb3cd (commit)
       via  a23d80aebabf981a34fcca5c8bd2aa5f44ea832d (commit)
       via  8e31b528e139a2940d6932ab80375bb5eebfbe29 (commit)
       via  037bb329f090ce86227fc62b51d081831fa9de03 (commit)
       via  0e4bc62716a37cc82a8a5dbb5865ac7f45cf71b2 (commit)
       via  3a6ca54a6e8ad353f207bc85433d1204b5ca48bc (commit)
       via  d909827942fa571bea202818c92d081e7957a574 (commit)
       via  47005aa20199455e8cea7679b0c40efbebe473e4 (commit)
       via  6aac8f0185db1d153583230de726c30ce949fc78 (commit)
       via  1cba9a7a713261fd62ceec440a3e57667eb103ba (commit)
       via  1dfd2b6ba30f7a4c06688e18d0d6cd73a2e45d91 (commit)
       via  be2b1f360fc15596098280265e6aa76e8043eb92 (commit)
       via  03808fdc05c4660c1559cf8a09be80664096e0ad (commit)
       via  539b57c1f119be60c774db183dcaec37b1fd5cd5 (commit)
       via  1faebdd7b54a55b023f151976644dbc3405c486b (commit)
       via  37568bdd3f8cc3514eb9d0bf0eae3302686bc13d (commit)
       via  449315a2c705df2396852462a1d1e14774b9f117 (commit)
       via  daa801b9ff8c81e6812a08a3f6ef82f593248e9d (commit)
       via  00ebf01227745edc84084d10a9d8be7439551b0f (commit)
       via  e32320ee2c65275e3c695c555f506a499209efa1 (commit)
       via  0f9672a545ac057282b9add87ee602e3200d11de (commit)
       via  f54d843e4e585274f724c97f1b10288d8798a63b (commit)
       via  2c21faec04f0029bfef381dfa4341a916ee28967 (commit)
       via  83c2419771de45317e4bf79e7f71469d9a19a09a (commit)
       via  8237f686c53e8d1e45097c65c7d50b84ca83bb39 (commit)
      from  d5ad0fbd44aa45f38b399b0f3da6b59833fc74db (commit)








PATCH/puppet] [#4219] Install misses command_line dir, puppet $app --help fails
---
 install.rb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/install.rb b/install.rb
index d35aaa0..b06ec09 100755
--- a/install.rb
+++ b/install.rb
@@ -84,7 +84,7 @@ bins  = glob(%w{bin/*})
 rdoc  = glob(%w{bin/* sbin/* lib/**/*.rb README README-library CHANGELOG
TODO Install}).reject { |e| e=~ /\.(bat|cmd)$/ }
 ri    = glob(%w{bin/*.rb sbin/* lib/**/*.rb}).reject { |e| e=~
/\.(bat|cmd)$/ }
 man   = glob(%w{man/man[0-9]/*})
-libs  = glob(%w{lib/**/*.rb lib/**/*.py})
+libs  = glob(%w{lib/**/*.rb lib/**/*.py lib/puppet/util/command_line/*})
 tests = glob(%w{test/**/*.rb})
 
 def do_bins(bins, target, strip = 's?bin/')








Could not retrieve information from source(s) puppet://puppet/plugins error message
Hi.

After I upgraded to latest puppet, I started receiving this message
both in clients and in master.

Following the advice below, i create an empty stub module, with empty
"lib" directory:
http://projects.puppetlabs.com/issues/2244


Any idea if this is a clean solution, or there is another, better fix?

Regards.





unique behavior on puppet agent running on puppet master node
(reposted from irc)

Having just upgraded to 2.6, I am seeing different behavior between
the agent running on the master node and the rest of the agents.

Most importantly, it complains about "warning: You cannot collect
without storeconfigs being set" even though storeconfigs=true in the
[master] section of puppet.conf

Less important, but still curious: the logging is quite different,
including lots of "info: Automatically imported <blah>" lines).

my puppet.conf: http://pastebin.com/nLZu9zrf

~jon





PATCH/puppet 2/3] Moved perform_initial_import and version from Puppet::Resource::TypeCollection to
This change is part of an ongoing effort to remove functionality from
TypeCollection that is not related to keeping track of a collection of
types.  This reduces TypeCollection's linkage to the environment,
which is a step toward decoupling it from the type loading mechanism.

Signed-off-by: Paul Berry <pau### @puppetlabs.com>
---
 lib/puppet/node/environment.rb             |   36 +++++++++++-
 lib/puppet/parser/compiler.rb              |    2 +-
 lib/puppet/parser/parser_support.rb        |    2 +-
 lib/puppet/resource/type_collection.rb     |   32 
PATCH/puppet 1/3] [#4472]+[#4483] Moved type-name resolution out of Puppet::Parser::TypeLoader.
Moved type-name resolution out of Puppet::Parser::TypeLoader, and into
its primary client, Puppet::Resource::TypeCollection.  TypeCollection
now always passes fully qualified type names to TypeLoader.

This avoids duplicate type-name resolution logic between TypeLoader
and TypeCollection.  That in turn fixes bug 4472, which resulted
from flaws in the type-name resolution logic in TypeLoader.

In addition, it fixes bug 4483, which resulted from improper
interleaving between looking up names using the TypeCollection and the
TypeLoader.

Signed-off-by: Paul Berry <pa### @puppetlabs.com>
---
 lib/puppet/parser/parser_support.rb        |    4 +-
 lib/puppet/parser/type_loader.rb           |   66 ++++++++
Re: [PATCH/puppet 1/3] [#4472]+[#4483] Moved type-name resolution out of Puppet::Parser::TypeLoader
+1 (as a partial pairing partner)

On Thu, Aug 12, 2010 at 2:10 PM, Paul Berry <pa### @puppetlabs.com>
wrote:

 Moved type-name resolution out of Puppet::Parser::TypeLoader, and
into
 its primary client, Puppet::Resource::TypeCollection.  TypeCollection
 now always passes fully qualified type names to TypeLoader.

 This avoids duplicate type-name resolution logic between TypeLoader
 and TypeCollection.  That in turn fixes bug 4472, which resulted
 from flaws in the type-name resolution logic in TypeLoader.

 In addition, it fixes bug 4483, which resulted from improper
 interleaving between looking up names using the TypeCollection and
the
 TypeLoader.

 Signed-off-by: Paul Berry <pa### @puppetlabs.com>
 ---
  lib/puppet/parser/parser_support.rb        |    4 +-
  lib/puppet/parser/type_loader.rb           |   66 ++++++++
PATCH/puppet 1/1] added md5 support as requested in http://serverfault.com/questions/166199/puppet-
From: Alice Kærast <kaer### @newscloud.com>


Signed-off-by: James Turnbull <ja### @lovedthanlost.net>
---
 lib/puppet/parser/functions/md5.rb |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
 create mode 100644 lib/puppet/parser/functions/md5.rb

diff --git a/lib/puppet/parser/functions/md5.rb
b/lib/puppet/parser/functions/md5.rb
new file mode 100644
index 0000000..f7a4f72
--- /dev/null
+++ b/lib/puppet/parser/functions/md5.rb
@@ -0,0 +1,5 @@
+Puppet::Parser::Functions::newfunction(:md5, :type => :rvalue, :doc
=> "Returns a MD5 hash value from a provided string.") do |args|
+      require 'md5'
+
+      Digest::MD5.hexdigest(args[0])
+end






PATCH/puppet 1/1] [#4247] storeconfigs was calling Puppet::Parser::Resource.new with the wrong argu
When the interface to Puppet::Resource changed, its subclass
Puppet::Parser::Resource was also affected. One case of initializing
those objects did not get updated when the code changed, causing
storeconfigs to break.

Also, this patch adds a error message that would have made it easier to
catch this problem (as puppet could consume all memory and die trying to
print the old error message)

Signed-off-by: Jesse Wolfe <jes5### @gmail.com>
---
 lib/puppet/rails/resource.rb     |    6 +++---
 lib/puppet/resource.rb           |    3 +++
 spec/unit/rails/resource_spec.rb |   16 ++++++++++++++++
 spec/unit/resource_spec.rb       |    6 ++++++
 4 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/lib/puppet/rails/resource.rb b/lib/puppet/rails/resource.rb
index a5cdd0c..cac9de2 100644
--- a/lib/puppet/rails/resource.rb
+++ b/lib/puppet/rails/resource.rb
@@ -212,16 +212,16 @@ class Puppet::Rails::Resource <
ActiveRecord::Base
     end
     hash[:scope] = scope
     hash[:source] = scope.source
-    hash[:params] = []
+    hash[:parameters] = []
     names = []
     self.param_names.each do |pname|
       # We can get the same name multiple times because of how the
       # db layout works.
       next if names.include?(pname.name)
       names << pname.name
-      hash[:params] << pname.to_resourceparam(self, scope.source)
+      hash[:parameters] << pname.to_resourceparam(self,
scope.source)
     end
-    obj = Puppet::Parser::Resource.new(hash)
+    obj = Puppet::Parser::Resource.new(hash["type"], hash["title"], hash)
 
     # Store the ID, so we can check if we're re-collecting the same
resource.
     obj.rails_id = self.id
diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb
index 31237e3..d68e0ee 100644
--- a/lib/puppet/resource.rb
+++ b/lib/puppet/resource.rb
@@ -409,6 +409,9 @@ class Puppet::Resource
     if    (argtitle || argtype) =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1,    
            $2            ]
     elsif argtitle                                         then [
argtype,            argtitle      ]
     elsif argtype.is_a?(Puppet::Type)                      then [
argtype.class.name, argtype.title ]
+    elsif argtype.is_a?(Hash)                              then
+      raise ArgumentError, "Puppet::Resource.new does not take a hash as
the first argument. "+
+        "Did you mean (#{(argtype[:type] || argtype["type"]).inspect},
#{(argtype[:title] || argtype["title"]).inspect }) ?"
     else raise ArgumentError, "No title provided and #{argtype.inspect}
is not a valid resource reference"
     end
   end
diff --git a/spec/unit/rails/resource_spec.rb
b/spec/unit/rails/resource_spec.rb
index ac74693..08deda6 100755
--- a/spec/unit/rails/resource_spec.rb
+++ b/spec/unit/rails/resource_spec.rb
@@ -104,4 +104,20 @@ describe "Puppet::Rails::Resource" do
       @resource.merge_parameters(merge_resource)
     end
   end
+
+  describe "#to_resource" do
+    it "should instantiate a Puppet::Parser::Resource" do
+      scope = stub "scope", :source => nil
+
+      @resource = Puppet::Rails::Resource.new
+      @resource.stubs(:attributes).returns({
+        "restype" => 'notify',
+        "title"   => 'hello'
+      })
+      @resource.stubs(:param_names).returns([])
+
+      @resource.to_resource(scope).should be_a(Puppet::Parser::Resource)
+
+    end
+  end
 end
diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb
index 95f0dd0..204a2b0 100755
--- a/spec/unit/resource_spec.rb
+++ b/spec/unit/resource_spec.rb
@@ -98,6 +98,12 @@ describe Puppet::Resource do
     lambda { Puppet::Resource.new("foo") }.should
raise_error(ArgumentError)
   end
 
+  it "should fail if the title is a hash and the type is not a valid
resource reference string" do
+    lambda { Puppet::Resource.new({:type => "foo", :title =>
"bar"}) }.should raise_error(ArgumentError,
+      'Puppet::Resource.new does not take a hash as the first argument.
Did you mean ("foo", "bar") ?'
+    )
+  end
+
   it "should be able to produce a backward-compatible reference array" do
     Puppet::Resource.new("foobar", "/f").to_trans_ref.should == %w{Foobar
/f}
   end






PATCH/puppet 1/1] Fix #4348 - Puppet doc single manifest broken
The refactoring of using environment instances instead of strings
for initializing the parser, rdoc wasn't updated, thus was unable
to initialize the parser.

Signed-off-by: Brice Figureau <brice-pupp### @daysofwonder.com>
---
 lib/puppet/util/rdoc.rb     |    2 +-
 spec/unit/util/rdoc_spec.rb |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/lib/puppet/util/rdoc.rb b/lib/puppet/util/rdoc.rb
index 4a80b06..085d8ec 100644
--- a/lib/puppet/util/rdoc.rb
+++ b/lib/puppet/util/rdoc.rb
@@ -41,7 +41,7 @@ module Puppet::Util::RDoc
   def manifestdoc(files)
     Puppet[:ignoreimport] = true
     files.select { |f| FileTest.file?(f) }.each do |f|
-      parser = Puppet::Parser::Parser.new(:environment =>
Puppet[:environment])
+      parser =
Puppet::Parser::Parser.new(Puppet::Node::Environment.new(Puppet[:environment]))
       parser.file = f
       ast = parser.parse
       output(f, ast)
diff --git a/spec/unit/util/rdoc_spec.rb b/spec/unit/util/rdoc_spec.rb
index 65df261..58c2034 100755
--- a/spec/unit/util/rdoc_spec.rb
+++ b/spec/unit/util/rdoc_spec.rb
@@ -75,6 +75,19 @@ describe Puppet::Util::RDoc do
       Puppet::Util::RDoc.manifestdoc([])
     end
 
+    it "should use a parser with the correct environment" do
+      FileTest.stubs(:file?).returns(true)
+      Puppet::Util::RDoc.stubs(:output)
+
+      parser = stub_everything
+      Puppet::Parser::Parser.stubs(:new).with{ |env|
env.is_a?(Puppet::Node::Environment) }.returns(parser)
+
+      parser.expects(:file=).with("file")
+      parser.expects(:parse)
+
+      Puppet::Util::RDoc.manifestdoc(["file"])
+    end
+
     it "should puppet parse all given files" do
       FileTest.stubs(:file?).returns(true)
       Puppet::Util::RDoc.stubs(:output)