summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'ticket/2.6.x/5662' of https://github.com/stschulte/puppet into ↵Jesse Wolfe2011-03-141-1/+3
|\ | | | | | | | | | | | | 2.6.next Manually Resolved Conflicts: spec/unit/provider/mount/parsed_spec.rb
| * (#5662) Parsedfile doesnt work with mult keyattrStefan Schulte2010-12-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When one wants to use the parsedfile provider for a type with more than one key_attribute (e.g. a type for entries in /etc/services with name and protocol as key_attributes) the provider will not store all key_attributes in property_hash and not all keyattributes will be visible in the to_line function. The create method of parsedfile will only put validproperties into the propertyhash. As result :name and all the other key_attributes will not be set. In the flush method however the :name parameter is put in the property_hash but the method does not handle other keyattributes. This patch modifies flush to put all key_attributes into the property hash (Note: @resource.name is basically just an alias for @resource[:name])
* | Merge branch 'tickets/2.6.x/2645' into 2.6.nextJesse Wolfe2011-03-091-1/+6
|\ \
| * | Fixed #2645 - Added support for creating system usersJames Turnbull2011-03-091-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | (#6632) Adding a new mount no longer causes error with umountPaul Berry2011-03-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge branch 'ticket/2.6.next/4914' into 2.6.nextPaul Berry2011-02-282-61/+73
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-282-18/+72
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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) 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-251-45/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-281-2/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * ticket/2.6.next/maint-remove_version_control_tags: (#6338) Remove unused version control tags
| * | | | (#6338) Remove unused version control tagsMatt Robinson2011-02-281-2/+0
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Older version control systems like CVS and SVN used to use these $Id$ tags for version information. Paired-with: Nick Lewis
* | | | (#6509) Inline docs: Fix erroneous code block in directoryservice provider ↵nfagerlund2011-02-281-3/+1
| | | | | | | | | | | | | | | | for computer type
* | | | (#6509) Inline docs: Fix broken lists in Launchd provider.nfagerlund2011-02-281-8/+11
| | | | | | | | | | | | | | | | Lists need a leading linebreak.
* | | | (#6509) Inline docs: Fix code blocks in service type.nfagerlund2011-02-282-10/+10
|/ / /
* | | (#6309) Ensure the correct device is mounted when managing mountsJacob Helwig2011-02-181-3/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the mount type would only check if anything was mounted at the desired point, when 'ensure => mounted' was specified. Now we check not only whether something is mounted at the desired point, but also that it is the thing we wish to be mounted there. There is also a chance that the mount point directory could be "automagically" removed for us, when unmounting incorrect devices, so we attempt to re-create the directory after unmounting to give the mount of the correct device a better chance at succeeding. Paired-with: Matt Robinson <matt@puppetlabs.com> Paired-with: Nick Lewis <nick@puppetlabs.com> Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* | | Clean up whitespace, and commented out code in parsed mount providerJacob Helwig2011-02-181-7/+2
| |/ |/| | | | | Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* | (#6364) Adjust mis-translated regex in mount provider for AIXJacob Helwig2011-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit to simplify the regex used to parse the output from the mount command on AIX (50c12e55b6f8462f6904ae061e661d1d10c7590a) mis-translated it. The original regex was grabbing the 3rd space-separated element, not the 2nd. This mis-translation caused the provider to grab the device information instead of the mount point, and compare that to the desired mount point. This would cause Puppet to think that the mount was never actually mounted under normal circumstances. The code from 50c12e5 was passing the tests because the fixture data did not include the mandatory leading whitespace that the original regex was looking for. The updated fixture data is pulled from the mount manpage from AIX v6r1. Reviewed-by: Paul Berry <paul@puppetlabs.com>
* | bug #5681 -- code fix to handle AIX mount outputRick Bradley2011-01-311-1/+1
| | | | | | | | Making a simplified fix to find mount name in AIX mount command output.
* | Bug #5681 -- parse AIX mount command output.Daniel Pittman2011-01-311-0/+2
| | | | | | | | | | | | | | - Modified the Puppet::Provider::Mount (lib/puppet/provider/mount.rb) to parse AIX mount command output - Modified lib/puppet/type/mount.rb to set remount to false by default in AIX and fix small typo
* | Feature #5855 -- fix withenv call in freebsd package providerfredrik-eriksson2011-01-261-2/+2
| | | | | | | | | | | | | | | | Qualify 'withenv' in the provider, since it is part of an entirely different part of puppet, not a method on this provider. This closes #5855. Signed-off-by: fredrik-eriksson <fredrik.eriksson@loopia.se> Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
* | Merge branch 'bug/2.6.next/6009' into 2.6.nextDaniel Pittman2011-01-251-2/+2
|\ \
| * | Fixed #6009 - nested member list vs directory service group providerJames Turnbull2011-01-251-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Directory Service group (and user) provider behaves erratically if members is a nested list; this happens with the following manifest: $r = ["root"] $a = ["daemon", "crc"] $n = ["nobody"] group { "testgroup": ensure => present, members => [$r, $a, $n] } This resolves the issue by flattening the list at the time we are using it; while a more general solution might be desirable this resolves the specific issue cleanly enough. Original patch from Clay Caviness. Tests by Daniel Pittman <daniel@puppetlabs.com> Signed-off-by: Daniel Pittman <daniel@puppetlabs.com> Signed-off-by: James Turnbull <james@lovedthanlost.net>
* | (#5931) Prevent errors when calling insync? on audited propertiesPaul Berry2011-01-253-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | Created a method safe_insync? which first checks whether the property has a "should" value of nil, and if so returns true. Most insync? methods were already doing this, but a few were not, leading to bugs if a property was being audited but not set. Types should continue to override the insync? method, but callers of insync? should call safe_insync? instead. Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* | Maint: Rename misleading insync? method in file providerPaul Berry2011-01-252-2/+2
|/ | | | | | | This method actually checks whether the file owner is in sync. Renamed to is_owner_insync? Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
* (#5304) Use internal_name rather than real_name for maillist providerNigel Kersten2010-12-011-5/+3
| | | | | | | | | | | We've switched to using list_lists --bare which shows the internal_name rather than "real_name", which is the authoritative identifier. Doing this also means we have less output to scrub, so the code is simpler. Modified by Markus as-per discussion with Nigel. Signed-off-by: Nigel Kersten <nigel@puppetlabs.com>
* Revert "(#5304) Use internal_name rather than real_name for maillist provider"James Turnbull2010-12-021-5/+6
| | | | This reverts commit 779fea867a9e23ad48cd877a88756cc5792e9e0c.
* (#5304) Use internal_name rather than real_name for maillist providerNigel Kersten2010-11-301-6/+5
| | | | | | | | | We've switched to using list_lists --bare which shows the internal_name rather than "real_name", which is the authoritative identifier. Doing this also means we have less output to scrub, so the code is simpler. Signed-off-by: Nigel Kersten <nigel@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 #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-121-4/+1
| | | | | | 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.
* 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
* (#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
* 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.
* 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).
* Adds #3046 - support for password min/max ageNick Lewis2010-09-295-13/+57
| | | | | | | 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.
* Add user account expiry to the useradd type and providerDean Wilson2010-09-291-1/+11
|
* 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 #4267 - Create a backup before dropping permissionsJesse Wolfe2010-09-281-0/+7
| | | | | This change just forces a file to be written to the filebucket before we drop the permissions necessary to do so.
* Fix for #4746 -- Newline goes at the _end_ of the lineMarkus Roberts2010-09-221-1/+1
| | | | Fredrik Eriksson's suggested change, from the ticket.
* Fixed #3707 - rpm, like dpkg-query exits 1 if the package is not installed. ↵James Turnbull2010-09-231-1/+2
| | | | | | | | | | Returning nil in this provider had the effect that on every run, puppet would end up calling yum erase . Returning the correct data structure resolves this. Thanks to Stephen Gran for the patch
* Skip apt-listbugs and apt-listchanges when installing from puppetDean Wilson2010-09-041-0/+4
|
* Updated all types to Markdown outputJames Turnbull2010-08-1129-40/+40
| | | | | | | | | | Updated defaults.rb to Markdown Migrated report documentation to Markdown Migrated Naginator doco to Markdown Updated provider documentation to Markdown
* Fixes errant Trac references in documentationJames Turnbull2010-07-152-2/+2
|
* Code smell: Two space indentationMarkus Roberts2010-07-0985-7053/+7053
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced 106806 occurances of ^( +)(.*$) with The ruby community almost universally (i.e. everyone but Luke, Markus, and the other eleven people who learned ruby in the 1900s) uses two-space indentation. 3 Examples: The code: end # Tell getopt which arguments are valid def test_get_getopt_args element = Setting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new assert_equal([["--foo", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args") becomes: end # Tell getopt which arguments are valid def test_get_getopt_args element = Setting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new assert_equal([["--foo", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args") The code: assert_equal(str, val) assert_instance_of(Float, result) end # Now test it with a passed object becomes: assert_equal(str, val) assert_instance_of(Float, result) end # Now test it with a passed object The code: end assert_nothing_raised do klass[:Yay] = "boo" klass["Cool"] = :yayness end becomes: end assert_nothing_raised do klass[:Yay] = "boo" klass["Cool"] = :yayness end