3.4.0 is a backward-compatible feature and fix release in the Puppet 3 series. The main foci of this release are:
Puppet 3.4.0-rc1 Downloads
------------------------------------------
Source:
https://downloads.puppetlabs.com/puppet/puppet-3.4.0-rc1.tar.gz
Available in native package format in the pre-release repositories at:
http://yum.puppetlabs.com and
http://apt.puppetlabs.com
For information on how to enable the Puppet Labs pre-release repos, see:
http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#enabling-the-prerelease-repos
Gems are available via rubygems at
https://rubygems.org/downloads/puppet-3.4.0-rc1.gem or by using `gem install --pre puppet`
Mac packages are available at
https://downloads.puppetlabs.com/mac/puppet-3.4.0-rc1.dmgWindows packages are available at
https://downloads.puppetlabs.com/windows/puppet-3.4.0-rc1.msi
Please report feedback via the Puppet Labs Redmine site, using an
affected puppet version of 3.4.0-rc1:
https://projects.puppetlabs.com/projects/puppet/
Puppet 3.4.0-rc1 release notes
---------------------------------------------------
New contain Function Removes Need for “Anchor Pattern”Puppet now includes
a contain function to allow classes to contain other classes. It functions similarly to the include function, with the added effect of creating a containment relationship. For more information, see:
(
Issue 8040)
Policy-Based Certificate AutosigningPuppet can now use site-specific logic to decide which certificate signing requests (CSRs) should be autosigned. This feature is based on custom executables, which can examine each CSR as it arrives and use any decision-making criteria you choose.
Prior to 3.4, Puppet would accept a whitelist of nodes whose requests should be autosigned. This wasn’t very flexible, and didn’t allow things like using a preshared key to verify the legitimacy of a node. This is now very possible, and works especially well when combined with the next new feature (custom CSR attributes).
For details, see:
(
Issue 7244)
Custom Data in CSRs and Certificates
It is now possible for puppet agent nodes to insert arbitrary data into their certificate signing requests (CSRs). This data can be used as verification for policy-based autosigning (see above), and may have more applications in the future.
Two kinds of custom data are available: “custom attributes,” which are discarded once the certificate is signed, and “certificate extensions,” which persist in the signed certificate.
For details on custom CSR data, see:
(
Issue 7243)
Priority Level Can Be Set for Puppet ProcessesPuppet’s processes, including puppet agent and puppet apply, can now lower or raise their own priority level using
the priority setting. (Note that they can’t raise their priority unless they are running as a privileged user.)
This is especially useful for making sure resource-intensive Puppet runs don’t interfere with a machine’s real duties.
(
Issue 21241)
Manifest Documentation (RDoc/Puppetdoc) Works on Ruby 1.9+
Puppet manifests can be documented with RDoc-formatted text in comments above each class or defined type, and you can run puppet doc --outputdir /tmp/rdoc to extract that documentation and generate HTML with it. However, this has never worked when running Puppet under Ruby 1.9 or higher.
As of this release, building documentation sites with puppet doc works under Ruby 1.9 and 2.0.
Note that any existing problems with the puppet doc command still apply — it sometimes skips certain classes with no clear reason, and there are various formatting glitches. We are still investigating more reliable and convenient ways to display Puppet code documentation, and will probably be using Geppetto as a foundation for future efforts.
(
Issue 22180)
New $trusted Hash With Trusted Node DataA node’s certificate name is available to the Puppet compiler in the special $clientcert variable. However, this variable was self-reported by the agent and was never verified by the puppet master, which meant it could contain more or less anything and couldn’t be trusted when deciding whether to insert sensitive information into the catalog.
As of 3.4, you can configure the puppet master to verify each agent node’s certname and make it available to the compiler as $trusted['certname']. To do this, you must set the trusted_node_data setting totrue in the master’s puppet.conf.
See the language documentation about special variables for more details.
(
Issue 19514)
File Resources Can Opt Out of Source PermissionsTraditionally, if file resources did not have the owner, group, and/or mode permissions explicitly specified and were using a source file, they would set the permissions on the target system to match those of thesource. This could cause weirdness on Windows systems being managed by a Linux puppet master, and wasn’t always desired in all-*nix environments either.
Now, you can opt out of source permissions using
the file type’s source_permissions attribute. This can be done per-resource, or globally with a
resource default in site.pp.
As part of this, the current default behavior (source_permissions => use) is now deprecated on Windows; the default for Windows is expected to change to ignore in Puppet 4.0.
(
Issue 5240,
Issue 18931)
Windows ImprovementsPuppet’s Windows support continues to get better, with improvements to resource types and packaging.
File Type Improvements
Package Type Improvements
Group Type Improvements
- You can now add domain users to the local Administrators group. (Issue 17031)
Exec Type Improvements
- Puppet will now accurately capture exit codes from exec resources on Windows. (Previously, exit codes higher than 255 could get truncated.) (Issue 23124)
Packaging and Installer Improvements
New puppet cert reinventory CommandAs part of the fix for issue
693/
23074, the Puppet CA no longer rebuilds the certificate inventory for each new certificate.
However, rebuilding the inventory can still be helpful, generally when you have a large inventory file with a high percentage of old revoked certificates. When necessary, it can now be done manually by running puppet cert reinventory when your puppet master is stopped.
(
Issue 23074)
RPM Package Provider Now Supports install_optionsPackage resources using the rpm package provider can now specify command-line flags to pass to the RPM binary. This is generally useful for specifying a --prefix, or for overriding macros like arch.
(
Issue 22642)
HTTP API DocumentationPuppet’s HTTP API endpoints now have extensive documentation for the formatting of their requests and the objects they return. For version-specific endpoint documentation, see
the HTTP API section of the developer docs.
Msgpack Serialization (Experimental)Puppet agents and masters can now optionally use
Msgpack for all communications. This is an experimental feature and is disabled by default; see
the Msgpack experiment page for details about it.
(
Issue 22849)
Changes to Experimental Future ParserSeveral changes were made to
the experimental lambda and iteration support included in the future parser. The documentation has been updated to reflect the changes; see the “Experimental Features” section in the navigation sidebar to the left.
- Remove alternative lambda syntaxes (Issue 22962)
- Remove “foreach” function (Issue 22784)
- Fix mixed naming of map/collect - reduce (Issue 22785)
- Remove the iterative ‘reject’ function (Issue 22729)
- Iterative function ‘select’ should be renamed to ‘filter’ (Issue 22792)
- Future parser lexer does not handle all kinds of interpolated expressions (Issue 22593)
- Variable names with uppercase letters are not allowed (Issue 22442)
Preparations for Syncing External FactsPuppet can now pluginsync
external facts to agent nodes… but it’s not very useful yet, since Facter can’t yetload those facts. End-to-end support is coming next quarter, in Facter 2.0.
(
Issue 9546)
Miscellaneous Improvements- Allow profiling on puppet apply. Previously, the profiling features added for Puppet 3.2 were only available to puppet agent; now, puppet apply can log profiling information when run with --profileor profile = true in puppet.conf. (Issue 22581)
- Mount resources now autorequire parent mounts. (Issue 22665)
- Class main now appears in containment paths in reports. Previously, it was represented by an empty string, which could be confusing. This is mostly useful for PuppetDB. (Issue 23131)
- Puppet::Util.execute now offers a way to get the exit status of the command — the object it returns, which was previously a String containing the command’s output, is now a subclass of String with an#exitstatus method that returns the exit status. This can be useful for type and provider developers. (Issue 2538)
Bug FixesFixed Race Condition in Certificate Serial NumbersAs part of improving certificate autosigning for elastic cloud environments, we found a series of bugs involving the certificate inventory — when too many certificates were being signed at once (impossible in manual signing, but easy when testing autosigning at large scales), the CA might assign a serial number to a node, start rebuilding the inventory, then assign the same number to another node (if it came in before the rebuild was finished).
This is now fixed, and the cert inventory is handled more safely. To accomodate the need to occasionally rebuild the inventory, a puppet cert reinventory command was added (see above).
(
Issue 693,
Issue 23074)
Cached Catalogs Work AgainThis was a regression from Puppet 3.0.0, as an unintended consequence of making the ENC authoritative for node environments. In many cases (generally when agents couldn’t reach the puppet master), it broke puppet agent’s ability to use cached catalogs when it failed to retrieve one. The issue is now fixed, and agents will obey
the usecacheonfailure setting.
(
Issue 22925)
Hiera Bugs- Errors from automatic class parameter lookups were not clearly indicating that Hiera was the source of the problem. This was made more informative. (Issue 19955)
- Automatic class parameter lookups weren’t setting the special calling_module / calling_classvariables. This has been fixed. (Issue 21198)
Misc Bug FixesThe usual grab bag of clean-ups and fixes. As of 3.4.0, Puppet will:
- Manage the vardir’s owner and group. This could sometimes cause the puppet master or CA tools to fail, if the ownership of the vardir got messed up.
- Don’t overaggressively use resource-like class evaluation for ENCs that assign classes with the hash syntax. ENCs can use two methods for assigning classes to nodes, one of which allows class parameters to be specified. If class parameters ARE specified, the class has to be evaluated like a resource to prevent parameter conflicts, but Puppet was being a little overeager and wasn’t checking whether parameters were actually present. (Issue 23096)
- Make Puppet init scripts report run status correctly even if they aren’t configured to start. If the puppet master init script was configured to never run and a Puppet manifest was also ensuring the service was stopped, this could cause Puppet to try to stop the service every single run. (Issue 23033)
- Skip module metadata that cannot be parsed. This could cause the puppet master to fail catalog serving if a module with bad metadata was installed. (Issue 22818, Issue 20728, Issue 15856)
- Use FFI native windows root certs code. This cleaned up some potential puppet agent crashes on Windows by using the Win32 APIs better. (Issue 23183)
- Guard against duplicate Windows root certs. This could cause unnecessary run failures. (Issue 21817)
- Make Debian user/group resources report their proper containment path. This was causing Puppet events from Debian to show in Puppet Enterprise’s event inspector as “unclassified.” (Issue 22943)
- Fix race condition in filebucket. This one was causing unnecessary run failures when multiple nodes were trying to write to a puppet master’s filebucket. (Issue 22918)
- Force encoding of user comment values to ASCII-8BIT. This could cause run failures under Ruby 1.9 and higher when user resources were present. (Issue 22703)
- Don’t serialize transient vars in Puppet::Resource. This was causing Puppet to write YAML data that couldn’t be deserialized by other tools. (Issue 4506)
- Validate the name attribute for package resources to disallow arrays. This was causing inconsistent behavior between dpkg and the other package providers. (Issue 22557)
- Use the most preferred supported serialization format over HTTP. Puppet had been choosing a format at random whenever there were multiple acceptable formats. (Issue 22891)
- Set value_collection for boolean params. This was causing boolean resource attributes to display badly in the type reference. https://projects.puppetlabs.com/search?q=22699
All 3.4.0 Changes
Puppet 3.4.0-rc1 Contributors
---------------------------------------------------
Adrien Thebo, Andrew Parker, Ashley Penney, Branan Purvine-Riley, Clay Caviness, Daniele Sluijters, Dominic Cleal, Don Law, Dustin J. Mitchell, Eric Badger, Eric Williamson, Erica Thatcher, Erik Dalén, Ethan J. Brown, Greg Sutcliffe, Henrik Lindberg, Iristyle, Jason Antman, Jasper Lievisse Adriaanse, John Julien, John-John Tedro, Josh Cooper, Josh Partlow, Joshua Hoblitt, Justin Stoller, Kylo Ginsberg, Lee Lowder, Ludovic LANGE, Matthaus Owens, Matthew Haughton, Matthew Lauber, Melissa Stone, Moses Mendoza, Nick Fagerlund, Nick Lewis, Patrick Carlisle, Paweł Tomulik, Raphaël Pinson, Rob Braden, Rob Reynolds, Sam, Sam Kottler, Tehmasp Chaudhri, Thomas Bartelmess, Thomas Linkin, Zachary Alex Stern, mihau, pocams, renato arruda
Puppet 3.4.0-rc1 Changelog
---------------------------------------------------
Adrien Thebo (27):
e235446 (maint) Comment clarification, whitespace cleanup.
7aed168 (maint) Force ASCII string encoding in content fixture
d1a0972 (maint) Use non-posix specific types in tests
1afeb90 (#4506) Don't serialize transient vars in Puppet::Resource
6b70d30 (#22665) mounts should autorequire parent mounts
02d3624 (maint) Prefer pson over json for logstash_event
a20ac4e (maint) Use default rspec formatter for Travis CI
780f08b (maint) Don't default `rake spec` to documentation format
f293c47 (maint) Remove unused .testseries file
34cbb7c (doc) Add references to RFCs that deal with CSRs
1314480 (maint) Document Puppet::SSL::CertificateRequest#generate
aad83a8 (maint) Ensure that the autosign setting is validated.
561b67d (#7244) Add autosign_command for programmatic CSR autosigning
05f0475 (maint) stub $CHILD_STATUS for autosign_command specs
263824a (#7243) Allow CSRs to accept a set of custom attributes
7e1f0c0 Define Puppet cert attribute OIDs
0bf900c (#23200) Add method for checking if one OID contains another
620c838 (#23200) allow certificate factory to add custom exts
9034d7f (#23200) Whitelist puppet extension requests
1d9f91a (maint) Remove misleading comment regarding msExtReq
1ba393d (#23201) Allow CSRs to return multiple extension requests
1550026 (#23201) Extract CSR extension_request attr generation
39b90a4 (#23201) allow custom fields to be added to CSR extReq
62f3bdb (#23201) don't assign OIDs when looking up extension requests
5d8364c (#23222) Custom CSR attributes should only contain strings
1f59b06 Pack extension requests in a single sequence
4f1496e Handle malformed CSR attributes and extension requests
Andrew Parker (85):
46c1d56 (Maint) Remove whitespace errors
6238616 (#21201) Remove thread-safety code
e15f722 (#21201) Remove test for thread-safety
bcba48d (#22581) Enable profiling for puppet apply
847f513 (#22581) Add test for apply profiling
d083c6b (Maint) Fix link to the REST API docs
cb2da5d (#22591) Document /env/file_content/*
1aa39ec (#21198) Allow data bindings w/ hiera to get special vars
75ab421 (Maint) Translate acceptance test to integration
2de1e3b (Maint) Remove unused example manifests
075dce2 (Maint) Update commands to use new forms in hiera examples
e207cf4 (doc) Mark some of the Provider API public
d77e0a8 (#22709) Document /<env>/certificate_request/*
9bd7abc (#22652) Parse query strings in rack w/o rack
14c5d3f (Maint) Create spec coverage for parser face
0b43b1d (Maint) Fix indentation
8862739 (#22593) Combine LBRACE handling into single rule
7ed5f91 (#19955) Move error handling closer to hiera
9a5b81b (#19955) Collapse Hiera and DataBindings
4b8214d (#22557) Validate that a package name is a string
b88f12d (#19514) Fix up tests that were not providing a valid Node
4380641 (maint) Fix type and mark as abstract
d9bdc93 (Maint) Only execute msgpack tests if it is present
445551c (#22891) Use the most preferred supported format
6b40f28 (#22910) Deprecate networked access to resource
a122985 (#22910) Deprecate --host on puppet resource
b173ac0 (Maint) Check for `encode` when using `encode`
4e76fea (Maint) Clean up code and tests
8b0a4ec (#22918) Lock the filebucket for updates
e10b652 (Maint) Introduce File abstraction
ece1381 (Maint) Allow File to work on ruby 1.8 and 1.9
2c72ea8 (Maint) Improve readability
1df4848 (Maint) Compare filebucket contents with streams
b818aa0 (Maint) Convert uses of IO.binread to P::FS::File
f75e3a3 (Maint) Deprecate (Puppet::Util|IO).binread
cbc96b5 (Maint) Remove unused required lib
95e9fb6 (Maint) Remove unused task
2f49ff6 (Maint) Record information about who created the artifact
16d83ce (Maint) Small cleanup to CA tests.
b9eaca5 (Maint) Provide a timeout when trying to aquire a file lock
a49fb07 (#693) Test parallel certificate autosigning
ff34898 (#693) Remove race conditions in autosigning code
979ac6f (#693) Remove unused locking code, update timings
b0a8059 (Maint) Move opening functionality to FileSettings
d4b2944 (#693) Update spec tests for change impl
aa5d976 (Maint) Move write and writesub to Setting
e4b3507 (Maint) Update test to use proper class
1590f7f (Maint) Use rand that is available on ruby 1.8.7
0e9ea23 (#693) Format the SSL certificate instead of the wrapper
07d94f3 (Maint) Unpend tests for certs on windows
4c71c9e (Maint) Properly mark test as unsuitable for windows
24187e0 (#693) Update file handling to work on Solaris
0f070ac (Maint) Reformat and remove debugging message
91ff6f9 (#23074) Add reinventory command to puppet cert
6ff0a10 (#23081) Ensure that errors from insync? create proper events
2306072 (Maint) Reorder and reduce scope of harness
3dc7fb5 (Maint) Small cleanups
cabd2f9 (#23074) Do not expect rebuild during cert signing
968c332 (#23086) Ensure that failed_because events have a name
8eef34e (#23109) Document PSON
296aa30 (Maint) Fix broken link to Facts documentation
2122124 (Maint) Group service documentation
b219e01 (#23109) Document the MIME type use for PSON
ea5a8c0 (Maint) Standardize on how we refer to the response format
1b15a6c (Maint) Update Report docs to be like others
bc125b9 (Maint) Reference resource_type schema
67774e7 (Maint) Unify style for refering to schema
985dd4c (#23109) Clarify what control characters are
74ba232 (#23109) Fix typo
c9619e8 (Maint) Fix up errors in json schema
d34dd55 (#23109) Expand example to include all encoding forms
ee355ca (#9546) Update test to reflect changed permissions
c69c5de (#9546) Change check for module installation
2b69cdd (Doc) Mark the Puppet::Util::Execution public methods
849e248 (#23138) Document status
0430388 (Maint) Remove commented out tests
7bb7066 (#23124) Move ProcessOutput to Puppet::Util::Execution
b911860 (Maint) Fixup docs for Puppet::Util::Execution
03ed57b (#23124) Move ProcessOutput to Puppet::Util::Execution
7716251 (Maint) Fixup docs for Puppet::Util::Execution
25962a3 (Maint) Introduce partial implementation of an In-Memory file
cdef0b8 (Maint) Add memory terminii for CR and Key
6c9dd38 (#23116) Provide pluggable SSL verification
ed0c64a (Maint) Remove unstable and not useful test
024e2b8 (Maint) Conform to naming conventions
Ashley Penney (1):
8214f4b (#22818) Skip metadata that cannot be parsed.
Branan Purvine-Riley (1):
90171d1 (#23126) Allow facter and hiera gem locations to be SSH git URLs
Clay Caviness (3):
546c2da
21760/22005 update preflight to delete old lib dir
713e1d6 Use Dir.glob(), don't require rubygems or rake, use Dir.chdir as a block
1d64016 use instance_variable_get instead of eval
Daniele Sluijters (1):
e48902a init: Check if running if not configured to start.
Dominic Cleal (3):
d28b7d4 (maint) Add specs for parser resource parameters
b35c5f2 (#23115) Include manifest context in Puppet::DevError
0ed24bf (#23115) Convert nil resource parameter values to undef
Don Law (1):
a56f962 (#22617) In Augeas onlyif, compare number strings numerically
Dustin J. Mitchell (6):
40c67e2 (#22129) force explicit file content to be treated as a bytestring
5886cae use :if so rspec sees the test even if it's not executed
eff8fb0 (#22699) set value_collection for boolean params
0fbcab4 (#21069) refresh the cache of launchd plists on a miss
2d537dd Better docs for file's recurse parameter
41d5982 (#22938) test and document symbolic file modes
Eric Badger (2):
8467328 (#22258) Create new console for each puppet run
3e75c6e (#3946) Add 'post_resource_eval' method to provider classes
Eric Williamson (1):
6147f5d (maint) reduce duplication of logdest option handling
Erica Thatcher (1):
4fc0355 (maint) reduce log level duplication
Erik Dalén (3):
0b5c747 (maint) Split to_pson_data_hash into generic to_data_hash component
10876a0 (#22849) Add msgpack serialization format
d150722 (maint) Stub Confine at old location
Ethan J. Brown (21):
342a106 (maint) .gitignore add .idea
ac2bbd3 (#17031) Add SID.octet_string_to_sid_object
03b6385 (#17031) Add SID.name_to_sid_object
a438236 (#17031) Parse ADSI usernames -> domain / account
ab9c2a5 (#17031) group type #insync? #is_to_s #should_to_s
0994bea (#17031) Puppet::Util::ADSI.sid_uri
455834e (#17031) Use SIDs to modify ADSI group membership
b693652 (#19447) Puppet::FileSystem::File#symlink(?)
c0a77e2 (#19447) Puppet::FileSystem::File#readlink
4bd6f87 (#19447) Puppet::FileSystem::File#stat / lstat
780ecb2 (#19447) Puppet::FileSystem::File.exist?
5cd80b5 (#19447) FileSystem::File#exist? calls self
0bae4bb (#22938) fix Windows tests for symbolic file modes
9538266 (#19447) Puppet::FileSystem::File.unlink
c64fa07 (#19447) Puppet::FileSystem::File Windows symlink
1320519 (#19447) Windows symlink check process token
4d27c1b (#19447) check Puppet.features.manages_symlinks?
5fd4249 (#19447) Rewrite symlink tests for file type
b578ed4 (#15559) Ensure SYSTEM has full control unless specified otherwise
5a2d7b8 (#15559) Windows security test fails under SYSTEM
1f7e28c (Maint) Refactor method names in file_spec
Greg Sutcliffe (1):
219c382 (#22206) Add option to disable default schedules
Henrik Lindberg (44):
40c272d (maint) Fix output of ArithmeticExpression label (future parser)
b6c6605 (#22442) Fix problem with missing issue ILLEGAL_NAME (future parser)
ef4a673 (#22442) Update the name validation rule to not accept hyphens
811ff05 (#22442) Add test that capitalized names are flagged as errors.
0cc816e (maint) Fix failing test.
5672322 (maint) Add parentheses in function calls
6747977 (#22498) Stop future parser from interpreting 0 as 00 (octal 0).
077344e (#21373) Fix future parser transformation of node inheritence.
92abf5c (#22356) Add api documentation for reports
e957ab9 (#22356) Add json schemas for the report objects
6492f41 (#22356) Add json schemas for the event object
ec07b5c (#22356) Add report API json-schema, validation, and documentation.
e122817 (#22356) Change POST to PUT, fix Ruby 1.8.7 and windows issue
207bf73 (#22356) Remove deprecated yaml from the description
52ed8bd (#22593) Fix interpolation issues in future parser lexer (braces/kw)
fb5fc8a (maint) Fix wrong filename from being shown in hiera-2 related errors
9120e73 (#19955) Give better error msg when Hiera databindings fail.
999c401 (#22784) Remove the foreach functions
489abe8 (#22784) Update tests that indirectly depended on foreach function.
680a96d (#22785) Add map function (copy of collect)
381582b (#22785) Rename and update collect_spec to map_spec and use map
57d7771 (#22785) Deprecate the collect function (by making it raise an error)
7389133 (#22729) Remove the reject function.
ed6916b (#22792) Rename the 'select' function to 'filter'
a82fa5c (#22792) Add select function that raises error
4085ff4 (#22792) Rename 'select' to 'filter' in spec tests
176cc60 (#19514) Add $trusted as hash with trusted node data
0eabbf6 (#19514) Fix issues in trusted data support when running tests
a461eff (#22792) Fix typo in filter functions documentation.
5168912 (#22792) Rename select_spec.rb to filter_spec.rb
ceeb13b (19514) Fix failing tests for expectations of not setting trusted
70afd77 (#22180) Make function, type, fact and node appear in rdoc2 output
bedfecb (#22962) Remove alternative lambda syntaxes from tests
1b48b11 (#22969) Remove alternative lambda syntax
6ddf845 (#21874) Fix failing validation.
4888117 (#23074) Add text to warn that master should be inactive for reinventory.
39b743e (#23074) Cleanup logic
8c0c68b (#23074) Remove header in inventory.txt when regenerating
627986e (#23074) Make cert inventory not rebuild inventory.txt when adding
d6ac89b (#23074) Refactor cert application's use of cert authority's interface
22ced3d (#23074) Remove overly stubbed tests
4622cbe (#19514)(PP-773) Rename hashed_node_data and cliencert for $trusted
a5caa79 (#19514) Correct error message matching for Ruby 1.8.7
37d7668 (#23116) Make SSL Validator API more explicit
Iristyle (1):
010078c (#19447) Add :manages_symlinks to file type
Jason Antman (1):
694d9a6 (#22660) Revert Fedora 17+ agent service name to "puppet" from "puppetagent".
Jasper Lievisse Adriaanse (2):
aec489d (#22579) Add service provider for OpenBSD's rc.d
e62dcc7 (22853) Let OpenBSD use gtar too.
John Julien (17):
5b2b960 (maint) Fixing build error on windows caused by command with unix path
aa0fe10 (#4424) Add umask parameter to Exec type
cb5cd20 (#7911) Fixed exception when using forcelocal param
69cdea6 (#15494) Make the puppet parser validate exit non zero when file not found
bac78b2 (maint) Changing rescue of Exception to StandardError
1a526d0 (#16384) Make puppet parser validate exit more cleanly
dcfc32a (#9546) Make pluginsync copy external facts to client
95ca2bd (#9546) Use $vardir/external_facts for storing external facts
f999c2f (#9546) Load external fact directories into facter config
1d57689 (#9546) Refactoring external fact source and dest to fact.d
83b3c7e (#9546) Add spec tests for external fact pluginsync
03399c5 (#9546) Added external fact plugin sync support to plugin face
b0dce31 (#9546) Added feature detection support for external facts
ed281c5 (#9546) Removing PATH_SEPERATOR from pluginfactdest
3ba25df (#9546) Retrieve module external fact dir from Puppet::Module
d305e86 (#9546) Update facter specs to support request.environment.modules
8ce491b (#9546) Fixed a few typos
John-John Tedro (2):
f960ccb (maint) Remove shebangs from *.rb files in lib
1683f41 (maint) Remove executable permission from *.rb files in lib
Josh Cooper (36):
8e5f365 (#21133) Report on installed windows package versions
df63954 (#21817) Ignore duplicate certs
29a9502 (#21241) Add a priority setting
f0c17de (#21241) Set process priority if one is specified
80bc3fc (#22652) Restore rack parsing of POST body parameters
d5306d6 (#17031) Prefer the domain component from the resolved SID
f769b4f (Maint) Whitespace fixup
60df1d7 (#22910) Use memory storeconfigs backend
312fcf0 (#22918) Allow paths file to be read and appended to
9f6d083 (Maint) Exclude `fork` based tests on Windows
22f5b73 (#21241) Use correct constant for low priority
d9b2551 (#22925) Fall back to cached catalog if we can't connect to the master
3f335ca (#19447) Check for symlink permission only if we try to create one
7485aba (#19447) Fall back to stat if we don't support symlinks
15be1dc (#19447) Fully qualify access to ruby `File`
e013c8c (#19447) Rescue when symlink privilege does not exist
75fea61 (#19447) Skip symlink test if provider doesn't support it
326b7ac (Maint) Allow acceptance tests to be run on preserved windows hosts
48b7351 (#18931) Add setting to control how remote metadata is copied
e799d02 (#23183) Use FFI to manage pointers in RootCerts module
544ae51 (Maint) Trailing comma doesn't work in ruby 187
41512f1 (Maint) Be more explicit about when the SYSTEM ACE is overwritten
245d218 (Maint) Refactor expectations when system granted full access explicitly
3640298 (Maint) Refactor expectations for at least one inherited system ace
ea9097a (Maint) Eliminate Windows network lookups
147f2e9 (#11563) Model Windows security descriptors
7d83f5e (#11563) Refactor DACL parsing
b635451 (#11563) Only rewrite the DACL if the mode changes
67a5aa6 (#11563) Preserve deny ACEs
38e8681 (#11563) Return INHERIT_ONLY_ACEs
f86daaa (Maint) Change usages of `and` to `&&`, and `or` to `||`
1b7f43d (#11563) Cleanup tests
8f113e1 (#11563) Fix issues when running as SYSTEM
d89f5a5 (#11563) Implement pending tests for when permissions are insync
0c69669 (#11563) Output human readable security descriptor
b7c563d (#11563) Create an explicit ace if the old ace is inherited
Josh Partlow (24):
7d2fb37 (#22499) Puppet manages owner/group of own vardir
e11dfd6 (maint) Render modules lists as pson in acceptance tests
8849a52 (maint) Fix acceptance test_against_preserved_hosts task
27fe02a (docs) Document additional parameters needed to curl with ssl
bef5b0d (#22180) Add integration test for puppet doc --mode rdoc
7f59b3a (#22180) Fix broken rdoc1 features
cedd593 (#22180) Recapture class comments under Ruby 2.0 RDoc
799ae81 (#22925) Correct transposed arguments for assert_match
9cd57e1 (maint) Reorganize data_binding/hiera-spec.rb
0716e30 (#23096) Explicitly clear hiera terminus between specs.
17a6d5a (maint) Extract common ssl setup for acceptance tests
38088e3 (maint) more explicit stdout tests for autosign_command acceptance
db23021 (maint) Don't stand up master unless resigning.
44f5efe (#7244) Consolidate autosign setting
78db477 (#7244) Fix up tests after refactors of the Autosign system
76badb4 (#7243) Add dns_alt_names with hostname to autosign test
080242a (#23201) Expose custom extensions in the certificate
c402b55 (#7244) Add a Tempfile.open that unlinks tempfile early
8b5f0e3 (maint) Adds vcloud pooling to the win*all beaker node definitions
b1f1cf9 (#18931) Deprecate instead of remove original windows behavior
eedb1df (#18931) Clarify deprecation warning for source file perms to windows
6903afa (maint) Reset hiera in test_helper to avoid order issues in specs
1f9d3e5 (#18931) File source_permissions setting applies to local files
94c2e95 (maint) Extract common acceptance setup script for Jenkins
Joshua Hoblitt (1):
09050ec (#22858) note official ruby 2.0 support in README
Justin Stoller (2):
a709576 allow configuration of Bundler source
5d15a4b Use the pooling api by default
Kylo Ginsberg (74):
0f42e97 (#22110) reorg api docs to api/{docs/schemas}
00692a8 Revert "Remove tests depending on json-schema"
3b45699 (#22360) json-schema needs multi_json 1.7.7
e05e3cc (#22360) don't attempt json schema validation on windows
5258b08 (#22360) don't include json-schema gem on windows
567a16f (maint) accomodate the new location for schemas
83c5959 (#22110) set version=0 in catalog constructor so it's always an integer (not nil)
20392b2 (maint) temporarily restore json-schema to Gemfile
6a2851b (#22110) add initial catalog documentation
231253d (#22110) validate some simple catalogs against json schema
e080646 (maint) fix typo in comment and clean whitespace
879cf74 (#22110) remove empty Notes section
6277844 (#22110) Documentation improvements per GH review
4d09a81 (#22356) validate json schemas against the json meta-schema
239e214 (#22110) apply tags regex to catalog tags
f8f3728 (#22110) remove the catalog constructor set of @version
7c952b0 (#22522) rename catalog_facts.json -> facts.json
8f9a597 (#22522) add documentation for facts endpoints
907b1d6 (#22522) mark the 4 fields in the facts schema as required
89dda62 (#22522) validate node facts against facts schema
6110827 (#22522) some formatting fixups
86c0d5a (#22356) add spec test and vanilla (useless) schema
3842b17 (#22522) Use :nodename instead of :name in URIs
f5dbd33 (maint) Move constant outside shared_examples_for to avoid "already initialized" warning
da7d937 (maint) Move common constant/requires for json-schema to spec_helper.rb
fd4259b (#22652) Add be_one_of matcher (copped from pcarlisle)
0a8cb5e (#22652) Tighten up spec for multi-valued params in a POST body
8354b95 (#22643) Document the file_metadata endpoint.
06d6725 (maint) Remove constant and requires now provided in spec_helper
006f308 (maint) Factor a duplicated constant up to spec_helper
2098c9e (#22643) Fix lists and remove non-ascii characters
f1dfd8d (maint) Correct spelling in method name
12065e2 (#22768) Add documentation for certificate_revocation_list endpoint.
c469b93 (#22643) Fix a typo.
c33de82 (#22643) Fix sub-bullets.
11bc172 (#22943) Add a spec test to reproduce the failure
bfb1707 (#22943) Remove 2 def_delegator's in favor of explicit method invocations.
ff7e7f5 (#22943) Add catalog to resources only after the catalog is complete.
12b3eaa (maint) Fix typo in a comment.
ef12173 (#22943) Refactor/rename Puppet::Resource#to_resource
4cd31ee (#9546) Update configurer_spec for external facts pluginsync.
5c329e5 (#9546) Check that :pluginfactdest is a directory before using it
e69771b (#9546) Correct a typo in a setting desc.
aa3bdee (#9546) Add windows and non-windows variants of one test.
99382b5 (#22858) Note that ruby 2.0.0 should be at least p195.
6ab4fa2 (#9546) Fix spec tests against facter 1.6.
e376b9d (#23801) Add unit tests for insync? raising StandardError or Exception
6ea77d1 (maint) Remove large spec test block whose benefits were unclear.
a7baff1 (maint) Remove an unimplemented test and fix up some comments.
6b7c56b (#9546) Preserve permissions in 'puppet module build'
898fb6b (#9546) Preserve execute permissions on 'module install'
4aae279 (#23131) Remove special casing of Class 'main'
e9f0b08 (#23131) Add a spec test asserting that main is treated like other classes
73f8ad2 (#9546) Apply the permissions fix to Solaris as well.
9dc2f46 (#9546) Fix comment and assert msg to match behavior change.
a5f15be (#9546) Apply the permissions fix to Windows as well.
5b7d9d2 (#9546) Factor out the tar command to de-dup solaris vs gnu tar impls
25dbc1e (#9546) Fix up the solaris gtar spec
97d41f6 (#23147) Add a spec test to reproduce the issue
baa69bf (#23147) Make the catalog available to the resource during to_catalog
9599ae7 (#23147) Add alternate fix for #22943.
11ef14c (Maint) Make tmp directory more safely
6622748 (#7244) Make autosign command treat all non-zero returns the same
72f9fa0 (#7244) Fix test for non-zero-or-1 exit status
56e8348 (maint) Fix the 'nothing to manage' message.
4c69e32 (#18931) Make non-root puppet not set group on files.
7b9448e (#18931) Convert source_permissions from Puppet setting to file param
883d74d (#18931) Refactor slightly for readability
025d009 (#18931) Replace 'puppetmaster' with 'puppet master'
92c4bfd (#18931) Rename source_permissions param values
f50493a (#18931) Convert the mode to a string for consistency.
74c8edf (#18931) Extend tests for local
fcbe527 (#18931) Improve warning messages on windows
81103c3 (maint) Adds vcloud pooling to the remaining windows beaker node definitions
Lee Lowder (1):
1aa79f8 (#23177) Specifies default value for package type's ensure attribute
Ludovic LANGE (26):
d48e761 (#2437) Prepare tests that illustrate the issue
d40c037 (#2437) Fix the first invocation of the class having bad parameters types
f0c6418 (#2437) Complete the tests to detect a variety of edge cases
3a99bd5 (#2437) Escape semicolon (;) when writing Nagios configuration files
11504d3 (#2437) Fix the parser : comments, semicolon, ...
4d59005 (#2437) Compile the parser to ruby code
e1b9d82 (#2437) Comments can start with a pound (#) anywhere on an empty line
6665b09 (#2437) Prefer StringScanner in lexer (performance)
82e934c (#2437) Parser now using StringScanner in lexer (performance)
fd4ffe3 (#2437) Cosmetic changes for the tests
03c2460 (#2437) Regex compatibility with Ruby 1.8.x
6f896a0 (#2437) For ruby 1.9, always consider input text as ASCII
3499e16 (#2437) Fix the odd test failure
3277aa9 (#2347) Instances of lambda { }.should are better expressed as expect { }.to
b2907de (#2347) Typo, "when encountering"
1cb911b (#2437) Renaming the spec test case constants
2d75d86 (#2437) Use interpolation instead of string concatenation
1cc3734 (#2437) Convert case statement on boolean to if/else (1/2)
fb680f5 (#2437) Convert case statement on boolean to if/else (2/2)
32d159a (#2437) Split logic into methods to lower complexity
48d0c3e (#2437) Split logic into methods to lower complexity (continued)
de17612 (#2437) Remove action method
70ef881 (#2437) remove bloc comments
bc94bfd (#2437) fix case statements indent
85b8b64 (#2437) convert to two space tabs
cd5645f (#2437) Nagios::Base#to_s should be deterministic
Matthaus Owens (3):
07ded3e (maint) Update debian packaging to reference new rack support location
62da3fc (maint) Remove ext/rack/README reference from debian/rules
0f56e36 (maint) Rename expected apache vhost in debian/rules
Matthew Haughton (1):
b1e5e51 (#21258) Update link to LSB exit code documentation
Matthew Lauber (1):
f21a2ca (#22642) Added install_options to the RPM provider
Melissa Stone (1):
de8a14f (packaging) Update PUPPETVERSION to 3.4.0-rc1
Moses Mendoza (2):
957c191 (21868) Move puppet libary target to /Library/Ruby/Site
a226ca5 (22329) Only delete puppet files in the preflight
Nick Fagerlund (28):
8d32487 (maint) Explain a dead variable in puppet/util/docs.rb
7fdf590 (#22432) Sort defaults/commands/features in provider doc hooks
00dcee5 (maint) Instead of two indent-stripping methods, let's have one
c777fcc (maint) Refactor Puppet::Util::Docs.scrub
622b213 (#22489) Fix mangled setting descriptions in config reference and genconfig output
bf9ac39 (maint) Adjust wrapping and indent of a bunch of setting descriptions
6156c7b (maint) Fix sloppy indent in schedule type
a6f08ba (maint) Fix docs indent breakage in yumrepo type
b9c6a2e (maint) Reduce object creation in several string concatenations
56ecbc1 (maint) Prevent possible formatting problems on indirection reference
2ae853e (maint) Avoid accidental outdenting when appending stuff to doc fragments
4daef1d Docs: Mention that fqdn_rand accepts strings as seed additions
a85d6f3 Docs: Explain the usage of fqdn_rand more effectively
e6b873f (maint) Remove stale files from ext/rack
9f3db47 Maint: Reformat docs for Augeas type's "changes" attribute
204dd1e Maint: Reformat indirection reference to use H4s instead of DLs for termini
3f154db Maint: Change "installation" section of README to be more useful
1c75ac0 Maint: Make doc string for Windows group provider match 3.4.0 fixes
ee910a4 Maint: Clarify doc string for contain function
9a3cefe Maint: Update and clarify docs for the include function
1e42d32 Maint: Re-word doc string for file type's ensure property
7ac5ece Maint: Edit and clarify the autosign setting's docs
df6b060 Maint: Complete and clarify the csr_attributes setting's docs
a87a663 Maint: Change "inactive" to "stopped" in reinventory action's description
c29b33d Maint: Adjust formatting of "priority" setting description
4d7e149 Maint: Copyedit description of source_permissions attribute for clarity
bb829da Maint: Explain the format and effect of install_options for the RPM provider
33e8813 Maint: Note that mount points autorequire any parent mounts
Nick Lewis (2):
7076657 (#23096) Treat ENC classes with empty params as if they had no params
27a5558 (#23096) Remove redundant hash conversion when handling ENC classes
Patrick Carlisle (22):
53e55d9 (#8040) Add a function to specify containment
72d99ae (#8040) Don't allow duplicate contain calls
c8ce90f (#8040) Test order of application for contained classes
b1069e1 (#8040) Do not create duplicate edges
f1e1596 (#8040) Clarify behavior in tests around multiple containment
d5e7c47 (maint) Rename api_docs to api in yardopts to fix generation
15d04c8 (#22807) Document certificate_status endpoint
e08766a (maint) Rename validate_as_json to be specific
dfd0908 (#22807) Add examples for certificate_status
8309979 (#22833) Document file_bucket_file REST interface
9715960 (maint) Serialize timestamp in Puppet::Node::Fact using iso8601
cb710b5 (#22849) Add to_msgpack on format_support and require where needed
6f74780 (#22849) Move Confine out of Provider
0709531 (#22846) Add json schema for node
bc0e566 (#22846) Document node endpoint
82d32a5 (Maint) Refactor retrieving the indirection in http handler
ad3e6df (#22893) Make handler check whether remote requests are allowed
3c5386e (#22893) Disable remote requests for key termini
a734dfb (Maint) Remove no-op rescue clause
2a683fe (#22180) Provide doc --mode rdoc parsing under Ruby 1.9
61e6ede (#22956) Use a set to store tags
dddb843 (#22956) Remove temporary TagSet#== implementation
Paweł Tomulik (3):
9da1cd5 cosmetic changes to package providers
a71e811 (#22362) Changes in const_defined?() on ruby 1.9 break Puppet::Util::Classgen
33ab214 (maint) print meaningful debug messages in execpipe
Raphaël Pinson (3):
8133dd3 (#22703) Force encoding of comment value to ASCII-8BIT
d6b9b2c (#22703) User comment encoding: Do not munge value in place, use encoding constants
16cd98c (#22703) User comment encoding: Use encoding constant
Rob Braden (1):
65a6301 (packaging) Update PUPPETVERSION for 3.3.1-rc2
Rob Reynolds (9):
732d450 (#23124) Fix: Incorrect Exit Codes from Windows Exec
5967369 (#23124) Remove 194 exit code from windows/msi package providers
7b2cc74 (#2538) Puppet::Util::Execution.execute should also return exit status
4879d1b Revert "(#23124) Merge branch 'ticket/stable/23124-exit_codes_on_windows' into stable"
026b2f7 (#23124) Fix: Incorrect Exit Codes from Windows Exec
3ba9923 (#23124) Remove 194 exit code from windows/msi package providers
d97a2bd (#18931) Pluginsync ignores source permissions by default on Windows
fa6dca1 (#23236) Deprecate Puppet::Util::SUIDManager.run_and_capture
d3fbed1 (#18931) Only issue deprecation when owner/group/mode not specified
Sam (1):
7917df9 (#22992) Correct wrong exit code when testing state.yaml
Sam Kottler (1):
ff0fc74 (#23085) Ensure old puppet agents get properly stopped when upgrading from 2.6 or early to 2.7 or later
Tehmasp Chaudhri (1):
4b72b27 Updated the example text of 'puppet module generate puppetlabs-ssh' while personally exploring/learning what functionality 'pup
Thomas Bartelmess (1):
d7b31a2 (#22458) Always store the path for launchd service provider
Thomas Linkin (7):
e7470e1 (#22288) Add methods to access all parameters of a type
74fbd0a (#22288) Add post_compile_hook to Puppet::Parameter
f264d7c (#22288) Add tests for new methods in `Puppet::Type`
bfde167 (#22288) Add test coverage for `post_compile_hook`
a2a4743 (maint) Change post_compile_hook method name
339f29f (doc) Add YARD tags to Puppet::Parameter#post_compile
67c3d52 (doc) Add documentation commit example to CONTRIBUTING
Zachary Alex Stern (1):
e71e1d6 (#22740) create_resources input validation
mihau (1):
5685380 fixed sendmail
pocams (1):
b63aef2 8657 Support UNC paths for file objects on Windows
renato arruda (1):
92b365b (#22662) create a logstash_event logger
--
Melissa Stone
Release Engineer, Puppet Labs
Join us at PuppetConf 2014, September 23-24 in San Francisco