Issue #7867 has been updated by Daniel Pittman.

I would strongly advocate supporting the entire BMP, or as much of that as was 
reasonable.  The IDN legal characters would be a good start and all.  In the 
interim, until we have sanitized the system to make that safer, limiting text 
is a reasonable trade-off and all.

The argument that the filesystem, or the target database, have *any* influence 
over what characters should be legal in the filename, seems crazy to me.  The 
idea that we should limit our behaviour based on current implementation details 
seems ... strange, at least. :)
----------------------------------------
Bug #7867: node names should work consistently across all supported 
configurations and platforms
https://projects.puppetlabs.com/issues/7867

Author: Jeff McCune
Status: Unreviewed
Priority: Normal
Assignee: 
Category: node
Target version: 
Affected Puppet version: 
Keywords: node name node_name posix nodename definition 
Branch: 


# Overview #

Currently different values for a node's name are not consistently allowed or 
disallowed by Puppet.  For example, a node name of foo::bar will work when 
using an ENC on a POSIX filesystem, but will not work if the user is running 
Puppet on an NTFS filesystem.   Furthermore, this node name won't work if node 
definitions are being used, e.g:

<pre>
node foo::bar {
  # syntax error
}
</pre>

# Expected Behavior #

In order to support effective communication and documentation for the end user 
node names should be consistently valid regardless of the configuration or 
platform Puppet is running on.  As an user, I expect that I can switch from an 
ENC to node definitions or from ext3 to NTFS and my system will still function.

# Actual Behavior #

Node names that are valid in some configurations will throw cryptic and 
difficult to diagnose errors.  For example, node foo::bar { } will throw a 
parse error when used with node definitions and will throw a "could not write 
file" (or similar) error when used with NTFS.

# Suggested Fix #

The following implementation is only a suggestion.  Any implementation that can 
be consistently used across all supported configurations of Puppet would be 
considered a valid fix to this bug.

Please keep in mind the node_name value is used as a primary key when 
interfacing with third party systems.  In this way, the solution should also 
avoid limiting the number of third party systems Puppet can communicate with.  
For example, a node name that is supported and could not be URL encoded would 
make it difficult to interface with a REST API.

The current suggestion is to support some hybrid of POSIX "Fully portable 
filenames" and RFC 1034 section 3.5 hostnames as valid node names  
[http://en.wikipedia.org/wiki/Filename](http://en.wikipedia.org/wiki/Filename)

These are: A–Za–z0–9._- where a hyphen must not be first character.



-- 
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