Puppet 2.7.14 is a maintenance release in the 2.7.x branch.
Detailed feature release notes are available:
https://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes#2.7.14
This release is available for download at:
http://puppetlabs.com/downloads/puppet/puppet-2.7.14.tar.gz
RPM''s are available at http://yum.puppetlabs.com/el or /fedora
Debs are available on http://apt.puppetlabs.com (lenny requires
backports enabled)
Windows packages are available at
http://downloads.puppetlabs.com/windows/puppet-2.7.14.msi
Mac packages are available at
http://downloads.puppetlabs.com/mac/puppet-2.7.14.dmg
Puppet is also available via Rubygems at http://rubygems.org
See the Verifying Puppet Download section at:
http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet
Please report feedback via the Puppet Labs Redmine site, using an
affected puppet version of 2.7.14
http://projects.puppetlabs.com/projects/puppet/
## Puppet 2.7.14 Highlights ##
## Features ##
Puppet Module Tool Face - the module tool has seen a host of
improvements including dependency resolution, environment handling,
and searching the forge. There are more details available at
http://docs.puppetlabs.com/puppet/2.7/reference/modules_installing.html
## Bug Fixes ##
(#13682) Rename Puppet::Module::Tool to Puppet::ModuleTool
Without this patch, Puppet will monkey patch the existing implementation
of the puppet-module Gem if it is used. This is bad because the two
implementations are all jumbled up inside of one another and behavior
may become unpredictable. Warnings are also displayed directly to the
end user in the form of redefined constants.
This patch fixes the problem by renaming Puppet::Module::Tool inside of
Puppet to Puppet::ModuleTool This fixes the problem because Puppet will
no longer monkey-patch the Puppet::Module::Tool module inside of the
puppet-module Gem.
This patch also has the added benefit of making the Module''s name
match
up with the CamelCase filepath (puppet/module_tool/ =>
Puppet::ModuleTool) As a result, no file moves are necessary.
(#13682) Fix acceptance test failures
On Lucid, /usr/share/puppet may not exist. The module upgrade tests all
make the assumption that this parent directory exists. This causes
false positive failures when running systest against a Lucid system.
This patch modifies the setup code for all of the tests to ensure the
parent directory exists.
(maint) Ensure every file has a trailing newline
Without this patch some files exist in the tree that don''t have
trailing
newlines. This is annoying because perl -pli.bak -e will automatically
add a newline to every file it modifies in place. The files that
actually have modifications by the global search and replace need to be
separated from the files that only have newlines added.
This patch simply adds newlines to everything if they don''t exist
on the
last line.
Yes, the PNG''s are perfectly fine with a trailing newline as well.
(#14036) Handle upstart better
Change the upstart provider to better handle the mix of some services
(#14060) Fix quoting of commands to interpolate inside the shell.
The `shell` exec provider was supposed to emulate the behaviour of
0.25 exec,
which was to pass the content through the default shell to get it
executed.
Unfortunately, it got quoting a bit wrong, and ended up interpolating
variables at the wrong point - it used double quotes where single quotes
were
really what was desired.
Thanks to Matthew Byng-Maddick for the report, and a fix to the quoting;
in
the end we should not be in this position - we shouldn''t be using
string
execution where we can pass an array instead. That avoids any chance
that
there is more than one round of shell interpolation entirely.
As a bonus, this fixes the base exec type to support specifying the
command to
run that very way, and making it good.
(#14101) Improve deprecation warning for dynamic lookup
The new message will tell the user how to get more information about
what is occuring. More information will be provided at debug level so
that a user can see what the change to the lookup will be.
Better warnings about scoping
Make new scoping look through inherited scopes
Previous to this commit, Puppet would look through a given scope
hierarchy and give deprecation warnings when a value was found in either
an inherited class scope or included class scope, when it should only
give the warning in the case of the included class scope.
This commit makes the new-scope behavior also examine inherited scopes,
though continuing to ignore included scopes.
Implement newlookupvar() to replace dynamic scope
lookupvar() is shifted to oldlookupvar() and newlookupvar() is added. An
intermediary lookupvar() function will query both and if the answer
varies then it will throw a deprecation warning for dynamic scoping. The
intermediary and old lookup functions may be removed at a later date,
thus completing the transition.
A test case has been introduced to detect dynamic scoping and the
deprecation warning. Slight modifications to the spec test scoping
objects were made to bring them more in line with the real world.
All scope tests pass. When oldlookupvar is replaced, the deprecated
dynamic scoping test case will fail and all other scope test cases will
pass.
Augeas Improvements
(#11988) Work around Augeas reload bug when changing save modes
After saving a file in one save mode and switching to another, Augeas
realise
to reload the file when Augeas#load is called again. Work around this by
explicitly reloading all files we saved while using the first save mode.
(#11988) Don''t overwrite symlinks in augeas provider
Previously, if not running with `force` set, we would try to write the
file in SAVE_NEWFILE mode to create a <filename>.augnew file with the
changes. We determined whether there were changes to be made based on
that file (and used it to show a diff). When it came time to actually
make the changes, we would simply move the .augnew file over the file
being managed. Unfortunately, if the file being managed were a symlink,
this would clobber it.
There was a fallback path in the case of force (or older versions of
augeas not supporting SAVE_NEWFILE) in which we would make the
changes in SAVE_OVERWRITE mode as normal. Now, the behavior is a
combination of the two; we still use SAVE_NEWFILE to determine whether
changes need to be made and to show a diff, but then remove the .augnew
file and always run again in SAVE_OVERWRITE mode to save the changes.
This effectively delegates the behavior of preserving the file, etc.
to augeas, so we don''t duplicate effort or bugs.
(#13204) Don''t ignore missing PATH.augnew files
The original fix for #13204 may have masked other potential bugs if the
PATH.augnew file was missing. It simply tested for the file existance
and not
only when duplicate save events occurred.
This change de-duplicates the list of save events instead, so if a bug
appeared
where PATH.augnew was genuinely missing, the error wouldn''t be
squashed.
(#13204) Workaround duplicate Augeas save events
Bug #264 in Augeas causes duplicate save events to be returned when
editing
under /boot in newfile mode. Because we loop around these
events, diffing and
unlinking the files, this causes an ENOENT error when we process the
same event
twice.
This commit checks that the file we intend to operate on exists.
(#7592) Remove redundant call to String#to_s
Previously, the augeas provider made calls like the following:
@aug.get(key).to_s
Since the Augeas#get method returns a String not an array, the to_s
call is redundant. (Note the #match method does return an array.)
The augeas tests were stubbing the #get method to return an array in
some places (and a string in others). Prior to 1.9.2, ruby will
automatically convert ["foo"].to_s to "foo", so
everything worked as
expected. However, under 1.9.2, ["foo"].to_s becomes
"[\"foo\"]".
These failures weren''t noticed earlier, because our
1.9.2@allFeatures
jenkins nodes do not have ruby-augeas installed. In other words, tests
that require Puppet.features.augeas? were never running in
Jenkins. The recent change to improve augeas testing, removed the
dependency on this feature being installed, so these tests started
failing.
This commit just removes the redundant call to String#to_s, and
updates the spec tests to match what the Augeas#get method really
returns.
Zypper Provider Improvements
(#8312) Fix zypper provider so ensure => ''latest'' now
works
Previously the regular expression to match the correct column from
''zypper list-updates'' was wrong, it seems to have been
based on the
command
''zypper packages'' instead. This was caused ensure =>
''latest'' to fail as
the
provider couldn''t adequately figure out what newer versions were
actually
availabe.
So I''ve fixed the regular expression (based on Felix
Frank''s patch) and
updated
the spec test so that it uses the real output from zypper list-updates
and now
references an external spec file, as apposed to referencing the content
inline.
Windows Bugfixes
(#12392) Created Windows eventlog message resource dll
This commit adds the ability to build a message resource dll used to
display localized eventlog messages on Windows. Windows eventlog expects
that each log event has a unique id, which can then be localized in a
resource dll, one for each locale. However, puppet does not yet support
this, see #11076. So this commit defines three puppet event ids
corresponding to the three levels of Windows events that we support
(info, warn, and error).
In order to build the dll, you need the Windows SDK installed that
contains the mc, rc, and link utilities.
(Maint) Don''t assume eventlog gem is installed on Windows
Previously, the test would fail when run on a Windows box that
didn''t
have the eventlog gem installed. Since the Windows agent should be able
to run without the gem installed, and fall back to writing to a log
file, this commit changes the test to only run when the gem is
installed. There is already a test that verifies that we fall back if
the eventlog feature is not available.
This release includes contributions from the following people:
Andrew Parker, Chris Price, Daniel Pittman, Dominic Cleal, Gary
Larizza, Hunter Haugen, Jeff McCune, Jeff Weiss, Josh Cooper, Justin
Stoller, Kelsey Hightower, Ken Barber, Lauri Tirkkonen, Matt Robinson,
Matthaus Litteken, Moses Mendoza, Nicholas Hubbard, Nick Lewis, Nick
Fagerlund, Nigel Kersten, Patrick Carlisle, Pieter van de Bruggen,
Reid Vandewiele, and Stefan Schulte
Puppet 2.7.14 Changelog
==Andrew Parker (10):
934ec89 Improve deprecation warning for dynamic lookup
b85cdc9 Fixup tests to work on CentOS 5
9aa302f Increased test coverage of scoping rules
9711d50 Created test that shows enc warning problem
72d3b56 Default autoflushing of log files to true
878127f Make sure the log file writable
fb96747 Fixed old log test to match new autoflush behavior
2d3cc63 Fixing problem caused by activerecord
d67711d Cleaner test for create_resources doing nothing
0d9e852 Removed duplication of compiling a catalog
Chris Price (5):
e24755d (#13397) fix gem provider ensure=>latest bug
fc2964f fix bug in Util#symbolizehash!
b6ee08a (#13690) Update 2.7.x for spec_helper compatibility with
external projects
2ff6fe4 (#13690) add comments to spec_helper
2957ffe Fix tempfile cleanup in specs
Daniel Pittman (25):
796a072 Modernize the style of the shell exec provider tests.
74e462f (#14060) Fix quoting of commands to interpolate inside the
shell.
2732f25 (#12479) Don''t make undef regexp match as the string
undef.
d00c5cc (#12457) add users primary group, not Process.gid, in
initgroups
50909b9 (#12458) default to users primary group, not root, in `asuser`
76d0749 (#12459) drop supplementary groups when permanently dropping
UID
0ad532a (#12463) add secure `replace_file` to Puppet::Util
8461203 (#12462) user_role_add: use `replace_file` for /etc/shadow
1469538 (#12460) use `replace_file` for the .k5login file
ead36ff (#12463) eliminate `secure_open` in favour of `replace_file`
dd6d36c Fix Rails compatibility code to be less stupid.
3857e2b Fix stubbing of ActiveRecord that doesn''t work in AR 3.2.*
17a5302 Make PuppetSpec::Files methods available at module level.
600a6e7 Clean up and unify scratch database setup logic.
30a23ac (#4862) Stop using EventLoop in the Puppet daemon.
11501a7 (#4862) `returning` is not a standard Ruby method.
8e11766 (#4862) define_method is not a public method in Ruby.
dba27c9 (#4862) Finally remove the event-loop library.
01c8623 Don''t stub the database in Puppet::Rails tests.
d27af92 Stubbing time is risky, better an approximate compare.
d6da1b7 Fix hash comparison under RSpec with 1.8.5
ec5c4bf Document the problem with the `apply_to_device` and
related methods.
eb2c71b Clean up "foo" name in global resource state.
245f1b9 Clean up the "foo" name in create_resources_spec.
40ee256 Finally, stop using the `foo` name in the type_spec test.
Dominic Cleal (3):
2973d5c (#11988) Work around Augeas reload bug when changing save modes
0498d55 (#13204) Workaround duplicate Augeas save events
c01cac9 (#13204) Don''t ignore missing PATH.augnew files
Gary Larizza (1):
a26ff16 [#13686] Fix directoryservices ShadowHashData code
Hunter Haugen (6):
9c94586 Tests for deprecation warnings for dynamic scoping
2e78aad Implement newlookupvar() to replace dynamic scope
48bce6b Remove dynamic option for lookupvar
b519e24 Add tests for mixed inheritence/inclusion
2ddb3d6 Make new scoping look through inherited scopes
163ab8c Use more descriptive terms for the differing scopes
Jeff McCune (4):
1306611 (maint) Remove unnecessary step from puppet module build help
42b20be (#13682) Fix acceptance test failures
dce3c32 (#13682) Rename Puppet::Module::Tool to Puppet::ModuleTool
5117e12 (maint) Ensure every file has a trailing newlines
Jeff Weiss (3):
db17d7c (#13380) Cron acceptance tests don''t ensure cron
actually installed
c255414 (#14036) Add upstart tests
dc3bb9f (#14036) Handle upstart better
Josh Cooper (8):
452e2c4 (#7592) Remove redundant call to String#to_s
bdb5922 (Maint) Don''t change permissions on /etc/hosts
43003f5 (Maint) Consistently use the same agent fqdn
f0625ef (#12392) Created Windows eventlog message resource dll
8d2ff89 (#12392) Add eventlog destination and log to it by
default on Windows
100f42c (#12392) Don''t require eventlog gem on non-Windows
platforms
f531400 (Maint) Don''t assume eventlog gem is installed on Windows
d54100d (Maint) Fix order-dependent test failure
Justin Stoller (1):
60b7aa5 Prior to this commit we hard coded paths in two tests
that depended on our CI system directory structure. This made it hard
to use our acceptance suite without also including the exact same
setup. It also increased the cost of maintaining our CI setup.
Kelsey Hightower (10):
1b810b1 (#3581) Stop forking around: Add fork helper method
245c6b7 (#9167) Do not send email when nothing changes
a2990a8 (#13737) Swap build_tree and format_tree method names
45f8009 (#13638) Add SemVer#pre function
28531f8 (#13639) Don''t send errors directly to stderr
6819cf3 (#13642) Move search notice message
9cbda49 (#13643) Make the use of FileUtils.rm_rf secure
e7d3911 (#13649) Restrict module name matching
bca4849 (#13636) Update Module Face copyright date
7afcb04 (#9167) Do not send email when nothing changes
Ken Barber (1):
27bd6bc (#8312) Fix zypper provider so ensure =>
''latest'' now works
Lauri Tirkkonen (1):
6a31287 (#12981) Fix external subcommand exit status
Matt Robinson (3):
1342558 Monkey patch FileUtils.mv in Ruby 1.8.5
271c7f2 Make core changes needed for the puppet module tool
1de8bd7 Add Module Tool
Matthaus Litteken (3):
a61c785 Updating CHANGELOG and lib/puppet.rb for 2.6.14
5178adc Update puppet.spec for rpm packaging
3a4ac60 Updating CHANGELOG, lib/puppet.rb for 2.7.14rc1
Moses Mendoza (1):
8f84207 (#12466) unset X-Forwarded-For header
Nicholas Hubbard (1):
27a5eb7 options[:ca_location] is a string not a symbol. Safer to pull
Puppet::SSL::Host.ca_location since it is already set correctly.
Nick Lewis (5):
2599d56 Copy owner/group in replace_file
0a09a64 Document uid/gid-related methods in Puppet::Util
ade5965 Remove unnecessary fallbacks in change_{user,group}
dfefc23 (#11988) Don''t overwrite symlinks in augeas provider
49eabd4 Quote strings containing hex numbers when generating ZAML
Nigel Kersten (1):
ee554eb (#10722) Display errors on HTTP report submission failures
Patrick Carlisle (14):
c4b3c84 (#9491) Preserve trailing slashes in FileSettings
7207b68 (#10722) Refactor http_spec to use expectations
a2208d0 (#10722) Add spec to verify that an error is logged on bad http
ca32364 (#13117) Fix selmodule error on each_lines
95c2b90 Stub execpipe using StringIO
772f756 (#12101) Add shared context for specs to imitate windows or
posix
3f28268 (#12101) Make Puppet::Util::absolute_path? usable in autoloader
7e78094 (#13659) Convert fact values to string when searching database
a7181c8 (#13640) Only agents should use next_agent_run
876785a Use :as_platform in the redhat service spec
7d27cd2 Use :as_platform in the smf service spec
e2d6915 Fix communication_error acceptance test
79bf4fa (#13299) Fix error message when agent is disabled
f1331ba Put back require ''puppet'' in Puppet::Util
Pieter van de Bruggen (1):
7994400 (#13367) Patch SemVer to permit ranges including
pre-release components.
Reid Vandewiele (1):
46d8973 (#13567) Fix create_resources name parameter bug
Stefan Schulte (13):
36e6642 (#8193) Support new keytypes for ssh_authorized_key
5dfc436 (#8193) Support new keytypes for sshkey
0efc65d (#8193) Add unit tests for new ssh keytypes
a62f711 (#8193) Add support for new ssh keytypes in
authorized_key provider
d28c62a Maint: Remove unused variable in user spec
7eb4f5b Maint: Add a real provider class to user spec
bc64d9b Maint: Use real objects in user spec
e1f9957 Maint: Remove unused mock objects in user spec
c6d656a (#1076) Show warning if an empty group is specified
113fc54 (#7986) Cleanup pkg provider #1
2e32924 (#7986) Cleanup pkg provider #2
54e5d18 (#7986) Modify pkg provider to handle publisher
0b7841a (#12960) Fix puppet resource <type> if type has no providers
cprice (1):
f5487bd (#13439) refactor spec helper for spec compatibility
between 2.7 and master
nfagerlund (1):
7048e88 (#3022) File type''s force attribute''s description
is incomplete
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com.
To unsubscribe from this group, send email to
puppet-dev+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.