summaryrefslogtreecommitdiffstats
path: root/lib/puppet
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix #2818 - scope variable assigned with undef are not "undef"Brice Figureau2009-12-291-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following manifest doesn't work: $foo = undef case $foo { undef: { notice("undef") } default: { notice("defined") } } This is because "undef" scope variable are returned as an empty string. This patch introduces a behavior change: Now, unassigned variable usage returns also undef. This might produce some issues in existing manifests, although care has been taken to allow correct behavior in the most commonly used patterns. For instance: case $bar { undef: { notice("undef") } default: { notice("defined") } } will print "undef". But matching undef in case/selector/if will also match "". case $bar { "": { notice("empty") } default: { notice("defined") } } will print "empty". Of course "" doesn't match undef :-) Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | Merge branch 'merge'Luke Kanies2009-12-2167-268/+488
|\ \
| * | Merge branch '0.25.x'Luke Kanies2009-12-2167-268/+488
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: lib/puppet/agent.rb lib/puppet/application/puppetd.rb lib/puppet/parser/ast/leaf.rb lib/puppet/util/rdoc/parser.rb
| | * Fixing #2857 (quote nesting error)Markus Roberts2009-11-241-1/+1
| | |
| | * Fixing #2791 fs_find should follow symlinksJesse Wolfe2009-11-251-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Symlinks confuse the "What file system am I on?" logic. This patch just runs the paths through a beefed up version of the standard 'realpath' method. Includes some of Markus's suggested changes. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Added additional documentation to file mode attribute.James Turnbull2009-11-251-1/+18
| | |
| | * Fixing 2792 selinux tries to set properties on unsupported filesystesJesse Wolfe2009-11-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Check that a specific file supports selinux properties before trying to set them. This patch is functionally identical to the one Darrell Fuhriman submitted with the bug report. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * fix regex for non-installed packagesBenedikt Böhm2009-11-231-1/+1
| | |
| | * Fixing 2812 authorized_keys without comments failJesse Wolfe2009-11-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is technically a duplicate of #1531, I think this change prevents the problem that appears in #2812, without touching the underlying issues of #1531. ssh_authorized_key was failing on keys in ~/.ssh/authorized_keys that lack a comment field - it would generate a Ssh_authorized_key resource with the name set to nil, which raises "ArgumentError: Field 'name' is required." Fixed by setting such keys' name fields to an empty string. This prevents the error from being raised and the authorized_keys files round-trip successfully. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Fix for ticket #2844 (file recursion generated vs. explicit prefix)Markus Roberts2009-11-211-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The routine which was determining if one path was a prefix of another in arbitrating between explicit and generated resources was using the raw string for the test without regard to path segments and thus could be fooled by pairs such as "/tmp/foo" vs. "/tmp/foo2" Fix was to be path delimiter aware and add a test. Signed-off-by: Markus Roberts <Markus@reality.com>
| | * Fix for ticket #2700 -- check for @explicit_waitforcert in puppetd --testMarkus Roberts2009-11-201-1/+1
| | |
| | * Fixed #1806 - supplementary groups are not resetJames Turnbull2009-11-202-3/+14
| | | | | | | | | | | | | | | | | | Patch thanks to Till Maas Signed-off-by: James Turnbull <james@lovedthanlost.net>
| | * Fix 2768 maillist resource is brokenJesse Wolfe2009-11-201-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace deprecated method call. This code was not tested before, so I've tried to capture what I think the method was trying to do. This version includes Luke's suggested change to better preserve the original behavior. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * simplify and fix portage providerBenedikt Böhm2009-11-191-27/+23
| | | | | | | | | | | | | | | | | | | | | * use easily parsable format string (fixes #1872) * only query stable packages, anything else cannot be installed anyway * fix withenv usage in class method self.instances * code cleanup & consistency
| | * Possible workaround for #2824 (MRI GC bug)Markus Roberts2009-11-1911-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a moderately ugly workaround for the MRI garbage collection bug (see the ticket for details). I explored several other potential solutions (notably, monkey patching the routines that trigger the bug) but none of them were satisfactory. Monkey patching sub, gsub, sub!, gsub!, etc., for example, either changes the scoping of $~, $1, etc. in a way that could potentially subtly change the meaning of programs or (if you are clever) faithfully reproduces the behaviour of MRI--including the memory leak. I decided to go with the standardized and somewhat obnoxious never- used optional argument as it was easy to automatically insert and should be even easier to automatically find and remove if a better fix is developed. It also should be obtrusive enough to escape accidental removal in refactoring.
| | * Fixing #2789 puppetrun fails without --tagJesse Wolfe2009-11-192-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Puppet::Transaction was handling "tags" strings differently depending on whether they came in from Puppet[:tags] or another source. This was causing puppetrun's tags to be misparsed if there was not exactly one --tag parameter. I've moved the code to Util::Tagging.
| | * Fixing 904 RDoc::usage incompatible with rubygemsJesse Wolfe2009-11-191-0/+8
| | | | | | | | | | | | | | | | | | | | | Monkey-patch workaround for RDoc so it doesn't get confused by rubygems stub executables. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * rack: SSL Env vars can only be in Request.envChristian Hofstaedtler2009-11-183-26/+8
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c702f76b271515e9c42dcb923d379fbfac4c83cd and turns it into a documentation only fix. As it turns out, ENV should have never been used at all, as the Rack docs say nothing about it *and* Passenger's behaviour in 2.2.3 + 2.2.4 was completely broken and still is half-way broken in 2.2.5 (but is OK with the Rack specs).
| | * Fix #2671, preferred_serialization_format does not complain about invalid valuesBruce Williams2009-11-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This modifies `supported_formats` to warn when the `preferred_serialization_format` setting is invalid (and ignored in favor of the default value). I built the tests for this behavior alongside the existing FormatHandler tests for *valid* `preferred_serialization_format` values (and did some restructuring to extract common setup code to `before` blocks). Signed-off-by: Bruce Williams <bruce@codefluency.com>
| | * Fixing #2764 ActiveRecord 2.1 supportJesse Wolfe2009-11-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suprisingly, I found that setting allow_concurrency made the "MySQL server has gone away" stop occuring even if the MySQL server drops connections. This may be the only change needed to restore compatibility with ActiveRecord 2.1.x Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Fix #2810 - adapt tidy to new FileSet apiBrice Figureau2009-11-171-2/+9
| | | | | | | | | | | | | | | | | | | | | In #1469 we changed the FileSet internal api and missed that tidy was still using the old version. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fixed ldap typo againJames Turnbull2009-11-151-1/+1
| | |
| | * Fix #2783 - Puppetdoc rdoc should use environment to get modulepath/manifestdirBrice Figureau2009-11-151-2/+3
| | | | | | | | | | | | | | | | | | | | | Puppetdoc wasn't using the current environment to find the correct modulepath and manifestdir. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Add Environment#manifestdir and small refactoringBrice Figureau2009-11-151-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | This adds a new environment cached attribute: manifestdir. It is modeled on the code of modulepath, but returns the manifestdir. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Least kludgy patch for #2675Markus Roberts2009-11-146-41/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes parameters responsible for the canonicalization of their values and provides a default (passthrough) implementation. It changes munge to pre- canonicalize the value and resource references to builtin types to canonicalize titles (which map to resorce namevars) with the corresponding parameter's classes's canonicalization. It adds a canonicalization routine to file paths that normalizes the behaviour (trailing slashes are ignored) and DRYs up the related code. Signed-off-by: Markus Roberts <Markus@reality.com>
| | * Fix for #2661 and related issuesMarkus Roberts2009-11-134-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If setup code for a process depends on network connectivity it needs to be protected with a rescue clause as much as the main body of the process. Further, Timeout exceptions aren't under StandardError and thus aren't caught by an un-typed rescue clause. This doesn't matter if we've morphed the exception, but will cause the program to fail if we haven't. There are many places where these concerns _might_ cause a problem but in most cases they never will in practice; this patch addresses the five cases where I have been able to confirm that it actually can cause the client daemon to exit and two more where I suspect (but can not prove) that it could. This is an extension of the prior patch to cover additional cases found by automated testing (repeated catalog runs with a 1% chance of timeout forced on all timeout-bound operations, ~5000 runs). The new cases recurred multiple times (>100 each) and in a final pass with these corrected (~2500 runs) no additional cases were found.
| | * Fixing 2806 Specifying multiple tags fails to apply any of themJesse Wolfe2009-11-132-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix code that was passing an Array of code to a method that was expecting a single tag. Includes Markus's suggestions Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Updated generate function documentation to make it clear it runs on the masterJames Turnbull2009-11-131-2/+2
| | |
| | * Fix #2681 Incorrectly duplicating resourcesRein Henrichs2009-11-131-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that resources whose refs are included in the catalog are skipped to avoid duplication. * Refactor to avoid early bailout on resources that cannot be ensured absent. * Remove check for managed? in generate Checking if a resource is managed is unnecessary when checking for its inclusion in the catalog. * Add test coverage for Puppet::Type::Resources#generate
| | * Ticket #2770 (deserializing Exec[...]s with "\n"s)Markus Roberts2009-11-123-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The resource reference logic wasn't handling resources with "\n"s in their namevars gracefully, and detection of this was complicated by infelicitous exception reporting. Note that this patch will require a merge when combined with the patch for #2657. Signed-off-by: Markus Roberts <Markus@reality.com>
| | * Fixing #2767 invoke-rc.d warningsJesse Wolfe2009-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Errors written to STDERR by Debian's invoke-rc.d are spurious, since we're only using it to query whether a service can be started. I'm adding the --quiet flag to suppress those messages. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Fix #2797 - tags are not inherited by recursed file sub childBrice Figureau2009-11-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This problem affects all types that generate sub-resources at evaluation or pre-transaction time. Thus it is fixed in the transaction, where we make sure we assign all parent tags to the generated child resource. A more correct fix would be to make sure we copy the whole context (ie file, line, version, tags). This fix is planned for Rowlf. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fix #2784 - puppetdoc/rdoc didn't parse mono-instruction class contentBrice Figureau2009-11-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | class klass { include a, b, c } wasn't producing any rdoc documentation. We were thinking code was always embedded in an array which is not the case for mono-instruction code. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fix #2796 - Fix puppetdoc rdoc selector parsingBrice Figureau2009-11-124-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fix this bug by adding more to_s methods to ast member so that puppetdoc can just to_s the AST to reconstruct the original puppet code. Of course this is not perfect, but should work most of the time. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fix #2795 - puppetdoc rdoc reports a better error messageBrice Figureau2009-11-121-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When puppetdoc rdoc dies with an unhandled exception, the error message produced didn't mention the file and line where the parser choked. This patch fixes this by trying to locate on which AST structure the rdoc system failed. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fixing #2631 show_diff sometimes doesn't happenJesse Wolfe2009-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a code-path in Puppet::Type::File::Content#insync? that was failing to show a diff when the content's source came from a template. I was only able to reproduce one of the two such failures that Malcolm Howe reported, but I think it's likely that they were both caused by this same bug. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Fix #2787 - Storeconfig doesn't store/update node ip and environment anymoreBrice Figureau2009-11-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since the storeconfig refactoring (ie moving the catalog storeconfig system under the indirector) in 0.25 we lost the capability to store the node ip and node environment name. This patch restores this feature. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Fix for #2670, Puppet silently ignores catalog_formatBruce Williams2009-11-061-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since "preferred_serialization_format" was introduced, the older "catalog_format" setting (yaml|marshal), when provided, has been silently ignored and the default for "preferred_serialization_format" used. This re-introduces "catalog_format," logs a deprecation notice, and passes on any provided value to "preferred_serialization_format." Signed-off-by: Bruce Williams <bruce@codefluency.com>
| | * Fix #2757 & CSR 92 (symlinks in recursively managed dirs)Markus Roberts2009-11-054-8/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fundemental problem was that, despite what the comment said, the early bailout for file content management only applied to directories, not to links. Making links bail out at as well fixed the problem for most users. However, it would still occur for users with mixed ruby version system since there were no to_/from_pson methods for file metadata. So the second (and far larger) part of this patch adds metadata pson support. The testing is unit level only, as there's no pratical way to do the cross-ruby-version acceptance testing and no benifit to doing "integration" testing short of that. Signed-off-by: Markus Roberts <Markus@reductivelabs.com>
| | * Fix #2769 - default schedule are not definedBrice Figureau2009-11-051-0/+1
| | | | | | | | | | | | | | | | | | | | | It seems we never finalize the catalog, so the various default resources are never created including the default schedules. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Al Hoang's patch for #2781, removing obsolete when/: syntaxMarkus Roberts2009-11-052-9/+9
| | | | | | | | | | | | | | | | | | This is just Al's patch with removal of trailing ";"s. Signed-off-by: Markus Roberts <Markus@reality.com>
| | * Fixing #2689 - file owner warnings are reducedLuke Kanies2009-10-271-4/+7
| | | | | | | | | | | | | | | | | | | | | We now only warn when there's an actual change to make, and we only make one warning per process run. Signed-off-by: Luke Kanies <luke@madstop.com>
| | * Fixing #2752 - "require" loads "include"Luke Kanies2009-10-261-1/+4
| | | | | | | | | | | | Signed-off-by: Luke Kanies <luke@madstop.com>
| | * Fixed typo in lib/puppet/indirector/ldap.rbJames Turnbull2009-10-271-1/+1
| | |
| | * Fix #2753 - Do not "global allow" plugins/modules mount if some rules have ↵Brice Figureau2009-10-272-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been parsed When fixing #2424, we were adding a global allow (ie allow(*)) to the plugins/modules mount. Unfortunately global allow always win against any other rules that can be defined in fileserver.conf. This patch makes sure we add those global allow entries only if we didn't get any rules from fileserver.conf Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| | * Re-fixed #2750 - Stop disabling the CRL or checking for a disabled CRLJohn A. Barbuto2009-10-274-18/+1
| | | | | | | | | | | | | | | | | | This was deprecated in commit 1cfb0215 and was keeping puppetd from starting in listen mode. Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>
| | * Revised partial fix for #2661 and related issuesMarkus Roberts2009-10-274-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If setup code for a process depends on network connectivity it needs to be protected with a rescue clause as much as the main body of the process. Further, Timeout exceptions aren't under StandardError and thus aren't caught by an un-typed rescue clause. This doesn't matter if we've morphed the exception, but will cause the program to fail if we haven't. There are many places where these concerns _might_ cause a problem but in most cases they never will in practice; this patch addesses the two cases where I have been able to confirm that it actually can cause the client daemon to exit and two more where I suspect (but can not prove) that it could. I'd be willing to push this patch as it stands, as it at least fixes demonstrable problems. A more general solution would be nice.
| | * Bug #2534 Raise error if property appears twiceJesse Wolfe2009-10-271-0/+6
| | | | | | | | | | | | | | | | | | | | | This patch changes Puppet::Parser::Resource to check if it has been passed two Puppet::Parser::Resource::Param objects with the same name. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Bug #1908 cron environment should allow empty valsJesse Wolfe2009-10-271-1/+1
| | | | | | | | | | | | | | | | | | Change regexp to allow cron environment => "MAILTO=" Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
| | * Bug #1742 Invalid params to --color outputs 'nil'Jesse Wolfe2009-10-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patches fixes a bug where setting an invalid option for "--color" caused the word "nil" to be printed on every line of the log, instead of printing out log messages. Invalid color options now just produce uncolored output. It seems to me that this isn't important enough to issue a warning about an invalid setting. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>