summaryrefslogtreecommitdiffstats
path: root/lib/puppet
Commit message (Collapse)AuthorAgeFilesLines
* Fixes #3745 Catch unhandled exception in ssh_authorized_key providerSean Millichamp2010-02-171-1/+5
| | | | | | | | | | | If the target is not specified it is automatically set to the user's home directory. If the user does not exist when the generation of the target path occurs then an ArgumentError exception is raised but not caught. This patch catches the ArgumentError and raises a Puppet::Error instead to more gracefully notify the user and allow any remaining resources to be applied. Signed-off-by: Sean Millichamp <sean@bruenor.org>
* Fixed #3721 - Removed -u option from crontab on HP-UXJames Turnbull2010-02-171-1/+1
|
* Fixes #3663 - It should be possible to list signed hosts onlyJames Turnbull2010-02-172-2/+10
| | | | Adds a --signed option to the --list feature that only displays signed certificates
* Fixing #448 - relationships have their own syntaxLuke Kanies2010-02-177-1760/+1845
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You can now specify relationships directly in the language: File[/foo] -> Service[bar] Specifies a normal dependency while: File[/foo] ~> Service[bar] Specifies a subscription. You can also do relationship chaining, specifying multiple relationships on a single line: File[/foo] -> Package[baz] -> Service[bar] Note that while it's confusing, you don't have to have all of the arrows be the same direction: File[/foo] -> Service[bar] <~ Package[baz] This can provide some succinctness at the cost of readability. You can also specify full resources, rather than just resource refs: file { "/foo": ensure => present } -> package { bar: ensure => installed } But wait! There's more! You can also specify a subscription on either side of the relationship marker: yumrepo { foo: .... } package { bar: provider => yum, ... } Yumrepo <| |> -> Package <| provider == yum |> This, finally, provides easy many to many relationships in Puppet, but it also opens the door to massive dependency cycles. This last feature is a very powerful stick, and you can considerably hurt yourself with it. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fix #3408 - enable puppetd http compressionBrice Figureau2010-02-174-8/+132
| | | | | | | | | | | | | | | | | | | | | | | This patch adds HTTP response decompression (both gzip and deflate streams). This feature is disabled by default, and enabled with --http_compression. This feature can be activated only if the local ruby version supports the zlib ruby extension. HTTP response decompression is active for all REST communications and file sourcing. To enable http compression on the server side, it is needed to use a reverse proxy like Apache or Nginx with adhoc configuration: Nginx: gzip on; gzip_types text/pson text/json text/marshall text/yaml application/x-raw text/plain; Apache: LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so AddOutputFilterByType DEFLATE text/plain text/pson text/json text/marshall text/yaml application/x-raw Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix for conflict between fileserving streams and none-checksumsMarkus Roberts2010-02-171-0/+4
| | | | | | | | | | This was a classic semantic merge conflict; one patch adds a new type of checksum, with a routine to compute it on files; the other adds streams with routines to compute all the existing checksum types on them. They merge cleanly but theresult is incorrect. This patch completes the square by adding a none_stream routine to not-compute a checksum on a stream.
* Fix #3373 - Client side file streamingBrice Figureau2010-02-176-43/+135
| | | | | | | | | | This patch moves file content writing to the content properties and always write (or read) contents by chunks. This reduces drastically puppetd memory consumption when handling large sourced files. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Add master side file content streamingBrice Figureau2010-02-174-7/+43
| | | | | | | | | This patch allows the puppetmaster to serve file chunks by chunks without ever reading the file content in RAM. This allows serving large files directly with the master without impacting the master memory footprint. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixes incorrect line in partial CRL fixJames Turnbull2010-02-171-1/+0
|
* WIP - trying to fix #3460Luke Kanies2010-02-174-3/+6
| | | | | | | | Signed-off-by: Luke Kanies <luke@puppetlabs.com> Conflicts: lib/puppet/ssl/host.rb
* Updated Template documentation linkJames Turnbull2010-02-171-3/+3
|
* Feature #2276 Single Executable: usage messageJesse Wolfe2010-02-171-1/+1
| | | | | | The usage message should show the single-executable variant of commands. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: optparser should get CommandLine#args ↵Jesse Wolfe2010-02-171-19/+24
| | | | | | instead of ARGV Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Feature #2276 Single Executable: Pass a commandline object to the applicationJesse Wolfe2010-02-178-13/+14
| | | | | | Refactor so that the command line options only get parsed once Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Refactor #3706 Reify eigenclasses of ApplicationsJesse Wolfe2010-02-1711-189/+156
| | | | | | | | | | The Puppet::Application DSL is complicated by the fact that it operates on eigenclasses of instances of Puppet::Application, rather than subclassing it. This patch reifies the eigenclasses as subclasses of Puppet::Application. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: CommandLine can be instantiatedJesse Wolfe2010-02-171-1/+43
| | | | | | refactor CommandLine to be an object Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: subcommand methodJesse Wolfe2010-02-1710-38/+66
| | | | | | Extract the logic to determine the subcommand name into a method. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: help for applyJesse Wolfe2010-02-171-0/+1
| | | | | | restore the help text for the apply command Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: rdoc paths on ubuntuJesse Wolfe2010-02-171-2/+2
| | | | | | | on ubuntu, --help was failing to find the path to the old executables, which still contain the rdoc help message Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: legacy settingsJesse Wolfe2010-02-171-1/+14
| | | | | | | | Puppet's defaults change depending on which command invokes them. This patch makes sure that we use the maintain the current behavior. This is a temporary fix until I implement feature #2935. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: "puppet describe"Jesse Wolfe2010-02-171-1/+1
| | | | | | Add "puppet describe" as the new invocation of "pi" Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: "puppet kick"Jesse Wolfe2010-02-171-1/+1
| | | | | | Add "puppet kick" as the new invocation of "puppetrun" Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: "puppet cert"Jesse Wolfe2010-02-171-1/+1
| | | | | | Add "puppet cert" as the new invocation of "puppetca" Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* feature #2276 Single Executable: "puppet master"Jesse Wolfe2010-02-171-2/+2
| | | | | | Add "puppet master" as the new invocation of "puppetmasterd" Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fix #3552 single executable should display usageJesse Wolfe2010-02-172-7/+5
| | | | | | | | | Added some tests to make the single executable command behavior explicit. Added logic to display the usage message if we're on a tty and no arguments are passed. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixes #3702: the 'log' report now sends the host name as the log source again.Paul Lathrop2010-02-171-0/+1
|
* Fix for #3690 failing to calculate error codesJesse Wolfe2010-02-174-3/+5
| | | | | | | | | | | | | | | | | | | | | This failure was getting caused by what I believe to be a bug in Puppet::Configurer where it always generated a new Puppet::Transaction::Report, even if one existed in an outer scope. In puppetd --test, a different Report was getting queried to generate the exit status than the one that was passed to the transaction -- this Report had no Metrics and would fail when queried. This obscured a second bug that Metrics could return nil for values if the Transaction had applied an empty Catalog, but Transaction::Report assumes that values will always be integers. It could be argued that an empty Report should be populated with empty Metrics before a Transaction is run, which would have prevented Report#exit_status from raising an exception ... which would have made these bugs much harder to track down. So, I've decided to leave that unchanged. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixing #3668 - fixed autoloading classes from modulesLuke Kanies2010-02-175-872/+895
| | | | | | | | | | | This involved essentially moving all of the importing and loading code out of the Parser and into a new 'TypeLoader' class. The parser and the ResourceTypeCollection classes now delegate to that class for all file handling. Most of the code paths are also now much cleaner, and a bit of redundancy was removed. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fix #3656 JSON serialization of dependenciesJesse Wolfe2010-02-171-1/+5
| | | | | | | | | | | | | | | | | | | | The pson serialization of resources was behaving incorrectly on parameters that are references to other resources: 1. Dependency parameters (require, subscribe, notify) were getting serialized as anonymous objects that looked like partially constructed resources 2. During de-serialization the pson parser would inflate them into hashes (rather than into resources) 3. The outer resource would try to coerce the hash into a resource by passing it to Resource.new 4. Resource.new would fail with a cryptic message, since it does not accept a hash as its first parameter (but the error is obfuscated by Resource.new's complicated argument handler) This patch solves the problem by explicitly converting dependency parameters into strings in the pson serialization. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixes #3582 - Adds dbport configuration option for specifying database portJames Turnbull2010-02-172-0/+3
|
* Adding indirector support to Resource TypesLuke Kanies2010-02-174-0/+73
| | | | | | | | | | Also adding JSON support. This is so that we can remotely retrieve information about resource types and classes, such as what arguments are required. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fix #3552 single executable should display usageJesse Wolfe2010-02-171-0/+15
| | | | | | | | | Added some tests to make the single executable command behavior explicit. Added logic to display the usage message if we're on a tty and no arguments are passed. Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Added support for flat packages in the pkgdmg package provider.Roy Nielsen2010-02-171-21/+28
| | | | | | | | | | | | | | Added a test in: ./spec/unit/provider/package/pkgdmg.rb To test flat package support. The case where a package is a .pkg bundle, curl will attempt to download and not work. The "installer" command will then fail, as the source will be "not found" and the resource will fail. The puppet run will continue. Signed-off-by: Roy Nielsen <rsn@lanl.gov>
* Fix: the rcvar name is not necessarily the same as the service name. (More ↵Anselm Strauss2010-02-171-16/+39
| | | | and more I get the feeling that FreeBSD's rc system is totally unsuitable for Puppet. What about porting Upstart or SMF to FreeBSD ... ?)
* Added proper status commandAnselm Strauss2010-02-171-0/+4
|
* Re-included old BSD service provider, made new one default for FreeBSDAnselm Strauss2010-02-172-1/+56
|
* Rewrote FreeBSD service providerAnselm Strauss2010-02-171-39/+94
|
* Fixed documentation issues exposed in #3772James Turnbull2010-02-171-4/+4
|
* Renamed all references to Reductive Labs to Puppet LabsMarkus Roberts2010-02-172-2/+2
| | | | Find and replace to the rescue...
* Fix for #3107 Changing users on AIXMarkus Roberts2010-02-171-18/+4
| | | | | | | | | | | | | | There are several issues with changing the real, effective, and saved group and user ids in different environments (which methods to call, in what order, etc). While the code being replaced by this patch appeared to work for Linux, Solaris, and (with a special case test) Darwin; it was failing under AIX and may have had edge-case problems under the others. Ruby back to 1.8.1 has supported a higher level interface that deals with the problem and captures a broader range of OSes; it's a single call for group and one for user--the details of rid/eid/svid, etc ordering are handled internally. Switching to that simplifies our code and should improve/unify our support of various OSes.
* Fixing #2864 Added support for AIX System Resource Controller (SRC) - ↵Andrew Forgue2010-02-171-0/+91
| | | | | | | | | | | | | service start stop This provider supports start/stop and restart of AIX services using the native AIX service manager, called the System Resource Controller. Currently it will not stop and start (but only refresh) a service that uses sockets or message queues as its communication method. It will run stopsrc and then startsrc for services that use signals as their communication method. Signed-off-by: Andrew Forgue <andrew.forgue@gmail.com>
* Fixes #2836. Add hold support to dpkg providerNigel Kersten2010-02-172-2/+41
|
* Fixes #1223 Add Zypper support for SuSE machinesRein Henrichs2010-02-171-0/+52
| | | | | | | | | | | | | | | | | | | Zypper is the replacement for `rug' from earlier SuSE releases. Zypper is backward compatible with the rug command (mostly) and supports most of the same commands that rug does. This version fixes a number of bugs in the original: * when installing with a specified version, fix bug where the package name was being doubled ("foo" became "foofoo"). * fix bug where package name and version were separated by a "=" when it should have been a "-". * Update specs to reflect the implementation's use of the "-l" flag as recommended in http://groups.google.com/group/puppet-dev/msg/d86416c079bd3faf Signed-off-by: Rein Henrichs <reinh@reinh.com>
* Fix for #3399 zone type should handle exclusive IP stacksRein Henrichs2010-02-172-30/+80
| | | | | | | | | | * corrected missing status * added cloning and support for default router * RH: Fix spec to return accurate value for @resource[:clone] * RH: Add spec for untested install case when @resource[:clone] returns a (non-falsy) value Signed-off-by: Rein Henrichs <rein@puppetlabs.com>
* Adding #3518 - basic dot format supportLuke Kanies2010-02-171-0/+3
| | | | | | | This allows you to ask for a node's catalog in dot format, for inputting into graphviz et al. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
* Fixing #3533 - Removing all transaction cleanupLuke Kanies2010-02-172-15/+0
| | | | | | | | | | It's really slow and has no actual functionality any more, since we just remove the catalogs from memory anyway. This should be a good speed boost for very little effort. Signed-off-by: Luke Kanies <luke@puppetlabs.com>
* Fix for #2910 -- Tidy/matches is too tricky to useMarkus Roberts2010-02-171-29/+35
| | | | | | | | | | | | | The semantic interaction of tidy/matches and tidy/recurse is tricky to get right; it only makes sense to use matches with recursion (a fixed path will either statically match or it won't, no need for a run-time check) but there was nothing to warn users of this fact. To compound matters, the example in the matches parameter doc string even made this mistake. This patch: 1) fixes the doc string; 2) prohibits the use of match without a value of recurse capable of generating files to match, 3) fixes tests that were passing for the wrong reason and adds tests on the prohibition added in (2).
* Bug #3451: Don't leak the terminus class setting from ↵Jesse Wolfe2010-02-171-0/+4
| | | | | | | Puppet::Resource::Catalog's spec This issue causes other specs to fail, because they depend on the default terminus being unchanged.
* Fix to the fix for #3295Markus Roberts2010-02-171-6/+2
| | | | | | The output variable in the inner block wasn't visible in the outer block, and wasn't needed in any case, since the results are returned naturally if you just leave everything alone.
* Write ssh_authorized_keys as userMarkus Roberts2010-02-171-29/+9
| | | | | | | | | | | | This is a targeted fix to the issue of permissions when writing ssh authorized key files by 1) requiring that an existing users be specified on the resource and 2) doing the write as that user. It's based on Michael DeHaan's initial implementation of Luke's idea, but with a number of simplifications (mostly by testing necessary conditions as early as possible so the code isn't cluttered up with a lot of checks). The tests in this version are modified slightly to remove some additional implementation couplings that were added in master.