summaryrefslogtreecommitdiffstats
path: root/lib/puppet
Commit message (Collapse)AuthorAgeFilesLines
* (#5274) New comment property for the hosttypeStefan Schulte2010-11-172-72/+32
| | | | | | | | | | | | | | | | | | | When the parsefile provider for host parses /etc/hosts, it throws any inlinecomment away. As a result they are also purged in /etc/hosts after a puppetrun that detects a change. That could be dangerous because you will lose information even about unmanaged resources. So if you have something like 192.168.0.1 hostentry_not_managed_by_puppet # Important comment in /etc/hosts the endresult will be 192.168.0.1\thostentry_not_managed_by_puppet This patch introduces a new property "comment" for the host type. The provider is nearly a complete rewrite and a lot shorter and hopefully easier to understand.
* Fix test failures that fixing #4726 exposed.Jesse Wolfe2010-11-161-4/+7
| | | | | | | | | The patch for #4726 causes old unit tests of the rrd reporting infrastructure to run on my machine. These tests were calling the old report api, which does not succeed. Also, the rrd settings had unintentionally been moved out of the :metrics section, making it possible that the rrd report directory would fail to get created during testing.
* (#4726) Fix RRD legacy supportMatt Robinson2010-11-161-1/+1
| | | | | | | | There was a section of code that didn't take the legacy RRD library into account. This caused a unit test failure, but only if you have the RRD legacy library installed, which I did. Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* Fix for #4279 -- mount detection on HP-UXMarkus Roberts2010-11-161-1/+1
| | | | | This is based on the discussion on ticket, simplified slightly and with test adjustment.
* Fix for #5055 -- adding to_sym to Puppet::Node::EnvironmentMarkus Roberts2010-11-161-0/+4
| | | | | | The currious part is that this wasn't noticed before since it appears to block server-first migration to 2.6.x and doesn’t appear to be the consequence of a recent (2.6.3) change (unless, as is quite possible, I’m missing something).
* Fix for #5298 -- Collections need to do type lookupMarkus Roberts2010-11-161-1/+2
| | | | | | | | | | | | | When the responsibility for type-name resolution was moved to the AST nodes in commit 449315a2c705df2396852462a1d1e14774b9f117, at least one instance was missed: the space ship operator Myclass <<| tag == foo |>> fails unless Myclass has been previously loaded. This commit adds the lookup to AST::Collection nodes in the same way it was added to the other node types. Note that I haven't audited the other note types for similar cases.
* Step towards [5298] -- cleanup indentation, etc. in AST::CollectionMarkus Roberts2010-11-161-51/+33
| | | | My code smell routines bobbled this one, so I'm fixing it manually.
* Fixed #5287 - Schedule documentation is incorrectJames Turnbull2010-11-161-5/+5
|
* Fix for #5273 -- user resource constantly resetting password ageMarkus Roberts2010-11-162-4/+4
| | | | | | | The query methods for the newly added password age properties didn't have the same name as the properties, and thus the default retrieve method wan't finding them and never got the current value from the provider. They were therefore always seen as :absent and puppet always thought they needed to be set.
* Fix for #4299 -- Don't require whichMarkus Roberts2010-11-127-32/+11
| | | | | | We already had an internal implementation of which hiding under an assumed name (Puppet::Util.binary); this commit calls it out of hiding and uses it consisantly.
* Fix #5020 - Prefer finding node name from REST uri over certnameBrice Figureau2010-11-121-4/+8
| | | | | | | | | | | | | | | | | | | | | | This is a behavior change. Before this patch, we always used the currently connected node's certname to compile the catalog, despite the value of the catalog URI REST request. With this patch we now use the URI as the compiled node name. This is safe because the default auth.conf (and default inserted rules when no auth.conf is present) only allow the given connected node to compile its own catalog. But this also allows for greater flexibility with auth.conf. For instance it can be used by a monitoring system to check multiple nodes catalogs with only one certificate: path ~ ^/catalog/([^/]+)$ method find allow $1 allow monitoring-station.domain.com Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix for #4955 -- Race condition & memory leak in Puppet::UtilMarkus Roberts2010-11-124-15/+22
| | | | | | | | | | | | | | The Puppet::Util.sync method was not thread safe and also leaked memory. I'm not certain, but I believe the first is ironic and the second is merely a bug. This patch addresses the problem by 1) refactoring so the sync objects are never returned (and thus no one can cache a reference to one) 2) adding reference counting 3) deleting them when they are no longer needed 4) doing the thread safty dance. It wasn't the first (or even second) solution considered, but it's the one that I was able to make work in a way that I'm convinced is correct. Its main advantage is that it puts all the tricky bits in one place.
* Fix #4921 - race condition in Parser Functions creationBrice Figureau2010-11-121-2/+4
| | | | | | | The autoloading is not thread safe, which means two threads could both autoload the same function at the same time. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #5252 - line number mis-attribution during parsingBrice Figureau2010-11-111-3/+3
| | | | | | | | | | | | | | | It is a resurgence of #2366 that appeared because of the commit 8971d8. Before this commit, for associating documentation comments, we were preferring line numbers coming from the parser currently reducing rule, instead of the current lexer line number (which can be in advance of several tokens due to the nature of LALR parsers). We now merge the ast line number before fetching the comment from the lexer. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix for #2568 -- Add a dbconnections option to set AR pool sizeMarkus Roberts2010-11-102-0/+4
| | | | | The dbconnection option, if set to a positive integer, will be passed to active record as the connection pool size (pool).
* Maint. Removing code for which no CLA has been signedMarkus Roberts2010-11-102-9/+0
| | | | | Multiple attemps were made to contact the author of this code in order to obtain a Contributor Licence Agreement, but we were unable to do so.
* Reimplementation of functionality removed by prior commitMarkus Roberts2010-11-101-1/+9
| | | | | This commit implements the base path-to-source functionality and adds an (adapted) version of Matt's code on top of it.
* Refactor for CLAMarkus Roberts2010-11-101-13/+1
| | | | | | | | | | | This commit removes code contributed by Ryan McBride, an author we have been unable to contact to sign a Contributor License Agreement. It also removes code writen by Matt Robinson (a Puppet Labs employee) which only made sense in the context of the removed code. The code in question comes from these commits: 6ac36eb4 Matt Robinson 55a9009c Ryan McBride
* Fix #4923 - close process race when truncating existing fileBrice Figureau2010-11-101-1/+4
| | | | | | | | | | | | | | | | | | | | | Using File.open(file, "w") calls open(2) with O_CREAT|O_TRUNC which means when the file exists it is immediately truncated. But the file is not locked yet, so another process can either write or read to the file, leading to file corruption. The fix is to truncate only when the file is exclusively locked. This can be done on some operating system with O_EXLOCK open(2) flag. I chose the more portable option of: * open * flock * truncate * write * close It might also be good to flush and fsync the file after writing it, otherwise in case of crash an incomplete file can stay on disk. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* capture stderr from exec resourcesNigel Kersten2010-11-101-1/+1
|
* (#4573) FreeBSD service provider now supports versions <7 and >8Nick Lewis2010-11-101-1/+4
| | | | | | | | | | | | Running "/etc/rc.d/SERVICE rcvar" outputs different formats for different versions of FreeBSD. This patch adds support for those formats, as well as tests. Based on patches from: o Joost van Beurden o Russell Jackson Paired-With: Matt Robinson
* Fix #3808 - puppetdoc should use --force-update only if RDoc supports itBrice Figureau2010-11-101-4/+5
| | | | | | This should allow to run puppetdoc on ruby 1.8.5. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* [#4813] Remove dead code from puppet/rails/host.rbMatt Robinson2010-11-101-72/+0
| | | | | | | | | | | | | | | def self.clean – became orphaned in commit 28cee40689440388994a4768bd301ae32c8ecc05 def self.store – became orphaned in commit 863c50b1273a7fa48d74fb74948938214b45967c def fact – was added as a helper method for unit tests in commit 9f4870637ce57d548d23c0b3330200014327c268. The test file that used this method was removed in commit 93246c0c70796a606fc8c05b51e1feb09c94e377 def update_connect_time – Not sure when this was ever used. I also ran a client master storeconfigs run a few times and didn’t see any problems, so I’m pretty sure deleting these methods is safe.
* Fix #4911 - Do not generate doc for standard RDoc parser generated objectBrice Figureau2010-11-101-0/+6
| | | | | | | | | RDoc has some standard parsers for .c,.cc or fortran files (don't ask why). Unfortunately our html generator doesn't support the data structures generated by those parsers and we were bombing on unknown methods. This patch makes sure we generate html only for our own top level objects. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #5127 - error when accessing array elementsBrice Figureau2010-11-101-2/+10
| | | | | | | | | | | Accesing an array with an integer index (ie $array[1]) is producing a ruby error: can't convert String into Integer This is because the array index is not properly converted to an number before the array element lookup is performed. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Kludge for #5206 -- port of fix for #3536 to yamlMarkus Roberts2010-11-102-1/+16
| | | | | | | | | | | | | | | | | | The internal format of parameters was changed between 0.25.x and 2.6.x, making them incompatible when serialized. This was fixed for PSON under ticket #3656 (by modifying the data as it was serialized) in: commit f66095d35bc5f9645eb19bbb8cefa342c0181d2d and commit 2edf7fe968ac3d8af9865f65100940747c1fa894 but nothing was done about the other serialization formats. This commit adds a callback to zaml property serialization and uses it to route data through the fixup method added in the commits above, thus fixing the problem "the same way" as it was fixed for PSON under #3656. It does nothing about marshal, mostly because I have not totaly gone over to the dark side (yet).
* (#5233) Randomize tmp dir pathsMatt Robinson2010-11-081-0/+2
| | | | | | | Standardize how we create tmpdirs by using the puppet function instead of Dir.tmpdir. Paired-with: Paul Berry <paul@puppetlabs.com>
* Fixed #5112 - Launchd Service broke in 2.6.2 with OS X 10.4 Clients.donavan2010-10-291-1/+1
| | | | | | | | | | | | | | Just to follow up on 5112 I have a dirty patch that appears to work. Nominally tested it on 10.4, 10.5, & 10.6. 10.4 now applies catalogs instead of failing. All versions successfully manage a test services state as well. Does anyone have a better suggestion than '-o /dev/stdout'? Seems a mite hacky to me. Also I think that the 10.4 machines are going to a have a \ ( slash ) file in whatever puppets working dir was. plutil seems to have been interpreting as literal file name.
* Fixed #5137 - Removed no longer required TOC referencesJames Turnbull2010-10-291-2/+0
|
* Kludge for #5048 -- serialization compatibility with 0.25.xMarkus Roberts2010-10-271-0/+10
| | | | | | | | | | | | | | In 0.25.x the type & title of a resource were wrapped in a Puppet::Resource::Reference object whereas in 2.6.x they are attributes of the resource itself without the additional indirection (see 7089446697ad550c22012bc2b5572030727d67e1). When pson serialization is used this isn’t a problem but with formats in which we just blindly emit the structure either because we have no choice (marshal) or because we just use the default (yaml) it is a compatibility-breaking change. This patch resoloves the problem by adding a dummy reference object to cause the "correct" serialization; it is intended as a stop-gap for 2.6.x and should NOT be merged into next.
* (#4534/#4778) -- Normalize parameterized classesPaul Berry2010-10-273-18/+24
| | | | | | | | | | | | | | | | | | | This is a reconciliation/melding of Paul's (#4534) Class inheritance with parameterized classes is no longer ignored and Markus's Fix for #4778 -- evaluate parameterized classes when they are instantiated Extracted the code from Resource::Type#mk_plain_resource that evaluates parents and tags the catalog, and moved that into a new method called instantiate_resource. Instantiate_resource is now also called from Parser::Ast::Resource#evaluate, so that the notation "class { classname: }" now executes this code too. Likewise adds class evaluation so that it behaves the same (with regard to lazy / strict evaluation) as include classname
* Fix for #5022 -- Escaped newlines should be elidedMarkus Roberts2010-10-181-1/+2
| | | | | | | | | | | This was a regression, not covered by a test; previously the string "foo\ bar" would be interpreded as "foobar" but this was changed to "foo\\\nbar" in 2.6.x with my string interpolation refactor. This change restores the behaviour.
* Fix for #4832 -- Making PSON handle arbitrary binary dataMarkus Roberts2010-10-131-12/+5
| | | | | | | | | The PSON library needlessly assumed that the data to be transmitted was well- formed unicode. This made Latin-1 users (and anyone who needed to serialize arbitrary binary data) sad. This patch goes some of the way to resolving the issues, by passing through non-unicode data rather than just failing, adds tests, and cleans up a pernicious assumption about escape characters in ruby regular expressions not marked "n" (no-encoding).
* Minimal fix for #4975 -- only call chage when managing password age rulesMarkus Roberts2010-10-133-8/+11
| | | | | This is intended to be a minimal fix, with tests, to prevent chage from running unless needed.
* Fix for #4963 -- Use correct commands for password expiry on solarisMarkus Roberts2010-10-131-3/+3
| | | | | This fixes the command / option issues of #4963 as suggested on the ticket; the setting-expiry when not needed aspects are deferred to #4975.
* Reversion of 021d534482dd8edb863cb77d668ac3525362a0a6Markus Roberts2010-10-051-2/+1
| | | | This fix for #3707 was incorrect & just moved the problem (see #4929).
* Fixed #4919 - added parenths to fix error message:James Turnbull2010-10-021-1/+1
| | | | /usr/lib/ruby/site_ruby/1.8/puppet/util/metric.rb:62: warning: parenthesize argument(s) for future version
* Fixed documentation typoJames Turnbull2010-10-011-1/+1
|
* Fix for #4896 -- stray newline left over from removed diagnosticMarkus Roberts2010-09-301-1/+0
| | | | | A newline that was part of a diagnostic was left in, and this caused problems with the serialization of strings in "preserve newlines" mode.
* Fixes #4792 (Duplicate definition since 2.6.1 upgrade)Paul Berry2010-09-301-0/+1
| | | | | | | | | | | | | | | The evaluate_definitions method was first figuring out which resources needed to be evaluated (using unevaluated_resources), and then evaluating them one by one. As a result, if evaluating one resource triggered another resource to be evaluated, the latter resource could get evaluated twice. This bug could occur, for example, if both resources were classes that were included into the node by an external node classifier, and if the first of the two classes included the second. Modified Resource#evaluate to be idempotent. Also added an integration test to verify the fix.
* Adds #3046 - support for password min/max ageNick Lewis2010-09-296-13/+98
| | | | | | | This adds a new feature to user providers "manages_password_age", along with properties password_min_age and password_max_age to the user type. These represent password min and max age in days. The useradd and user_role_add providers now support these new properties.
* [#4783] (#4783) Fix RRDGraph report generationMatt Robinson2010-09-291-1/+1
| | | | | | | | The code made assumptions about report structure that weren't valid for 2.6.x. The change has been verified to work with 0.25.x and 2.6.x report formats. Paired with: Rein Henrichs
* Add user account expiry to the useradd type and providerDean Wilson2010-09-292-1/+25
|
* Fixed #4025 (failure in launchd if certain plists are binary).Paul Berry2010-09-291-9/+16
| | | | | | | | | | Modified the launchd provider to use OSX's "plutil" command to read plists. This allows it to handle properly lists in both XML format and binary format. Launchd continues to write out propertly lists in XML format. This is not a problem because the operating system is able to understand both formats.
* Fix for #4649 -- avoid unsupported features on non-posix systemsMarkus Roberts2010-09-281-11/+15
| | | | | | | | | MS Windows is apparently only "posix curious;" many of the usual fcntl flags are not defined when running under MS Windows. It also appears that we are only using a small subset of the vendored event-loop library and could replace it with a handful of (portable) extracted methods. This, however, would be too agressive of a refactor for 2.6.2 and so this commit simply avoids referring to the unsupported flag values in environments where they are not defined.
* Fix for 4273 -- revert b7e2580ab49ecdb67fc9b522829c005fc3750fbeMarkus Roberts2010-09-281-12/+0
| | | | | | The debugging information added in commit b7e2580ab49ecdb67fc9b522829c005fc3750fbe was not thread safe and, as it turns out, not as useful as had been hoped. This commit reverts it.
* Fix for #4804 -- escaped backslashes in interpolated stringsMarkus Roberts2010-09-281-1/+1
| | | | | | | | Part of the ongoing refinement / cleanup of the string interpolation semantics. When scanning for an unescaped string terminator we now also allow an 0 or more pairs of backslashes (that is, escaped backslashes) before the terminator. Thanks to Jacob for the test I should have added.
* Fixes #4863 (Missing "require 'webrick'" causes nondeterministic spec failures)Paul Berry2010-09-281-0/+1
| | | | Added a missing require to webrick/rest.rb.
* (#4860) Add regression tests that would have caught bad params methodMatt Robinson2010-09-281-5/+1
| | | | | This is another case where our test objects were overly mocked so they didn't alert us to problems with our implementation.
* (#4860) Fix wrong method name.. params seems to be renamed to parametersSimon Effenberg2010-09-281-1/+1
|