summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* (#6689) Make inventory_active_record terminus search quicklyNick Lewis2011-03-114-22/+16
| | | | | | | | This terminus behaves the same on all supported DB platforms, by performing a limited portion of its query in SQL, and the rest of the comparison in Ruby. Its results are consistent with the YAML terminus. Paired-With: Jesse Wolfe
* Merge branch 'ticket/2.6.next/5392' into 2.6.nextMatt Robinson2011-03-091-4/+5
|\ | | | | | | | | * ticket/2.6.next/5392: (#5392) Give a better error when realizing a non-existant resource
| * (#5392) Give a better error when realizing a non-existant resourceMatt Robinson2011-03-091-4/+5
| | | | | | | | | | | | | | | | | | | | | | You can reproduce the error with a simple manifest Bogus_type <| title == 'foo' |> We used to fail because find_resource_type returned nil and we never checked if it was nil before calling methods on it. Reviewed-by: Max Martin <max@puppetlabs.com>
* | Merge branch 'tickets/2.6.x/2645' into 2.6.nextJesse Wolfe2011-03-092-1/+17
|\ \
| * | Fixed #2645 - Added support for creating system usersJames Turnbull2011-03-092-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Red Hat, Ubuntu, Debian and deriatives the -r flag allows creation of "system" users with a UID below that defined in /etc/login.defs. This commit adds support for a system parameter and a system_users feature which can be used like so: user { "foo": system => true, ensure => present, } This will create a user with a lower UID. The system parameter defaults to false.
* | | Merge branch 'maint/2.6.next/6338' into 2.6.nextNick Lewis2011-03-095-44/+40
|\ \ \ | |_|/ |/| |
| * | maint: Remove serialization of InventoryFact valuesNick Lewis2011-03-092-4/+0
| | | | | | | | | | | | | | | This is not necessary because fact values are always strings, and it wasn't doing the unnecessary job it was expected to do anyway.
| * | maint: Rename InventoryHost to InventoryNodeNick Lewis2011-03-095-40/+40
| | | | | | | | | | | | This had been conflating hosts and nodes, when nodes is the most accurate.
* | | maint: Remove spec run noiseMatt Robinson2011-03-081-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some warnings and stack traces in the spec output that aren't necessary. The only interesting fix is of the message: lib/puppet/module.rb:79 warning: multiple values for a block parameter (0 for 1) from lib/puppet/util/logging.rb:30 If you call any form of logging on a module you end calling the file method on the module just because logging always checks for that method and calls it if it's defined, but in this case it's not defined in the way that logging expected so passes the wrong paramters. The easy solution is just to call logging on Puppet, which makes sense in this case anyway, and I don't think it's worth a separate ticket to deal with that logging warning. Reviewed-by: Nick Lewis <nick@puppetlabs.com>
* | Merge branch 'ticket/2.6.next/6338' into 2.6.nextNick Lewis2011-03-085-0/+191
|\ \
| * | (#6338) Support searching on metadata in InventoryActiveRecord terminusNick Lewis2011-03-081-7/+35
| | | | | | | | | | | | | | | | | | | | | Timestamps are currently the only supported metadata for searching. Paired-With: Max Martin Reviewed-By: Jacob Helwig
| * | (#6338) Implement search for InventoryActiveRecord facts terminusNick Lewis2011-03-082-0/+60
| | | | | | | | | | | | | | | Paired-With: Max Martin Reviewed-By: Jacob Helwig
| * | (#6338) Add an InventoryActiveRecord terminus for FactsNick Lewis2011-03-085-0/+103
| | | | | | | | | | | | | | | | | | | | | | | | So far this terminus only supports find and save. Search is forthcoming. It uses two new tables (inventory_host and inventory_facts) so that it won't interact with storedconfigs. Paired-With: Jacob Helwig
* | | Merge branch 'tickets/2.6.next/5794-create-report-parentdir' of ↵Jacob Helwig2011-03-081-1/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | git://github.com/vvitayaudom/puppet into 2.6.next * 'tickets/2.6.next/5794-create-report-parentdir' of git://github.com/vvitayaudom/puppet: (#5794) create reports directory when creating host specific directory
| * | | (#5794) create reports directory when creating host specific directoryValdis Victor Vitayaudom2011-03-051-1/+4
| | | |
* | | | (#6513) Propagate the environment when doing variable lookup in settingsJacob Helwig2011-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example with the following: test.conf: [master] rrddir = /var/lib/puppet/rrd templatedir = /var/lib/puppet/templates [env_a] templatedir = $rrddir/templates rrddir = /tmp/env_a/ The command: RUBYLIB=lib bin/puppet master --config ./test.conf --environment env_a --configprint templatedir originally produced '/var/lib/puppet/rrd/templates' instead of the expected '/tmp/env_a/templates' Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>
* | | | (#6632) Adding a new mount no longer causes error with umountPaul Berry2011-03-082-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were two problems: * In lib/puppet/type/mount.rb, we were calling provider.mounted? to determine whether we needed to execute "mount" after updating the in-memory fstab record. This wasn't working properly because provider.mounted? makes its decision based on the data stored in the in-memory fstab record. Since the fstab record had just been updated, provider.mounted? was incorrectly returning true even though the device wasn't actually mounted. Fixed this by checking provider.mounted? before updating the in-memory fstab record. * Calling mount from this point in lib/puppet/type/mount.rb is actually too early, because even though the in-memory fstab record has been created, its contents have not been written to `/etc/fstab` yet. Fixed this by storing a :needs_mount entry in the property_hash and checking it at the end of the flush() method. Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
* | | | Maint: Added the ability to replace the behavior ofPaul Berry2011-03-072-0/+31
|/ / / | | | | | | | | | | | | | | | | | | Puppet::Util.execute with an arbitrary code block for ease in spec testing. Reviewed-by: Max Martin <max@puppetlabs.com>
* / / (#6606) Inline docs: Document all autorequire relationshipsnfagerlund2011-03-0411-11/+41
|/ / | | | | | | This patch appends **Autorequires:** notes to the @doc string of every type whose instances can autorequire other resources. This will put autorequire info right on the types reference where it can do the most good.
* | (#5148) Add support for PSON to factsNick Lewis2011-03-041-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 branch 'ticket/2.6.next/6581' into 2.6.nextNick Lewis2011-03-034-89/+75
|\ \
| * | (#6338) Remove inventory indirection, and move to facts indirectionNick Lewis2011-03-034-89/+75
| | | | | | | | | | | | | | | | | | | | | | | | The inventory indirection was just providing the search method for facts. Because the route is now facts_search instead of inventory, it can just be implemented as the search method for facts. Reviewed-By: Daniel Pittman
* | | (#6445) Fix inline docs: puppet agent does not accept --mkusersBen Hughes2011-03-031-1/+1
|/ / | | | | | | | | Inline documentation in lib/puppet/reference/configuration.rb stated that puppet agent accepted the --mkusers flag, which is only intended for use with puppet master.
* | Merge branch '2.6.x' into 2.6.nextJacob Helwig2011-03-021-1/+1
|\| | | | | | | | | | | | | * 2.6.x: Update CHANGELOG and version for 2.6.6rc1 (#6541) Fix content with checksum truncation bug (#6418) Recursive files shouldn't be audited
| * Update CHANGELOG and version for 2.6.6rc1Jacob Helwig2011-03-021-1/+1
| |
| * (#6541) Fix content with checksum truncation bugMatt Robinson2011-03-021-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch for #6107 fd73874147a1aaa3a047f904a0bc1ae67780a2e4 introduced a bug when content was an invalid checksum. Rather than error the checksum was invalid, it would overwrite the file with empty string, essentially truncating it. The problem with #6107 is that when I wrote it, I didn't realize that the content parameter was munged to be nil when it was a checksum, and then chunking method special cased nil content to mean you should check the filebucket. #6107 intended to fix the case where content REALLY WAS nil, and handle that by returning an empty string. This patch fixes it so that we check to see if we really passed in a checksum when chunking, and only then going to the filebucket. Surprisingly it is possible to have a content checksum should value set from source, so we have to be careful not to assume the use of the filebucket whenever there's a checksum. The following manifest produces this situation: file { "/tmp/mydir" : source => '/tmp/sourcedir', recurse => true, } I've said it before, and sure I'll say it again, but long term the file provider really needs a refactor. I'll write some acceptance tests for file behavior right after committing this so that the refactoring will be easier. Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
| * (#6418) Recursive files shouldn't be auditedJesse Wolfe2011-03-021-14/+0
| | | | | | | | | | | | | | | | | | | | | | A vestigial codepath was accidentally made live again when 2.6.0's audit parameter was added. This patch removes that code. As it's very difficult to write a meaningful unit test of a negative case, a test will be added to the acceptance test project to confirm before & after behavior for this fix. Reviewed-By: Markus Roberts <markus@puppetlabs.com>
* | (#6541) Fix content with checksum truncation bugMatt Robinson2011-03-021-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch for #6107 fd73874147a1aaa3a047f904a0bc1ae67780a2e4 introduced a bug when content was an invalid checksum. Rather than error the checksum was invalid, it would overwrite the file with empty string, essentially truncating it. The problem with #6107 is that when I wrote it, I didn't realize that the content parameter was munged to be nil when it was a checksum, and then chunking method special cased nil content to mean you should check the filebucket. #6107 intended to fix the case where content REALLY WAS nil, and handle that by returning an empty string. This patch fixes it so that we check to see if we really passed in a checksum when chunking, and only then going to the filebucket. Surprisingly it is possible to have a content checksum should value set from source, so we have to be careful not to assume the use of the filebucket whenever there's a checksum. The following manifest produces this situation: file { "/tmp/mydir" : source => '/tmp/sourcedir', recurse => true, } I've said it before, and sure I'll say it again, but long term the file provider really needs a refactor. I'll write some acceptance tests for file behavior right after committing this so that the refactoring will be easier. Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
* | (#5466) Monkey patch Symbol so that you can sort themMatt Robinson2011-02-281-0/+3
| | | | | | | | | | | | | | | | It turns out that the ability to sort symbols comes in the preinit section of application run when we load Facter and hit the code that adds the <=> method for symbols in lib/facter/util/plist/generator.rb Reviewed-by: Nick Lewis <nick@puppetlabs.com>
* | (#5466) Fixed puppet resource bug with trailing ,Nan Liu2011-02-281-9/+20
| |
* | Merge branch 'maint/2.6.next/revert-5935' into 2.6.nextNick Lewis2011-02-282-980/+962
|\ \
| * | Revert "(#5935) Allow functions to accept negated values"Nick Lewis2011-02-212-980/+962
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e3c59df2b246fe5e764272f21b631a5d2f28687f. This commit is being reverted because the solution is incomplete, and a better solution is out of scope for this release. A more complete solution will be implemented in the future.
* | | Merge branch 'ticket/2.6.next/4922' into 2.6.nextNick Lewis2011-02-281-1/+0
|\ \ \
| * | | (#4922) Don't truncate remotely-sourced files on 404Nick Lewis2011-02-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were 'handling' 404's on remote file content retrieval by returning nil rather than raising an exception. This caused no content to be written to the temporary file, but still appeared successful, so the destination file was overwritten, instead of preserved. Now we just handle 404 like any other error. Note that the root cause of these 404s seems to have been #4319, which has been fixed. However, in the event we do happen to get a 404 here, it's better not to have code to specifically handle it incorrectly. Paired-With: Max Martin Reviewed-By: Matt Robinson
* | | | Merge branch 'ticket/2.6.next/4914' into 2.6.nextPaul Berry2011-02-283-83/+115
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ticket/2.6.next/4914: Revert "(#6309) Ensure the correct device is mounted when managing mounts" (#4914) Improved stubbing in mount/parsed_spec tests. (#4914) Improved parsed_spec for mount (#4914) Remove mount specs (#4914) Specs for mounted? match new behaviour (#4914) Add specs for modified mount provider (#4914) Add specs for modified mount type (#4914) Update property blocks (#4914) Query property_hash for mountstate (#4914) Prefetch mountstate (#4914) Join lines for better readability
| * \ \ \ Merge branch 'ticket/2.6.x/4914' into maint/2.6.next/revert-6309Paul Berry2011-02-283-38/+107
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ticket/2.6.x/4914: (#4914) Improved stubbing in mount/parsed_spec tests. (#4914) Improved parsed_spec for mount (#4914) Remove mount specs (#4914) Specs for mounted? match new behaviour (#4914) Add specs for modified mount provider (#4914) Add specs for modified mount type (#4914) Update property blocks (#4914) Query property_hash for mountstate (#4914) Prefetch mountstate (#4914) Join lines for better readability Conflicts: lib/puppet/provider/mount.rb lib/puppet/provider/mount/parsed.rb spec/unit/provider/mount/parsed_spec.rb spec/unit/provider/mount_spec.rb spec/unit/type/mount_spec.rb
| | * | | | (#4914) Improved parsed_spec for mountStefan Schulte2011-02-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add specs for the new prefetching and the correct parsing of vfstab on Solaris and fstab on other systems
| | * | | | (#4914) Update property blocksStefan Schulte2011-01-251-20/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The action for a specific ensure state depends on the actual state so we cannot use the default behaviour. The following transitions are now supported (with ghost = mounted but not present in fstab): * 4 Is-states : absent, mounted, unmounted, ghost * 4 Should-states: absent, mounted, present, unmounted * from ghost to present -> create * from absent to present -> create * from ghost to unmounted -> create, umount * from mounted to unmounted -> umount * from absent to unmounted -> create * from ghost to absent -> umount (may fail on certain OS) * from mounted to absent -> umount, destroy * from unmounted to absent -> destroy * from ghost to mounted -> create * from absent to mounted -> create, mount * from unmounted to mounted -> mount Every other combination is treatet insync
| | * | | | (#4914) Query property_hash for mountstateStefan Schulte2011-01-251-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change mounted? to query the property_hash so we don't have to run the mountcommand for every specified mount but rely on the prefetched state Also update the prefetched property_hash[:ensure] after mount or umount. This is important if we query mounted? later (most obvious when refresh is called. We dont want to remount a resource that was umounted before)
| | * | | | (#4914) Prefetch mountstateStefan Schulte2011-01-251-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a method mountinstances that returns a list of currently mounted filesystems and overwrite prefetch to update the :ensure state of a mount resource to either - :absent => not in fstab and not mounted - :unmounted => in fstab but not mounted - :mounted => in fstab and mounted - :ghost => not in fstab but mounted This is just one step towards 4914. Next will be query the property_hash when asking mounted? and update the insync? methods to handle the different states.
| | * | | | (#4914) Join lines for better readabilityStefan Schulte2011-01-251-9/+2
| | | | | |
| * | | | | Revert "(#6309) Ensure the correct device is mounted when managing mounts"Paul Berry2011-02-252-50/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6cb365a887d47606bdfae0ff540038b0c49b7451, which fixed bug #6309 but introduced bug #6411. In addition, it conflicts with a significant patch to the mount provider that addresses #4914. After merging in the fix for #4914 I will determine whether bug #6309 still exists, and if so work on an improved fix for it.
* | | | | | Merge branch 'ticket/2.6.next/maint-remove_version_control_tags' into 2.6.nextMatt Robinson2011-02-287-15/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ticket/2.6.next/maint-remove_version_control_tags: (#6338) Remove unused version control tags
| * | | | | | (#6338) Remove unused version control tagsMatt Robinson2011-02-287-15/+0
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Older version control systems like CVS and SVN used to use these $Id$ tags for version information. Paired-with: Nick Lewis
* | | | | | Maint: Align tabs in a code block in the Augeas type.nfagerlund2011-02-281-4/+4
| | | | | |
* | | | | | (#6509) Inline docs: Fix erroneous code block in directoryservice provider ↵nfagerlund2011-02-281-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | for computer type
* | | | | | Maint: Rewrite comments about symlinks to reflect best practice.nfagerlund2011-02-282-18/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use ensure => 'path/to/file', because it's hard to read. Use ensure => link and specify a target =>.
* | | | | | (#6509) Inline docs: Fix broken lists in Launchd provider.nfagerlund2011-02-281-8/+11
| | | | | | | | | | | | | | | | | | | | | | | | Lists need a leading linebreak.
* | | | | | (#6509) Inline docs: Fix broken code blocks in zpool typenfagerlund2011-02-281-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This one was subtle. If the first paragraph of a Markdown string embedded in a type isn't multiple lines, a code block immediately following it will not be recognized. So, hard-wrap or die, I guess.
* | | | | | (#6509) Inline docs: Fix code blocks in service type.nfagerlund2011-02-282-10/+10
| | | | | |