summaryrefslogtreecommitdiffstats
path: root/lib/puppet
Commit message (Collapse)AuthorAgeFilesLines
...
| * | 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>
* | | Merge branch 'next' of git://github.com/puppetlabs/puppet into nextMarkus Roberts2010-11-171-77/+57
|\ \ \
| * | | (#5079) Refactor and cleanup mcxcontent providerMatt Robinson2010-11-161-40/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a rework for diff clarity of a patch submitted by Sandor Szuecs <sandor.szuecs@fu-berlin.de> Reviewed-by: Paul Berry <paul@puppetlabs.com>
| * | | (#5079) Move methods around to make it clearer whether they're public or privateMatt Robinson2010-11-161-51/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One method was showing up as a private class method, which turns out isn't possible, so it got moved into the public section. This is a rework for diff clarity of a patch submitted by Sandor Szuecs <sandor.szuecs@fu-berlin.de> Reviewed-by: Paul Berry <paul@puppetlabs.com>
* | | | Merge branch 'ticket/next/4590' into nextMarkus Roberts2010-11-172-208/+224
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | Conflicts: lib/puppet/util/monkey_patches.rb -- two unrelated additions had been made, kept them both.
| * | | [#4590] SimpleGraph is slowPaul Berry2010-10-072-208/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrote SimpleGraph to use a more efficient internal representation. To preserve compatibility with older clients, graphs are still serialized to YAML using the format used by Puppet 2.6. However, a newer, more compact format can be enabled by setting "use_new_yaml_format" to true. Deserialization from YAML accepts either the old 2.6 format or the newer format. In a later release, once we no longer need to be compatible with 2.6, we will be able to switch to the new format. To make deserialization accept multiple formats, it was necessary to use the yaml_initialize method. This method is not supported in versions of Ruby prior to 1.8.3, so a monkey patch is included to add support for it to Ruby 1.8.1 and 1.8.2. Thanks to Markus Roberts for the SimpleGraph rewrite. Thanks to Jesse Wolfe for figuring out how to write the yaml_initialize monkey patch.
* | | | Merge branch 'feature/next/3747' into nextNick Lewis2010-11-111-0/+73
|\ \ \ \
| * | | | (#3747) Add specs for upstart providerNick Lewis2010-11-111-4/+1
| | | | | | | | | | | | | | | | | | | | Paired-With: Matt Robinson
| * | | | (#3747) Implement upstart providerNan Liu2010-11-111-0/+76
| | |_|/ | |/| |
* / | | Fix #4904 Mounts shouldn't remount unless they are ensure=>mountedJesse Wolfe2010-11-111-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After we fixed issue #2730, it is now possible to manage an fstab entry without asking puppet to try to call mount or unmount on that device. That fix failed to address the "refresh" behavior of mounts. We have changed "refresh" to only remount devices that are set to "mounted", so users can truly manage fstab entries without having puppet try to remount them. Paired-With: Paul Berry <paul@puppetlabs.com>
* | | Merge branch 'feature/master/5198' into nextPaul Berry2010-11-091-4/+6
|\ \ \
| * | | (#5198) add terabyte support to tidy type's size parameterGarrett Honeycutt2010-11-031-3/+4
| | | |
| * | | (#5198) add gigabyte reference to docs for tidy type's size parameterGarrett Honeycutt2010-11-031-3/+4
| | | |
* | | | Merge remote branch 'jamtur01/tickets/2.6.x/5108' into nextPaul Berry2010-11-091-0/+2
|\ \ \ \
| * | | | Fixed to #5108 - Change default of service hasstatus property to trueJames Turnbull2010-10-271-0/+2
| | | | |
* | | | | Merge commit '2.6.3rc2' into nextPaul Berry2010-11-097-22/+37
|\ \ \ \ \
| * \ \ \ \ Merge commit '2.6.3rc2' into nextPaul Berry2010-11-097-22/+37
| |\ \ \ \ \ | | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | Manually resolved conflicts: lib/puppet/parser/ast/resource.rb spec/unit/parser/ast/resource_spec.rb
| | * | | | 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.
* | | | Merge branch 'ticket/next/5150' into nextMatt Robinson2010-11-092-2/+19
|\ \ \ \ | |/ / / |/| | | | | | | | | | | * ticket/next/5150: (#5150) Make fact REST terminus configurable to connect to inventory service
| * | | (#5150) Make fact REST terminus configurable to connect to inventory serviceMatt Robinson2010-11-052-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Puppet masters can now set the inventory_server and inventory_port option to point to another puppet master that will function as the central inventory service. When agents connect to the puppet master, this will send fact data from the puppet master over REST to the inventory service. The puppet master itself will still store the client fact data in the local yaml dir by setting the cache class to yaml. Getting puppet masters to talk to each other using certs is difficult. Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* | | | Maint: Added missing requires to fileserver.rb.Paul Berry2010-11-091-0/+2
| | | |
* | | | maint: prevent fork bombs by disabling ActiveSupport's Kernel.daemonizeJesse Wolfe2010-11-091-0/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | ActiveSupport provides a "daemonize" method on all objects that causes the ruby process to fork to the background. This is extremely surprising and dangerous, and some of our spec tests could trigger this accidentally. This patch adds a "daemonize" method to Object which shadows the ActiveSupport version, preventing it from ever being called.
* | | Maint: Remove Indirector::Request objects from HTTP Handler and API V1Jesse Wolfe2010-11-024-36/+36
| | | | | | | | | | | | | | | | | | | | | This is a maintenance refactor to reduce the dependencies between the rest API and the implementation of the Indirector. The HTTP Handler code was creating temporary Request objects that were not actually being passed to the Indirector.
* | | (#5166) Inventory service is now searchable by timestamp.Paul Berry2010-11-011-0/+22
| | | | | | | | | | | | | | | It is now possible to specify queries in the form “meta.timestamp.xx” where xx is eq,ne,gt,lt,ge,le when searching the inventory service.
* | | Refactor Puppet::Node::Inventory::Yaml in preparation for adding freshnessPaul Berry2010-11-011-17/+29
| | |
* | | Fix #5164 Change Facts timestamp when they are received by the masterJesse Wolfe2010-11-012-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch causes the puppet master to re-timestamp facts when they are received by the catalog compiler terminus. This makes the timestamps more trustworthy, as it means that they are all based upon the same clock's time. Paired-With: Paul Berry <paul@puppetlabs.com>
* | | (#5132) Provide a query REST interface for inventoryMatt Robinson2010-10-287-3/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This REST interface returns a list of nodes that match a fact query. Fact queries can use (in)equality testing as a string comparison, and >, <, >=, <= numerical comparisons. Multiple tests can be done as AND comparisons, not OR. The fact queries need to be prefixed by facts, and the comparisons other than equality are specified with a .comparison_type after the fact name. This will be better explained in the REST documentation on the website. Searches that don't match anything now return empty array instead of a 404 error.
* | | (#5148) Add support for PSON to factsNick Lewis2010-10-281-0/+21
| | | | | | | | | | | | | | | | | | | | | Previously, facts could be fetched via the REST API in PSON, but came back as the to_s representation of a Ruby object, rather than as proper PSON data. This patch adds to_pson and from_pson to facts, so they can be properly used with PSON.
* | | Merge remote branch 'nigel/tickets/2.6.x/4382' into nextJesse Wolfe2010-10-181-1/+33
|\ \ \
| * | | Make --mkusers work on OS X, we now find unused uid/gids if unspecifiedNigel Kersten2010-10-111-1/+33
| | | | | | | | | | | | | | | | like other platforms.
* | | | Merge commit '2.6.3rc1' into nextJesse Wolfe2010-10-184-23/+19
|\ \ \ \ | | |/ / | |/| |
| * | | 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.
* | | Merge commit '2.6.2' into nextJesse Wolfe2010-10-122-3/+2
|\| |