Issue #1389 has been updated by Magnus Leuthner.

Affected version changed from 0.24.8 to 0.25.4

Luke Kanies wrote:
> Can you give some more information on this?
> 
> I do this in testing pretty frequently and I've never had problems.

I can confirm that this issue still persists as described originally by Mathieu 
in version 0.25.4. We are currently investigating a switch from file-based to 
LDAP based node configuration and are seeing the same error ("Could not find 
default node...") unless no nodes are loaded through site.pp. Custom debug 
messages indicate that puppetmasterd does indeed find the LDAP nodes (and it's 
bases).

As I understand the code, Puppet::Parser::Compiler.evaluate_ast_node only skips 
the check if there are no ast_nodes found (using self.ast_nodes? which returns 
parser.nodes?). I guess replacing the line

    return unless ast_nodes?

with 

    return if not ast_nodes? or Puppet[:node_terminus] == "ldap"

in evaluate_ast_node (parser/compiler.rb) would be a workaround.

----------------------------------------
Bug #1389: puppetmaster completely ignores any found external nodes if any 
nodes are found in manifests first.
http://projects.puppetlabs.com/issues/1389

Author: Mathieu Sauve-Frankel
Status: Rejected
Priority: Normal
Assigned to: 
Category: node
Target version: 0.24.5
Patch: None
Affected version: 0.25.4
Keywords: external LDAP node nodes
Branch: 


I discovered this while trying to set up ldap nodes and external node support. 
I had enabled ldap node support, but had failed to remove all of the node 
declarations from my on-disk manifests. 

When I tried to run a node against the pupeptmaster I was receiving messages 
such as: 
<pre>
"Could not find default node or by name with '%s'"
</pre>

This message is found in Puppet::Parser::Compiler::evaluate_ast_node. 

After adding some Puppet.debug statements in indirector/node/ldap.rb and 
indirector/node/exec.rb (I tested both),
I verified that indirector was indeed finding my external nodes, but the 
compiler was ignoring them for some reason. 

Adding Puppet.debugs in evaluate_ast_node allowed me to see the contents of 
@parser.nodes, this is when 
I realized that there was still 1 node being loaded from a local manifest.

After removing this errant node statement both ldap nodes and external nodes 
started behaving as expected.

I think that either more information should be added to the error message, or 
that the parser should be fixed to 
either completely ignore node statements from manifests when node_terminus is 
set to something other than default, 
or that it should be fixed to respect pre 0.23 behaviour that allows nodes to 
be set both locally and externally at the same time.



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to